メインコンテンツへスキップ
要点OTel JMX Metric Gatherer を使用して、ClickStack で Apache Kafka のパフォーマンスメトリクスを監視します。デモデータセットとあらかじめ用意されたダッシュボードも含まれています。

既存の Kafka デプロイメントとのインテグレーション

OpenTelemetry JMX Metric Gatherer コンテナーを実行してメトリクスを収集し、OTLP 経由で ClickStack に送信することで、既存の Kafka デプロイメントを監視できます。 既存のセットアップを変更せずにまずこのインテグレーションを試したい場合は、デモデータセットのセクションに進んでください。
前提条件
  • 稼働中の ClickStack インスタンス
  • JMX が有効な既存の Kafka 環境 (バージョン 2.0 以降)
  • ClickStack と Kafka 間のネットワーク接続 (JMX ポート 9999、Kafka ポート 9092)
  • OpenTelemetry JMX Metric Gatherer JAR (ダウンロード手順は以下)
1

ClickStack API key を取得する

JMX Metric Gatherer はデータを ClickStack の OTLP エンドポイントに送信します。このエンドポイントでは認証が必要です。
  1. ClickStack の URL (例: http://localhost:8080) で HyperDX を開きます
  2. 必要に応じてアカウントを作成するか、ログインします
  3. Team Settings → API Keys に移動します
  4. インジェスト API key をコピーします
  1. これを環境変数として設定します:
2

OpenTelemetry JMX Metric Gatherer をダウンロードする

JMX Metric Gatherer の JAR をダウンロードします:
3

Kafka JMX が有効であることを確認する

Kafka ブローカーで JMX が有効になっていることを確認してください。Docker デプロイメントの場合:
Dockerを使用しない環境でデプロイする場合は、Kafka の起動時に以下を設定してください:
JMX にアクセスできることを確認します:
4

Docker Compose で JMX Metric Gatherer をデプロイする

この例では、Kafka、JMX Metric Gatherer、ClickStack を含む一連の構成をまとめて示します。サービス名とエンドポイントは、既存のデプロイメントに合わせて調整してください。
主な設定パラメータ:
  • service:jmx:rmi:///jndi/rmi://kafka:9999/jmxrmi - JMX 接続 URL (Kafka のホスト名を使用)
  • otel.jmx.target.system=kafka - Kafka 固有のメトリクスを有効にします
  • http://clickstack:4318 - OTLP HTTP エンドポイント (ClickStack のホスト名を使用)
  • authorization=\${CLICKSTACK_API_KEY} - 認証用の API key (必須)
  • service.name=kafka,kafka.broker.id=broker-0 - フィルタリング用の resource 属性
  • 10000 - 収集間隔 (ミリ秒単位、10 秒)
5

HyperDX でメトリクスを確認する

HyperDX にログインし、メトリクスが送信されていることを確認します。
  1. Chart Explorer に移動します
  2. kafka.message.count または kafka.partition.count を検索します
  3. メトリクスが 10 秒間隔で表示されるはずです
確認すべき主要なメトリクス:
  • kafka.message.count - 処理されたメッセージの総数
  • kafka.partition.count - パーティションの総数
  • kafka.partition.under_replicated - 正常なクラスターでは 0 になるはずです
  • kafka.network.io - ネットワークのスループット
  • kafka.request.time.* - リクエストレイテンシのパーセンタイル
アクティビティを発生させて、さらに多くのメトリクスを表示するには:
Kafka コンテナー内で Kafka クライアントコマンド (kafka-topics、kafka-console-producer など) を実行する場合は、JMX ポートの競合を避けるため、先頭に unset JMX_PORT && を付けてください。

デモデータセット

本番システムを構成する前に Kafka Metrics インテグレーションを試したい方向けに、実際に近い Kafka メトリクスのパターンを含む事前生成済みのデータセットを用意しています。
1

サンプルのメトリクスデータセットをダウンロードする

事前生成済みのメトリクスファイルをダウンロードします (実際に近いパターンを含む 29 時間分の Kafka メトリクス) :
このデータセットには、単一ブローカーの e コマース向け Kafka クラスターを想定した現実的なパターンが含まれています:
  • 06:00-08:00: 朝の増加 - 夜間のベースラインからトラフィックが急増
  • 10:00-10:15: フラッシュセール - 通常時の 3.5 倍までトラフィックが急増
  • 11:30: デプロイメントイベント - レプリケーション不足のパーティションの発生とともに、コンシューマラグが 12 倍に急増
  • 14:00-15:30: 買い物のピーク - ベースラインの 2.8 倍の高トラフィックが継続
  • 17:00-17:30: 退勤後の増加 - 2 回目のトラフィックピーク
  • 18:45: コンシューマのリバランス - リバランス中にラグが 6 倍に急増
  • 20:00-22:00: 夜間の減少 - 夜間レベルまで急激に低下
2

ClickStack を起動する

ClickStack インスタンスを起動します:
3

ClickStack にメトリクスを読み込む

メトリクスを ClickHouse に直接読み込みます:
4

HyperDX でメトリクスを確認する

読み込み後、メトリクスをすばやく確認するには、あらかじめ用意されたダッシュボードを使うのが最も簡単です。ダッシュボードをインポートして Kafka メトリクス全体をまとめて表示するには、ダッシュボードと可視化 セクションに進んでください。
タイムゾーン表示HyperDX はタイムスタンプをブラウザーのローカルタイムゾーンで表示します。デモデータの期間は 2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC) です。どの地域からでもデモメトリクスを確実に表示できるよう、時間範囲を 2025-11-04 16:00:00 - 2025-11-07 16:00:00 に設定してください。メトリクスが表示されたら、より見やすくするために範囲を 24 時間に絞り込めます。

ダッシュボードと可視化

ClickStack で Kafka の監視を始める際に役立つよう、Kafka メトリクス用の基本的な可視化を用意しています。
1

ダッシュボード設定ファイル

2

あらかじめ用意されたダッシュボードをインポートする

  1. HyperDX を開き、Dashboards セクションに移動します
  2. 右上の三点リーダー内にある Import Dashboard をクリックします
  1. kafka-metrics-dashboard.json ファイルをアップロードし、Finish Import をクリックします
3

ダッシュボードを表示する

ダッシュボードが作成され、すべての可視化があらかじめ設定された状態で表示されます。
デモデータセットを使用する場合は、時間範囲を 2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC) に設定してください (ローカルのタイムゾーンに応じて調整してください) 。インポートしたダッシュボードには、デフォルトでは時間範囲が設定されていません。

トラブルシューティング

HyperDX にメトリクスが表示されない

APIキーが設定され、コンテナに渡されていることを確認してください:
未設定の場合は、設定して再起動します:
メトリクスがClickHouseに届いているか確認する:
結果が表示されない場合は、JMX エクスポーターのログを確認してください:
メトリクスにデータを入れるために、Kafka のアクティビティを発生させます:

認証エラー

Authorization failed または 401 Unauthorized が表示された場合:
  1. HyperDX UI で API key を確認します (Settings → API Keys → Ingestion API Key)
  2. エクスポートし直して再起動します:

Kafka クライアントコマンドでのポート競合

Kafka コンテナー内で Kafka コマンドを実行すると、次のメッセージが表示されることがあります。
コマンドの先頭に unset JMX_PORT && を付けてください:

ネットワーク接続の問題

JMX エクスポーターのログに Connection refused と表示される場合: すべてのコンテナーが同じ Docker ネットワークに接続されていることを確認します:
接続を確認します:

次のステップ

  • 重要なメトリクス (レプリケーション数が不足しているパーティション、コンシューマラグの増加、リクエストレイテンシの急上昇) に対するalertsを設定します
  • 特定のユースケース向けに追加のダッシュボードを作成します (トピックごとのスループット、コンシューマグループの監視)
  • 一意のkafka.broker.id resource attributeを持つJMX Metric Gathererインスタンスを追加して、複数のKafkaブローカーを監視します

本番環境への移行

このガイドでは、JMX Metric Gatherer から ClickStack の OTLPエンドポイントへメトリクスを直接送信します。これは、テストや小規模なデプロイメントには適しています。 本番環境では、独自の OpenTelemetry Collector を agent としてデプロイし、JMX Exporter からメトリクスを受信して ClickStack に転送してください。これにより、バッチ処理、耐障害性、一元的な設定管理が可能になります。 本番環境向けのデプロイメントパターンや collector の設定例については、OpenTelemetry による取り込みを参照してください。
最終更新日 2026年7月3日