mcpField
M
monitoring-ingestion-pipeline

monitoring-ingestion-pipeline

github.com/posthogクラウド・DevOps40.5k152 回インストール今日更新
リポジトリ

monitoring-ingestion-pipeline について

Grafana MCP を使って PostHog の取り込みパイプラインを調査するエンジニア向けスキルです。変化しうるメトリクス名を覚えるのではなく、実データから発見する方法を扱います。

主な機能

  1. 01Grafana MCP によるメトリクス発見
  2. 02アプリ指標、ログ、プロファイリングの確認
  3. 03prod-us と prod-eu の区別
  4. 04デプロイ、キュー、ストレージ構成の参照

活用シーン

  1. 01取り込みパイプラインの遅延や消費ラグの調査
  2. 02ログ、インフラ、ClickHouse の状態をまたぐ問題の追跡

MCP 対応

Grafana MCP ツールでメトリクス名、Loki のラベル、プロファイル種別、ダッシュボードを調べます。環境が指定されていない場合は、prod-us と prod-eu のどちらかを確認します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/posthog/posthog --skill monitoring-ingestion-pipeline

インストール後、Claude Code で/monitoring-ingestion-pipelineを入力して読み込まれたか確認します。

同梱ファイルreferences/investigation-playbooks.md

詳細

Grafana MCP によるインジェスションパイプラインの監視

インジェスションパイプライン (nodejs/) は PostHog の Node.js イベント処理レイヤーです。 Kafka (capture サービスによって生成される) からイベントを消費し、処理ステップ (人物の解決、グループの割り当て、プロパティのオーバーライドなど) を通して実行し、 ClickHouse 向け Kafka トピックへエンリッチされたイベントを生成します。

単一のコードベースが posthog-app Helm チャート (golden-chart マイグレーション) を介して 多数の K8s Deployment としてデプロイされます。各デプロイメントは PLUGIN_SERVER_MODE を設定し、 メトリクス上では 2 つのデフォルト Prometheus ラベルによって区別されます。

  • ingestion_pipeline — 値: analytics、heatmaps、clientwarnings、errortracking
  • ingestion_lane — 値: main、overflow、historical、async、turbo

app ラベル (K8s の Pod ラベルによって設定される) はデプロイメント名と一致し、 すべてのテレメトリドメインにわたる最も汎用的なスコープフィルターです。

このスキルでは、コードの進化に伴って変化するメトリクス名を暗記するのではなく、 Grafana MCP ツールを使用してライブメトリクスを検出する方法を教えます。

環境コンテキスト

Grafana MCP は、1 つの環境にスコープされた単一の Grafana インスタンスに接続されています。 ユーザーが指定していない場合は、どの環境を調査したいのかを確認してください。

  • prod-us — 米国本番環境 (us-east-1)
  • prod-eu — EU 本番環境 (eu-central-1)

ほとんどのインジェスションアプリのメトリクスは、接続している Grafana に応じて環境固有です — これらは environment ラベルを持ちません。CloudWatch メトリクスも、接続されている Grafana の AWS アカウントにスコープされます。

環境間の比較には Grafana インスタンスの切り替えが必要です (1 つのセッションでは不可能です)。

すべてのデータソース UID、ダッシュボード UID、ingestion_pipeline/ingestion_lane ラベルの値、 および ClickHouse の type ラベルの値は、prod-us と prod-eu で同一です。

主な違い:

  • ingestion-analytics-turbo デプロイメントは prod-us にのみ存在します。
  • 両環境とも、events クラスターとは別の専用のインジェスション MSK クラスターを使用します — コンシューマーは events ではなく msk-ingestion を指します (prod-us: c21、prod-eu: posthog-prod-eu-ingestion-2026-05-04)。
  • CloudWatch のクラスター ID はリージョンサフィックスによって異なります (以下のトポロジセクションを参照)。

可観測性の全体像

6 つのテレメトリドメインがあり、すべて prod-us と prod-eu で同一であることが検証済みです。

ドメインデータソース UID検出ツールスコープフィルター
アプリメトリクス (VictoriaMetrics)victoriametricslist_prometheus_metric_names以下のメトリクスプレフィックスを参照
アプリメトリクス (リアルタイム)victoriametrics-realtime同上同上 (保持期間が短く、解像度が高い)
ログP44D702D3E93867EC (Loki-logs)list_loki_label_namesapp=~"ingestion-.*"
プロファイリングpyroscopelist_pyroscope_profile_types以下の Pyroscope サービスを参照
CloudWatch (ElastiCache、MSK、RDS)P034F075C744B399Fquery_prometheus環境固有のクラスター ID
ダッシュボード該当なしsearch_dashboards"ingestion" またはデプロイメント名でクエリ

データソースに関する注意:

  • プライマリ Loki (P8E80F9AEF21F6940) は使用しないでください — 両環境で断続的に 502 を返します。常に Loki-logs (P44D702D3E93867EC) を使用してください。
  • CloudWatch Root (PAAE47F430CFD1449) は使用しないでください — prod-us にのみ存在します。

安定した基準点

これらの事実はほとんど変化せず、動的に検出するのが困難です。

デプロイメントの役割

すべての PLUGIN_SERVER_MODE=ingestion-v2 デプロイメント (「アナリティクス取り込み」ファミリー)、および専門化されたモードです。 各ゴールデンチャートのデプロイメントは、デプロイメント名と一致する独自の名前空間で実行されます。

デプロイメント名モードパイプラインレーンコンシューマーグループ消費トピック (EU の例)
ingestion-analytics-mainingestion-v2analyticsmainingestion-analytics-mainingestion-analytics-main-512
ingestion-analytics-overflowingestion-v2analyticsoverflowingestion-analytics-overflowingestion-analytics-overflow-128
ingestion-analytics-historicalingestion-v2analyticshistoricalingestion-analytics-historicalingestion-analytics-historical-128
ingestion-analytics-asyncingestion-v2analyticsasyncingestion-analytics-asyncingestion-analytics-async-8
ingestion-analytics-turboingestion-v2analyticsturboingestion-analytics-turboingestion-analytics-turbo-1024
ingestion-clientwarnings-mainingestion-v2clientwarnings—ingestion-clientwarnings-mainingestion-clientwarnings-main-32
ingestion-heatmaps-mainingestion-v2heatmaps—ingestion-heatmaps-mainingestion-heatmaps-main-128
ingestion-errortracking-mainingestion-errortrackingerrortracking—ingestion-errortracking-mainingestion-errortracking-main-128
ingestion-errortracking-overflowingestion-errortrackingerrortracking—ingestion-errortracking-overflowingestion-errortracking-overflow-32
logs-ingestioningestion-logs——logs-ingestioningestion-logs
traces-ingestion(traces)——traces-ingestioningestion-traces
recordings-blob-ingestion-v2recordings-blob-ingestion-v2——session-recordings-blob-v2ingestion-sessionreplay-main-256
recordings-blob-ingestion-v2-overflowrecordings-blob-ingestion-v2——session-recordings-blob-v2-overflowingestion-sessionreplay-overflow-32

注記:

  • ingestion-analytics-turbo は prod-us にのみ存在します。
  • トピックのパーティション数は環境によって異なります (例: main は US では 1024、EU では 512)。
  • 各デプロイメントには DLQ トピックもあります (ingestion-analytics-main-dlq など)。
  • KEDA のオートスケーリングクエリは、移行期間中に新旧両方のコンシューマーグループ名を参照します (例: groupId=~"ingestion-events|ingestion-analytics-main")。
メトリクスのプレフィックス

ここにあるすべてのプレフィックスは、datasourceUid: "victoriametrics" と regex: "<prefix>.*" を指定して list_prometheus_metric_names を使うことで、ライブで検出できます。

プレフィックスドメイン主要なスコープラベル
ingestion_*コア取り込みアプリのメトリクス(約80メトリクス)app、ingestion_pipeline、ingestion_lane
ingestion_lag_ms*パーティションごとのラグ(主要なラグシグナル)groupId、partition
consumed_batch_*Kafka コンシューマーのバッチ処理topic、groupId
consumer_batch_* / consumer_background_*コンシューマーループの健全性topic、groupId
kafka_broker_*librdkafka ブローカー統計broker_id、broker_name、consumer_group
kafka_consumer_*コンシューマーのリバランス、割り当てgroupId、type
events_pipeline_*レガシーパイプラインのステップメトリクスstep_name
person_*パーソン処理(約30メトリクス)db_write_mode、operation、method
group_*(AWS 以外)グループ処理operation
personhog_*PersonHog gRPC クライアント + サービスmethod、source、client
overflow_redirect_*ステートフルオーバーフロールーティングtype、result、decision、operation
cookieless_*クッキーレスモード—
http_request_duration_secondsHTTP ヘルス/レディネスサーバーmethod、route、status_code
recording_blob_ingestion_v2_*セッションリプレイの取り込みapp
logs_ingestion_*ログ取り込みパイプラインapp
error_tracking_* / cymbal_*エラートラッキングパイプラインapp
kminion_kafka_*KMinion コンシューマーグループのラグとトピックオフセットgroup_id、topic_name、partition_id
aws_msk_kafka_*MSK ブローカー側の JMX メトリクスenvironment
warpstream_agent_*WarpStream エージェントのメトリクス(約10メトリクス)virtual_cluster_id、agent_group、operation
kube_* / container_*K8s リソースnamespace=~"ingestion-.*"、container=~"ingestion-.*"
pg_* / pgbouncer_*Postgres エクスポーターさまざま
ClickHouseMetrics_* / ClickHouseProfileEvents_* / ClickHouseAsyncMetrics_*ClickHouse クラスターの健全性type(=クラスターロール)
kafka_connect_*ClickHouse への Kafka Connect ブリッジnamespace、connector
posthog_celery_clickhouse_*Django celery からの CH ヘルスモニターscenario
Redis トポロジー

インジェスションワーカーは最大 5 つの Redis インスタンスに依存しています。 Redis の健全性は、インジェスション側のメトリクスと CloudWatch ElastiCache のメトリクスから推測されます。

Redis インスタンスElastiCache クラスター (prod-us)環境変数用途
Ingestion Redisingestion-prod-redisINGESTION_REDIS_HOSTオーバーフロー状態、pub/sub コーディネーション
PostHog/Primary Redisposthog-soloPOSTHOG_REDIS_HOST請求/クォータ、制限、全般
Cookieless Rediscookieless-prod-redisCOOKIELESS_REDIS_HOSTクッキーレスサーバーハッシュモード
CDP Rediscdp-delivery-prod-redisCDP_REDIS_HOSTCDP Hog 関数の配信
Dedup Redisingestion-duplicates-prod-redisDEDUPLICATION_REDIS_HOSTイベントの重複排除

インジェスション側の Redis メトリクス: overflow_redirect_redis_*、cookieless_redis_error。 インフラストラクチャ側: CloudWatch データソース P034F075C744B399F。

prod-eu は同じ論理クラスター名を使用しますが、エンドポイントのサフィックスが異なります。 prod-eu のプライマリ Redis は posthog-prod-redis-encripted です(原文ママ — このタイポは実際のクラスター名に含まれています)。 イベント制限用 Redis (ingestion-prod-redis) は、プライマリとは別の書き込み可能なクラスターです — capture-analytics とインジェスションワーカーの両方が EVENT_RESTRICTIONS_REDIS_URL 経由でこれを使用します。

Kafka トポロジー

インジェスションワーカーは、個別のプロデューサー/コンシューマー設定を介して3 つの Kafka システムとやり取りします:

  1. MSK インジェスションクラスター (コンシューム側) — KAFKA_CONSUMER_METADATA_BROKER_LIST。 Capture がここにプロデュースし、インジェスションワーカーがコンシュームします。すべての ingestion-analytics-*、 ingestion-errortracking-*、ingestion-heatmaps-*、ingestion-clientwarnings-* トピックを伝送します。 両環境に専用クラスターがあります (prod-us: c21、12 ブローカー、prod-eu: posthog-prod-eu-ingestion-2026-05-04)。 KMinion: kminion-msk-ingestion。

  2. WarpStream インジェスション VC (出力側) — KAFKA_WARPSTREAM_PRODUCER_METADATA_BROKER_LIST。 インジェスションワーカーは、ClickHouse 行きのすべての出力をここにプロデュースします (clickhouse_events_json、 clickhouse_person、clickhouse_groups、clickhouse_heatmap_events、clickhouse_ai_events_json など)。 クラスター内の WarpStream エージェント (warpstream-ingestion-v2) とマルチ AZ プール。プレーンテキストで、TLS なし。 KMinion: kminion-warpstream-ingestion。

  3. MSK インジェスションクラスター (フィードバック/DLQ プロデューサー) — 項目 1 と同じ物理クラスターですが、 KAFKA_INGESTION_PRODUCER_METADATA_BROKER_LIST を介した異なるプロデューサー設定を使用します。 イベントをインジェスションシステムに戻すオーバーフロー/DLQ/非同期トピックに使用されます。

  • MSK (イベント/分析) — 元のイベントクラスター。移行中は、一部のレガシートピックと ClickHouse コンシューマーグループを依然として伝送しています。prod-us: posthog-prod-us-events-2026-03-08 (12 ブローカー、kafka.m7g.8xlarge)、prod-eu: posthog-prod-eu-events-2025-10-16 (15 ブローカー)。 KMinion: kminion-msk-analytics。

WarpStream 仮想クラスター — 各 VC は S3 に支えられた個別の論理クラスターであり、独自の エージェントプール、KMinion インスタンス、トピック名前空間を持ちます:

VC nameTopics carriedKMinion instance
warpstream-ingestion-v2clickhouse_events_json, clickhouse_person, clickhouse_person_distinct_id, clickhouse_groups, clickhouse_ai_events_json, clickhouse_heatmap_events, clickhouse_app_metrics2, clickhouse_tophog, clickhouse_ingestion_warnings, distinct_id_usage_events_json, log_entries, team_event_partitioned_events_jsonkminion-warpstream-ingestion
warpstream-replay-v2ingestion-sessionreplay-main-*, clickhouse_session_replay_events, clickhouse_session_replay_featureskminion-warpstream-replay
warpstream-logsingestion-logs, clickhouse_logskminion-warpstream-logs
warpstream-tracesingestion-traces, clickhouse_traceskminion-warpstream-traces
warpstream-sharedclickhouse_document_embeddings, error tracking fingerprint/issue topics, document_embeddings_inputkminion-warpstream-shared
warpstream-calculated-eventscohort_membership_changed (US only)kminion-warpstream-calculated-events
warpstream-cyclotronCDP topics (cdp_cyclotron_hog*, cdp_internal_events, etc.)kminion-warpstream-cyclotron
warpstream-warehouse-pipelinesdata_warehouse_source_webhooks, data_warehouse_sources_jobs (US only)kminion-warpstream-warehouse-pipelines

WarpStream エージェントメトリクス: warpstream_agent_* プレフィックス(約 10 個のメトリクス)。 主要なもの: control_plane_operation_counter(operation 別)、file_cache_client_fetch_local_or_remote_counter(キャッシュヒット/ミス)。 ラベル: virtual_cluster_id、agent_group(default、general、multi-az)。 ダッシュボード: warpstream(Agent Overview)、dbfj5c31spa1ogf(MSK vs WarpStream — Active Produce Topics)。 US 限定の個人ダッシュボード(EU には同期されていません): 8e93b023-…(CH Consumer Lag)、 ws-coarse-lag-explore(Coarse Lag exploration)。

Postgres トポロジー
DBAurora クラスター (prod-us)インジェスト PgBouncer
Main app DBposthog-cloud-prod-us-east-1 (2x db.r8g.16xlarge)ingestion-default-pgbouncer.posthog.svc.cluster.local
Persons DBposthog-cloud-persons-prod-us-east-1 (3x db.r8g.24xlarge)ingestion-events-pgbouncer.posthog.svc.cluster.local

Postgres メトリクスは prometheus-postgres-exporter と prometheus-postgres-persons-exporter を経由します。

prod-eu: posthog-cloud-prod-eu-central-1 と posthog-cloud-persons-prod-eu-central-1。

ClickHouse トポロジー

ClickHouse は、インジェストパイプラインが生成するイベントの 最終的な下流コンシューマー です。 インジェストワーカーは CH と直接通信することはありません — ワーカーは Kafka トピックに発行し、CH は 組み込みの Kafka エンジンと Kafka Connect(DuckLake)を介してそれらを消費します。 CH の健全性はインジェスト品質の体感に直接影響します。CH の消費が遅れると、 ユーザーには古いデータが表示されます。

クラスターロール(ClickHouseMetrics_* の type ラベルで判別可能):

type ラベルロール備考
eventsメイン分析イベントクラスターclickhouse_events_json を消費
onlineオンライン/高速クエリクラスターevents からレプリケーション
offlineオフライン/バッチクエリクラスターevents からレプリケーション
medium中規模テーブルPersons、groups
small小規模/設定テーブル書き込み頻度は低い
sessionsセッションリプレイデータセッション記録トピックを消費
logsログクラスターログトピックを消費
logs-new-schemaログ新スキーマ移行移行ターゲット
ai-eventsAI/LLM イベントAI イベントトピックを消費
endpointsAPI エンドポイントクラスター軽量
migrations移行専用スキーマ変更
aux / ops補助/運用メンテナンス
batch-exportsバッチエクスポートprod-us にはあり、prod-eu には存在しない可能性
testテストクラスターすべての環境に存在するわけではない

ほとんどの type ラベルの値は prod-us と prod-eu で同一です。batch-exports や test のような 軽微な違いが片方の環境にのみ存在する場合があります。

Kafka から ClickHouse への 2 つの消費パス:

ClickHouse は現在、主に WarpStream インジェスト VC(インジェストワーカーが出力を発行する場所)から読み取っており、 MSK から直接読み取ってはいません。

  1. ClickHouse Kafka Engine — CH のネイティブ機能です。メトリクスのプレフィックスは ClickHouseProfileEvents_Kafka* (例: KafkaMessagesPolled、KafkaRowsRead、KafkaRowsRejected、KafkaCommitFailures)。 コンシューマーグループ: clickhouse_events_json(prod-us)、group1 / group1_recent(prod-eu)。 これらのグループは MSK analytics と WarpStream ingestion の両方に存在します。正しい KMinion インスタンスを使って区別してください: WarpStream には kminion-warpstream-ingestion、MSK には kminion-msk-analytics です。
  2. Kafka Connect — kafka-connect 名前空間で実行され、DuckLake sink コネクタを使用します。 メトリクスのプレフィックスは kafka_connect_* および kafka_connect_ducklake_sink_task_metrics_* です。 コンシューマーグループ: connect-events-ducklake*。

取り込みオペレーター向けの重要なヘルスシグナル:

  • kminion_kafka_consumer_group_topic_lag{app_kubernetes_io_instance="kminion-warpstream-ingestion", group_id=~"clickhouse_events_json|group1|group1_recent", topic_name="clickhouse_events_json"} — WarpStream パス(主要パス)における取り込み出力と CH 消費の間のラグ
  • 同じグループフィルターを指定した kminion_kafka_consumer_group_topic_lag_seconds — 同じ値を秒単位で表したもの
  • ClickHouseProfileEvents_KafkaRowsRejected — CH が解析または挿入できなかった行
  • ClickHouseProfileEvents_FailedInsertQuery — 挿入の失敗(スキーマの問題、パーツ数が多すぎる場合など)
  • ClickHouseAsyncMetrics_MaxPartCountForPartition — パーツ数の増加 = マージの負荷
  • ClickHouseMetrics_ReadonlyReplica — 遅延して読み取り専用になったレプリカ
  • ClickHouseAsyncMetrics_ReplicasMaxAbsoluteDelay — 最大レプリケーション遅延
  • posthog_celery_clickhouse_table_parts_count / _table_row_count — Django 側の CH ヘルスモニター
Pyroscope サービス

golden-chart への移行中は、旧形式(ingestion/{name})と新形式({namespace}/{name})の両方が Pyroscope に共存します。新しい {namespace}/{name} 形式を推奨します。

サービス名(新形式)デプロイメント
ingestion-analytics-main/ingestion-analytics-mainMain analytics
ingestion-analytics-overflow/ingestion-analytics-overflowOverflow lane
ingestion-analytics-historical/ingestion-analytics-historicalHistorical lane
ingestion-analytics-async/ingestion-analytics-asyncAsync lane
ingestion-analytics-turbo/ingestion-analytics-turboTurbo lane(prod-us のみ)
ingestion-heatmaps-main/ingestion-heatmaps-mainHeatmaps
ingestion-clientwarnings-main/ingestion-clientwarnings-mainClient warnings
ingestion-errortracking-main/ingestion-errortracking-mainError tracking
ingestion-errortracking-overflow/ingestion-errortracking-overflowError tracking overflow
logs-ingestion/logs-ingestionLogs ingestion
traces-ingestion/traces-ingestionTraces ingestion
recordings/recordings-blob-ingestion-v2Session replay
recordings/recordings-blob-ingestion-v2-overflowSession replay overflow

プロファイルタイプ: process_cpu:cpu:nanoseconds:cpu:nanoseconds、 wall:wall:nanoseconds:wall:nanoseconds、 memory:inuse_space:bytes:inuse_space:bytes、 memory:inuse_objects:count:inuse_space:bytes。

Grafana ダッシュボード
UIDタイトルフォーカス
ingestion-analyticsIngestion - Analyticsパイプラインごとの分析内訳
ingestion-healthIngestion - Healthすべてのインジェストサービスのヘルス概要
ingestion-pipelinesIngestion - Pipelinesレーンごとのパイプラインステップ内訳
ingestion-reliabilityIngestion - Reliabilityイベントトレンド、処理ラグ SLO、再起動、E2E ラグ
ingestion-person-processingIngestion -- Person Processingパーソンストア、マージ、キャッシュ
ingestion-group-processingIngestion -- Group Processingグループストア
ingestion-sessionreplayIngestion - Session Replayリプレイ BLOB パイプライン
captureCaptureCapture 側のインジェストメトリクス (概要)
bexr9fnja75z4fKafka Deduplicatorイベント重複排除パイプライン
pl-ingestion-slasIngestion — SLIs / SLOs / SLAsingestion_sli_* メトリクスからの SLI/SLO ビュー (米国のみ)
warpstreamWarpstream Agent Overviewエージェントのヘルス、コントロールプレーン操作、ファイルキャッシュ
dbfj5c31spa1ogfMSK vs Warpstream — Active Produce Topicsプロデュース量の並列比較
8e93b023-a544-4a3b-8fac-123459d4eb84WarpStream: ClickHouse Consumer LagWarpStream トピックの CH コンシューマーラグ (米国のみ)
ws-coarse-lag-exploreWarpStream Coarse Lag — Exploreエージェントが報告するラグ (米国のみ、個人ダッシュボード)
personhog-servicePersonhog servicePersonHog レイテンシの分解
dbfgkwxs3gw8owdKMinion Consumer Group Lagグループごとのコンシューマーラグ (CH グループを含む)
logsLogs (product)ログのインジェスト
vm-clickhouse-cluster-overviewClickHouse (cluster overview)QPS、メモリ、ディスク、レプリケーション、パーツ、マージ
clickhouse-ingestion-overview-20260615ClickHouse Ingestion Layer Overviewインジェスト層の CH クラスターのヘルスとリソース
clickhouse-keeperClickHouse KeeperZooKeeper 代替のヘルス
fe469e59-e10a-465a-9dac-ac8f6f82dc9aClickHouse Stuck Merge Loop Investigation進行が停止したマージ
cdzv7o1635n9caKafka ConnectKafka Connect タスク、ラグ、DuckLake シンク
fdrcd04np3hfkfClickHouse - Kafka consumptionCH Kafka エンジンの消費統計 (EU のみ)

ディスカバリーワークフロー

Prometheus / VictoriaMetrics
  1. list_prometheus_metric_names — datasourceUid: "victoriametrics"、regex: "ingestion_.*" でアプリのメトリクスを列挙します
  2. メトリクスを1つ選び、それを対象に list_prometheus_label_names を実行します — 利用可能なディメンションを確認できます
  3. list_prometheus_label_values — ラベルの実際の値を確認します (例: ingestion_event_dropped_total に対する labelName: "cause")
  4. PromQL を指定して query_prometheus — 常に app または ingestion_pipeline でスコープを絞り、時間範囲を設定してください

他のプレフィックスでも同様に繰り返します: consumed_batch_*、person_*、personhog_*、 overflow_redirect_*、ClickHouseMetrics_*、kafka_connect_* など。

Loki (ログ)
  1. list_loki_label_names — datasourceUid: "P44D702D3E93867EC"
  2. app に対して list_loki_label_values — 取り込みコンテナを探します (値の例: ingestion-analytics-main、logs-ingestion など)
  3. query_loki_logs — 例: {app=~"ingestion-.*"} |= "error" または {namespace="clickhouse"} |= "Exception"
Pyroscope (プロファイリング)
  1. list_pyroscope_profile_types — data_source_uid: "pyroscope"
  2. fetch_pyroscope_profile — matchers: '{service_name="ingestion-analytics-main/ingestion-analytics-main"}'、 profile_type: "process_cpu:cpu:nanoseconds:cpu:nanoseconds"
ダッシュボード
  1. search_dashboards — "ingestion" または "clickhouse"、あるいは特定のデプロイ名でクエリします
  2. get_dashboard_by_uid — 既知の UID (例: "ingestion-health") を使ってパネルの詳細を取得します
  3. get_dashboard_panel_queries — 既存のパネルから PromQL を抽出します
Redis / ElastiCache
  • 取り込み側: VictoriaMetrics で overflow_redirect_redis_*、cookieless_redis_* メトリクスを探します
  • インフラストラクチャ: ElastiCache には CloudWatch データソース P034F075C744B399F を使用します (CPU、メモリ、接続数、レイテンシ)。 クラスター ID: ingestion-prod-redis、posthog-solo (prod-us プライマリ)、 ingestion-duplicates-prod-redis、cookieless-prod-redis
Postgres / Aurora
  • 取り込み側: postgres_error_total、person_*、group_* メトリクスを探します
  • インフラストラクチャ: prometheus-postgres-exporter および prometheus-postgres-persons-exporter メトリクス
  • CloudWatch RDS: データソース P034F075C744B399F とクラスター ID posthog-cloud-prod-us-east-1 / posthog-cloud-persons-prod-us-east-1
ClickHouse
  • クラスターのヘルス: list_prometheus_metric_names を regex "ClickHouseMetrics_.*" または "ClickHouseProfileEvents_.*" で実行します クラスターの役割に応じて type ラベルでスコープを絞ります (例: type="events")
  • Kafka エンジンのヘルス: regex "ClickHouseProfileEvents_Kafka.*"
  • Kafka Connect: regex "kafka_connect_.*" — namespace="kafka-connect" でスコープを絞ります
  • コンシューマーラグ (ブリッジ): kminion_kafka_consumer_group_topic_lag を group_id=~"clickhouse_events_json|group1|group1_recent|connect-events-ducklake.*" および topic_name="clickhouse_events_json" と共に使用します。 重要: WarpStream パス (プライマリ) では app_kubernetes_io_instance="kminion-warpstream-ingestion"、 MSK パスでは "kminion-msk-analytics" でスコープを絞ってください。
  • ログ: {namespace="clickhouse"} |= "Exception" または {namespace="kafka-connect"}
  • ダッシュボード: vm-clickhouse-cluster-overview、clickhouse-ingestion-overview-20260615、 cdzv7o1635n9ca、8e93b023-a544-4a3b-8fac-123459d4eb84 (WarpStream CH コンシューマーラグ)

主要なメトリクス領域

何を探すべきかのカテゴリです。上記のプレフィックスを使用して、具体的なメトリクスをライブで確認してください。

Kafka コンシューマーの健全性 — バッチ所要時間、バッチあたりの消費メッセージ数、コンシューマーグループのアサインメント/リバランスイベント、コンシューマーラグ(KMinion 経由)。メトリクス: consumed_batch_*、kafka_consumer_*、kminion_kafka_consumer_group_topic_lag*(group_id でスコープ)。

パイプライン処理 — ステップ単位のレイテンシとエラー率、パイプライン結果の分布(取り込み、フィルタリング、ドロップ、DLQ 送り)。メトリクス: events_pipeline_step_ms、events_pipeline_step_error_total、ingestion_pipeline_results(result 別)。

Person/グループストア — person フラッシュのレイテンシ、キャッシュヒット率、Postgres 書き込みレイテンシ、マージ失敗、プロパティサイズ。メトリクス: person_*、group_*、personhog_*。

出力 — ClickHouse 送信用トピックへの Kafka プロデュース。メッセージサイズ、レイテンシ、エラー。メトリクス: ingestion_outputs_*(topic 別)。

オーバーフロールーティング — ステートフルなオーバーフロー判定、オーバーフロー状態のための Redis 操作。メトリクス: overflow_redirect_*(type、result、decision 別)。

ClickHouse ダウンストリームの健全性 — CH クラスタの QPS、メモリ、ディスク、マージ負荷、レプリケーションラグ、Kafka エンジンの消費(読み取り/拒否/失敗した行数)、Kafka Connect タスクの健全性とコンシューマーラグ。これは、イベントが実際にクエリレイヤーに到達しているかどうかを示します。メトリクス: ClickHouseMetrics_*、ClickHouseProfileEvents_*、ClickHouseAsyncMetrics_*(type でスコープ)、kafka_connect_*(namespace でスコープ)。

K8s リソース — CPU、メモリ、再起動、HPA 状態に関する container_* と kube_*。スコープ: namespace=~"ingestion-.*"、pod=~"ingestion-.*"(CH 取り込みポッドの場合は namespace="clickhouse"、pod=~"chi-ingestion-.*")。

調査プレイブック

以下を網羅する手順別ワークフローについては、references/investigation-playbooks.md を参照してください: ヘルスチェック、イベントドロップ、レイテンシ、コンシューマーラグ、person 処理(persons DB の pganalyze によるクエリレベルのビューを含む)、Kafka/MSK の問題、Redis、Postgres、セッションリプレイ、ClickHouse ダウンストリームの健全性、単一パーティションのラグ(キー付きコストの診断、アクター識別のための querying-tophog スキルへの引き継ぎ)、および環境間の比較。

コメント