Supported OS Linux

インテグレーションバージョン5.1.0

概要

CoreDNS からリアルタイムにメトリクスを取得して、DNS エラーとキャッシュのヒットまたはミスを視覚化および監視します。

セットアップ

バージョン 1.11.0 から、この OpenMetrics ベースのインテグレーションには、最新モード (ターゲットエンドポイントを指すように openmetrics_endpoint を設定することで有効) とレガシーモード (代わりに prometheus_url を設定することで有効) があります。すべての最新機能を利用するために、Datadog は最新モードを有効にすることを推奨します。詳細は OpenMetrics ベースのインテグレーションにおける最新バージョンとレガシーバージョンを参照してください。

CoreDNS チェックの最新モードは Python 3 を必要とし、.bucket メトリクスを送信し、.sum.count ヒストグラムサンプルを単調カウント型として送信します。これらのメトリクスはレガシーモードでは gauge 型で送信されていました。各モードで利用できるメトリクスの一覧は metadata.csv ファイルを参照してください。

Python 3 を使用できないホスト、または以前にこのインテグレーションモードを実装した場合は、legacy モードの構成例を参照してください。coredns.d/auto_conf.yaml ファイルに依存しているオートディスカバリーのユーザーのために、このファイルはデフォルトで legacy モードのチェックのために prometheus_url オプションを有効にします。デフォルトの構成オプションについては coredns.d/auto_conf.yaml のサンプルを、利用可能なすべての構成オプションについては coredns.d/conf.yaml.example のサンプルを参照してください。

インストール

CoreDNS チェックは Datadog Agent パッケージに含まれています。サーバーに追加でインストールする必要はありません。

構成

Docker

コンテナで実行中の Agent に対してこのチェックを構成するには:

メトリクスの収集

アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。

LABEL "com.datadoghq.ad.check_names"='["coredns"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"openmetrics_endpoint":"http://%%host%%:9153/metrics", "tags":["dns-pod:%%host%%"]}]'

この OpenMetrics ベースのチェックのレガシーモードを有効にするには、openmetrics_endpointprometheus_url に置き換えます。

LABEL "com.datadoghq.ad.instances"='[{"prometheus_url":"http://%%host%%:9153/metrics", "tags":["dns-pod:%%host%%"]}]' 

:

  • 出荷時の coredns.d/auto_conf.yaml ファイルは、レガシーモードのデフォルトで prometheus_url オプションを有効にします。
  • dns-pod タグは、対象の DNS ポッド IP を追跡します。他のタグは、サービスディスカバリーを使用して情報をポーリングする Datadog Agent に関連します。
  • ポッドでサービスディスカバリーアノテーションを実行する必要があります。デプロイの場合は、テンプレートの仕様のメタデータにアノテーションを追加します。外側のレベルの仕様には追加しないでください。

ログ収集

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Docker ログ収集を参照してください。

次に、ログインテグレーションを Docker ラベルとして設定します。

LABEL "com.datadoghq.ad.logs"='[{"source":"coredns","service":"<SERVICE_NAME>"}]'

Kubernetes

このチェックを、Kubernetes で実行している Agent に構成します。

メトリクスの収集

アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートをポッドアノテーションとして設定します。または、ファイル、コンフィギュレーションマップ、または Key-Value ストアを使用してテンプレートを構成することもできます。

Annotations v1 (Datadog Agent < v7.36 向け)

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.check_names: '["coredns"]'
    ad.datadoghq.com/coredns.init_configs: '[{}]'
    ad.datadoghq.com/coredns.instances: |
      [
        {
          "openmetrics_endpoint": "http://%%host%%:9153/metrics", 
          "tags": ["dns-pod:%%host%%"]
        }
      ]      
  labels:
    name: coredns
spec:
  containers:
    - name: coredns

Annotations v2 (Datadog Agent v7.36 以降向け)

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.checks: |
      {
        "coredns": {
          "init_config": {},
          "instances": [
            {
              "openmetrics_endpoint": "http://%%host%%:9153/metrics", 
              "tags": ["dns-pod:%%host%%"]
            }
          ]
        }
      }      
  labels:
    name: coredns
spec:
  containers:
    - name: coredns

この OpenMetrics ベースのチェックのレガシーモードを有効にするには、openmetrics_endpointprometheus_url に置き換えます。

Annotations v1 (Datadog Agent < v7.36 向け)

    ad.datadoghq.com/coredns.instances: |
      [
        {
          "prometheus_url": "http://%%host%%:9153/metrics", 
          "tags": ["dns-pod:%%host%%"]
        }
      ]      

Annotations v2 (Datadog Agent v7.36 以降向け)

          "instances": [
            {
              "prometheus_url": "http://%%host%%:9153/metrics", 
              "tags": ["dns-pod:%%host%%"]
            }
          ]

:

  • 出荷時の coredns.d/auto_conf.yaml ファイルは、レガシーモードのデフォルトで prometheus_url オプションを有効にします。
  • dns-pod タグは、対象の DNS ポッド IP を追跡します。他のタグは、サービスディスカバリーを使用して情報をポーリングする Datadog Agent に関連します。
  • ポッドでサービスディスカバリーアノテーションを実行する必要があります。デプロイの場合は、テンプレートの仕様のメタデータにアノテーションを追加します。外側のレベルの仕様には追加しないでください。

ログ収集

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。

次に、ログインテグレーションをポッドアノテーションとして設定します。または、ファイル、コンフィギュレーションマップ、または Key-Value ストアを使用してこれを構成することもできます。

Annotations v1/v2

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.logs: '[{"source": "coredns", "service": "<SERVICE_NAME>"}]'
  labels:
    name: coredns

ECS

このチェックを、ECS で実行している Agent に構成するには:

メトリクスの収集

アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。

{
  "containerDefinitions": [{
    "name": "coredns",
    "image": "coredns:latest",
    "dockerLabels": {
      "com.datadoghq.ad.check_names": "[\"coredns\"]",
      "com.datadoghq.ad.init_configs": "[{}]",
      "com.datadoghq.ad.instances": "[{\"openmetrics_endpoint\":\"http://%%host%%:9153/metrics\", \"tags\":[\"dns-pod:%%host%%\"]}]"
    }
  }]
}

この OpenMetrics ベースのチェックのレガシーモードを有効にするには、openmetrics_endpointprometheus_url に置き換えます。

      "com.datadoghq.ad.instances": "[{\"prometheus_url\":\"http://%%host%%:9153/metrics\", \"tags\":[\"dns-pod:%%host%%\"]}]"

:

  • 出荷時の coredns.d/auto_conf.yaml ファイルは、レガシーモードのデフォルトで prometheus_url オプションを有効にします。
  • dns-pod タグは、対象の DNS ポッド IP を追跡します。他のタグは、サービスディスカバリーを使用して情報をポーリングする Datadog Agent に関連します。
  • ポッドでサービスディスカバリーアノテーションを実行する必要があります。デプロイの場合は、テンプレートの仕様のメタデータにアノテーションを追加します。外側のレベルの仕様には追加しないでください。
ログ収集

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、ECS ログ収集を参照してください。

次に、ログインテグレーションを Docker ラベルとして設定します。

{
  "containerDefinitions": [{
    "name": "coredns",
    "image": "coredns:latest",
    "dockerLabels": {
      "com.datadoghq.ad.logs": "[{\"source\":\"coredns\",\"service\":\"<SERVICE_NAME>\"}]"
    }
  }]
}

検証

Agent の status サブコマンドを実行し、Checks セクションで coredns を探します。

収集データ

メトリクス

イベント

CoreDNS チェックには、イベントは含まれません。

サービスチェック

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: may/embedded-workflows