OpenTelemetryを統合してメトリクスを表示する
EMQXは、gRPC OTELプロトコルを介してメトリクスを直接OpenTelemetry Collectorにプッシュする機能を標準でサポートしています。Collectorはデータを任意のバックエンドにルーティング、フィルタリング、変換し、保存および可視化が可能です。
本ページでは、EMQXとOpenTelemetryの統合方法をダッシュボードを通じて紹介し、PrometheusでEMQXのメトリクスを表示する方法を説明します。
前提条件
OpenTelemetryとの統合を行う前に、OpenTelemetryとPrometheusをデプロイおよび設定しておく必要があります。
- OpenTelemetry Collectorをデプロイします。
- CollectorのgRPC受信ポート(デフォルトは4317)とPrometheusメトリクスエクスポートポート(8889)を設定します。
yaml
# otel-collector-config.yaml
receivers:
otlp:
protocols:
grpc:
exporters:
prometheus:
endpoint: "0.0.0.0:8889"
processors:
batch:
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus]
- Prometheusをデプロイします。
- Prometheusを設定し、Collectorが収集したメトリクスをスクレイプするようにします。
yaml
# prometheus.yaml
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['otel-collector:8889'] # EMQXメトリクス
- targets: ['otel-collector:8888'] # Collectorメトリクス
EMQXでOpenTelemetryメトリクスを有効化する
EMQXのOpenTelemetryメトリクス機能との統合は、EMQXダッシュボードまたは設定ファイルで行えます。ダッシュボードでは、左側のナビゲーションメニューから Management -> Monitoring をクリックし、Integration タブでメトリクスの設定を行います。
EMQXがローカルで動作している場合、以下の設定をEMQXの cluster.hocon
ファイルに追加してください。
bash
opentelemetry {
exporter { endpoint = "http://localhost:4317" }
metrics {
interval = "10s"
}
}
PrometheusでEMQXメトリクスを可視化する
EMQXのメトリクスは、PrometheusのWebコンソール(http://otel-collector:9090)で確認できます。