Datadog Agent と Datadog-OpenMetrics または Datadog-Prometheus インテグレーションを併用して、コンテナ内で実行されているアプリケーションから、公開されている Prometheus および OpenMetrics メトリクスを収集します。
バージョン 6.5.0 より、Agent には OpenMetrics および Prometheus チェックが用意され、Prometheus エンドポイントをスクレイピングできます。Prometheus テキスト形式を効率よくフルにサポートできるため、Datadog では OpenMetrics チェックの 使用をお勧めします。カスタムチェックの記述を含む OpenMetricsCheck
インターフェイスの高度な使用方法については、開発ツールのセクションを参照してください。Prometheus チェックは、メトリクスのエンドポイントがテキスト形式をサポートしていない場合にのみ使用してください。
このページでは、これらのチェックの基本的な使用方法について説明します。これにより、Datadog 内のすべての Prometheus 公開メトリクスをインポートできるようになります。
以下のコマンドで、<DATADOG_API_KEY>
を自身のオーガニゼーションの API キーに置き換えて、その他のコンテナに隣接する Docker Agent を起動します。
DOCKER_CONTENT_TRUST=1 \
docker run -d -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY="<DATADOG_API_KEY>" \
-e DD_SITE="<YOUR_DATADOG_SITE>" \
gcr.io/datadoghq/agent:latest
DOCKER_CONTENT_TRUST=1 \
docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY="<DATADOG_API_KEY>" \
-e DD_SITE="<YOUR_DATADOG_SITE>" \
gcr.io/datadoghq/agent:latest
DOCKER_CONTENT_TRUST=1 \
docker run -d -e DD_API_KEY="<DATADOG_API_KEY>" \
-e DD_SITE="<YOUR_DATADOG_SITE>" \
gcr.io/datadoghq/agent:latest
注: Datadog サイトは です。
Agent は、Docker 上で実行されているかどうかを検出し、すべてのコンテナラベルの中から Datadog-OpenMetrics ラベルを自動検索します。オートディスカバリーは、ファイルの種類に応じて、ラベルが以下の例のようになっていることを前提とします。
LABEL "com.datadoghq.ad.check_names"='["openmetrics"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='["{\"prometheus_url\":\"http://%%host%%:<PROMETHEUS_PORT>/<PROMETHEUS_ENDPOINT> \",\"namespace\":\"<NAMESPACE>\",\"metrics\":[{\"<METRIC_TO_FETCH>\": \"<NEW_METRIC_NAME>\"}]}"]'
labels:
com.datadoghq.ad.check_names: '["openmetrics"]'
com.datadoghq.ad.init_configs: '[{}]'
com.datadoghq.ad.instances: >
[
"{\
"prometheus_url\":\"http://%%host%%:<PROMETHEUS_PORT>/<PROMETHEUS_ENDPOINT> \",\"namespace\":\"<NAMESPACE>\",
\"metrics\":[{\"<METRIC_TO_FETCH>\": \"<NEW_METRIC_NAME>\"}]
}"
]
-l com.datadoghq.ad.check_names='["openmetrics"]' -l com.datadoghq.ad.init_configs='[{}]' -l com.datadoghq.ad.instances='["{\"prometheus_url\":\"http://%%host%%:<PROMETHEUS_PORT>/<PROMETHEUS_ENDPOINT> \",\"namespace\":\"<NAMESPACE>\",\"metrics\":[{\"<METRIC_TO_FETCH>\": \"<NEW_METRIC_NAME>\"}]}"]'
コンフィギュレーションには次のプレースホルダー値を使用します。
プレースホルダー | 説明 |
---|---|
<PROMETHEUS_PORT> | Prometheus エンドポイントにアクセスするための接続先ポート。 |
<PROMETHEUS_ENDPOINT> | コンテナによって処理されたメトリクスの URL (Prometheus 形式)。 |
<NAMESPACE> | Datadog で表示するときに、すべてのメトリクスの前にネームスペースを付加します。 |
<METRIC_TO_FETCH> | Prometheus エンドポイントから取得される Prometheus メトリクスキー。 |
<NEW_METRIC_NAME> | オプションパラメーター。設定すると、<METRIC_TO_FETCH> メトリクスキーは Datadog の <NEW_METRIC_NAME> に変換されます。このオプションを使用しない場合は、key:value ペアではなく、文字列のリストを渡します。 |
注: 使用可能なすべてのコンフィギュレーションオプションについては、サンプル openmetrics.d/conf.yaml を参照してください。
コンテナ内で動作する Prometheus によって公開されたメトリクスの収集を開始するには、次の手順に従います。
Datadog Agent を起動します。
DOCKER_CONTENT_TRUST=1 \
docker run -d -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY="<DATADOG_API_KEY>" \
gcr.io/datadoghq/agent:latest
DOCKER_CONTENT_TRUST=1 \
docker run -d -e DD_API_KEY="<DATADOG_API_KEY>" \
gcr.io/datadoghq/agent:latest \
-v \\.\pipe\docker_engine:\\.\pipe\docker_engine
コンテナで Prometheus を起動するには、docker run -p 9090:9090 prom/prometheus
を実行します。Agent に OpenMetrics チェックでこのコンテナにクエリするよう通知する場合は、以下のコンフィギュレーションを使用します。
-l com.datadoghq.ad.check_names='["openmetrics"]' -l com.datadoghq.ad.init_configs='[{}]' -l com.datadoghq.ad.instances='[ {"prometheus_url":"http://%%host%%:%%port%%/metrics","namespace":"documentation_example_docker","metrics":[ {"promhttp_metric_handler_requests_total": "prometheus.handler.requests.total"}]}]'
オートディスカバリーの動作に適切なアノテーションを設定して Prometheus コンテナを起動する場合は、以下を実行します。
docker run -p 9090:9090 -l com.datadoghq.ad.check_names='["openmetrics"]' -l com.datadoghq.ad.init_configs='[{}]' -l com. datadoghq.ad.instances='[{"prometheus_url":"http://%%host%%:%%port%%/metrics","namespace":"documentation_example_docker", "metrics":[{"promhttp_metric_handler_requests_total": "prometheus.handler.requests.total"}]}]' prom/prometheus
メトリクスの概要ページに移動して、収集されたメトリクス prometheus_target_interval_length_seconds*
を確認します。
デフォルトでは、汎用の Prometheus チェックによって取得されるすべてのメトリクスが、カスタムメトリクスだと見なされます。既製ソフトウェアを監視されて、公式のインテグレーションにするべきだと思われた場合は、ぜひご提供をお願いします。
公式インテグレーションは、それぞれ専用のディレクトリを持ちます。汎用のチェックには、デフォルトの構成とメトリクスメタデータをハードコードするためのデフォルトのインスタンスメカニズムがあります。たとえば、kube-proxy インテグレーションを参照します。
このページ