ホストからの Prometheus および OpenMetrics メトリクスの収集
Datadog Agent と Datadog-OpenMetrics または Datadog-Prometheus インテグレーションを併用して、ホストで実行されているアプリケーションから、公開されている Prometheus および OpenMetrics メトリクスを収集します。
概要
バージョン 6.5.0 より、Agent には OpenMetrics および Prometheus チェックが用意され、Prometheus エンドポイントをスクレイピングできます。Prometheus テキスト形式を効率よくフルにサポートできるため、Datadog では OpenMetrics チェックの 使用をお勧めします。カスタムチェックの記述を含む OpenMetricsCheck
インターフェイスの高度な使用方法については、開発ツールのセクションを参照してください。Prometheus チェックは、メトリクスのエンドポイントがテキスト形式をサポートしていない場合にのみ使用してください。
このページでは、これらのチェックの基本的な使用方法について説明します。これにより、Datadog 内のすべての Prometheus 公開メトリクスをインポートできるようになります。
セットアップ
インストール
対応するオペレーティングシステムに Datadog Agent をインストールします。OpenMetrics および Prometheus チェックは Datadog Agent パッケージに含まれています。コンテナまたはホストに追加でインストールする必要はありません。
構成
公開されたメトリクスを収集するには
Agent の構成ディレクトリのルートにある conf.d/
フォルダーの openmetrics.d/conf.yaml
ファイルを編集します。使用可能なすべての構成オプションの詳細については、サンプル openmetrics.d/conf.yaml を参照してください。これは、インテグレーションを有効にするために必要な最低限の構成です。
init_config:
instances:
- openmetrics_endpoint: 'localhost:<PORT>/<ENDPOINT>'
namespace: '<NAMESPACE>'
metrics:
- '<METRIC_TO_FETCH>': '<DATADOG_METRIC_NAME>'
次の構成プレースホルダー値を使用します。
プレースホルダー | 説明 |
---|
<ポート> | Prometheus エンドポイントにアクセスするために接続するポート。 |
<エンドポイント> | コンテナによって提供されるメトリクスの URL(Prometheus 形式)。 |
<ネームスペース> | Datadog で表示するときに、すべてのメトリクスの前にネームスペースをプレフィックスとして設定します。 |
<フェッチするメトリクス> | Prometheus エンドポイントからフェッチされる Prometheus メトリクスキー。 |
<DATADOG_メトリクス名> | オプションパラメーター。設定すると、<フェッチするメトリクス> メトリクスキーは Datadog の <DATADOG_メトリクス名> に変換されます。 このオプションを使用しない場合は、key:value ペアではなく、文字列のリストを渡します。 |
Agent を再起動すると、メトリクスの収集が開始されます。
利用可能なパラメーター
インスタンス
で使用可能なパラメーターを以下にリストします。
名前 | タイプ | 要否 | デフォルト値 | 説明 |
---|
openmetrics_endpoint | 文字列 | 必須 | なし | OpenMetrics 形式のメトリクスを公開する URL です。 |
namespace | 文字列 | 必須 | なし | すべてのメトリクスネームスペースの前に付加されるネームスペース。メトリクスは、namespace.metric_name の形式で収集されます。 |
metrics | 文字列リストまたは key:value 要素 | 必須 | なし | Prometheus エンドポイントから取得されるメトリクスの <フェッチするメトリクス>: <新しいメトリクス名> ペアのリスト。
<新しいメトリクス名> はオプションです。設定すると、Datadog での名前が変換されます。このリストには少なくとも 1 つのメトリクスを指定する必要があります。 |
raw_metric_prefix | 文字列 | オプション | なし | 公開されるすべてのメトリクス名から取り除かれるプレフィックスです (存在する場合)。 |
health_service_check | boolean | オプション | true | Prometheus エンドポイントの健全性について報告するサービスチェックを送信します。チェックの名前は <ネームスペース>.prometheus.health です。 |
label_to_hostname | 文字列 | オプション | なし | ホスト名を 1 つのラベルの値で上書きします。 |
label_joins | オブジェクト | オプション | なし | label_joins を使用すると、メトリクスを対象として指定して、そのラベルを 1:1 マッピングを介して取得できます。 |
labels_mapper | key:value 要素のリスト | オプション | なし | labels_mapper を使用すると、一部のラベルの名前を変更できます。形式: <名前を変更するラベル>: <新しいラベル名> |
type_overrides | key:value 要素のリスト | オプション | なし | type_overrides を使用すると、Prometheus ペイロードのタイプを上書きするか、またはタイプが指定されていないメトリクスにタイプを適用できます (デフォルトでは無視されます)。 サポートされている <メトリクスタイプ> は、gauge 、monotonic_count 、histogram 、および summary です。 |
tags | key:value 要素のリスト | オプション | なし | このインテグレーションによって送信されるすべてのメトリクス、イベント、およびサービスチェックにアタッチされるタグのリスト。 タグ付けについての詳細。 |
send_distribution_buckets | boolean | オプション | false | send_distribution_buckets を true に設定すると、OpenMetrics ヒストグラムを送信してディストリビューションメトリクスに変換できます。
collect_histogram_buckets は true に設定する必要があります (デフォルト値)。 注: OpenMetrics v2 の場合は、代わりに collect_counters_with_distributions を使用してください。 |
send_distribution_counts_as_monotonic | boolean | オプション | false | send_distribution_counts_as_monotonic を true に設定し、OpenMetrics のヒストグラム/サマリーカウントを単調カウントとして送信します。 |
collect_histogram_buckets | boolean | オプション | true | collect_histogram_buckets を true に設定すると、ヒストグラムバケットを送信できます。 |
send_monotonic_counter | boolean | オプション | true | カウントを単調カウントとして送信する方法については、GitHub の関連事項を参照してください。 |
exclude_labels | 文字列のリスト | オプション | なし | 除外されるラベルのリスト。 |
ssl_cert | 文字列 | オプション | なし | Prometheus エンドポイントがセキュリティ保護されている場合、構成するための設定は以下のとおりです。 設定は、証明書へのパス (秘密キーを指定する必要あり)、または証明書と秘密キーの両方を含むファイルへのパスのいずれかです。 |
ssl_private_key | 文字列 | オプション | なし | 証明書が秘密キーを含んでいない場合に必要です。 警告: ローカル証明書への秘密キーは暗号化されていないことが必要です。 |
ssl_ca_cert | 文字列 | オプション | なし | カスタム証明書を生成するために使用する、信頼されている CA へのパス。 |
prometheus_timeout | 整数 | オプション | 10 | Prometheus/OpenMetrics クエリのタイムアウトを秒単位で設定します。 |
max_returned_metrics | 整数 | オプション | 2000 | デフォルトで、メトリクスのチェックは 2000 個に制限されます。必要な場合は、この制限を引き上げてください。 |
bearer_token_auth | boolean | オプション | false | bearer_token_auth を true に設定して、ベアラートークン認証のヘッダーに追加します。注: bearer_token_path が設定されていない場合は、/var/run/secrets/kubernetes.io/serviceaccount/token がデフォルトのパスとして使われます。 |
bearer_token_path | 文字列 | オプション | なし | Kubernetes サービスアカウントのベアラートークンファイルへのパス(ファイルが存在し正しくマウントされていることを確認してください)。注: bearer_token_auth を true に設定し、認証のために HTTP ヘッダにトークンを追加できるようにします。 |
collect_counters_with_distributions | boolean | オプション | false | Datadog のディストリビューションメトリクスとしてヒストグラムバケットを送信する際に、.sum と .count で終わる観測カウンターメトリクスも収集するかどうかを指定します。これは暗黙のうちに histogram_buckets_as_distributions オプションを有効にしています。 |
注: send_distribution_buckets
および send_distribution_counts_as_monotonic
以外のすべてのパラメーターは、OpenMetrics チェックと Prometheus チェックの両方でサポートされています。
はじめに
シンプルなメトリクスの収集
Prometheus によって公開されたメトリクスの収集を開始するには、次の手順に従います。
Prometheus Getting Started のドキュメントに従って、自分自身を監視する Prometheus のローカルバージョンを起動します。
プラットフォームに Datadog Agent をインストールします。
Agent の構成ディレクトリのルートにある conf.d/
フォルダーの openmetrics.d/conf.yaml
ファイルを次の内容で編集します。
init_config:
instances:
- openmetrics_endpoint: http://localhost:9090/metrics
namespace: 'documentation_example'
metrics:
- promhttp_metric_handler_requests_total: prometheus.handler.requests.total
Agent を再起動します。
メトリクスサマリーページに移動して、収集されたメトリクスを確認します: prometheus_target_interval_length_seconds*
カスタムインテグレーションを公式インテグレーションに
デフォルトでは、汎用の Prometheus チェックによって取得されるすべてのメトリクスが、カスタムメトリクスだと見なされます。既製ソフトウェアを監視されて、公式のインテグレーションにするべきだと思われた場合は、ぜひご提供をお願いします。
公式インテグレーションは、それぞれ専用のディレクトリを持ちます。汎用のチェックには、デフォルトの構成とメトリクスメタデータをハードコードするためのデフォルトのインスタンスメカニズムがあります。たとえば、kube-proxy インテグレーションを参照します。
その他の参考資料