Supported OS Linux Windows Mac OS

概要

Apache APISIX は動的でリアルタイムな高性能 API ゲートウェイであり、ロードバランシング、ダイナミックアップストリーム、カナリアリリース、サーキットブレーキング、認証、観測性などの豊富なトラフィック管理機能を提供します。例えば、Apache APISIX を使用して、従来の南北方向のトラフィックだけでなく、サービス間の東西方向のトラフィックも処理することができます。また、Kubernetes のイングレスコントローラーとしても使用できます。

APISIX-Datadog プラグインは、Datadog Agent にバンドルされている DogStatsD サーバーに、UDP 接続でカスタムメトリクスをプッシュします。DogStatsD は StatsD プロトコルの実装です。Apache APISIX Agent のカスタムメトリクスを収集し、1 つのデータポイントに集約して、設定された Datadog サーバーに送信します。

セットアップ

インストール

以下の構成方法に従ってください。

構成

  1. すでに Datadog を使用していて、Datadog Agent がインストールされている場合は、ポート 8125/UDP がファイアウォールで許可されていることを確認してください。例えば、Apache APISIX Agent は、Datadog Agent のポート 8125 に到達することができます。すでにこれを構成している場合は、ステップ 3 までスキップできます。

Datadog Agent のインストール方法の詳細については、Agent のドキュメントを参照してください。

  1. Datadog を初めて利用する場合

    1. まず、Datadog のウェブサイトにアクセスし、Get Started Free ボタンをクリックしてアカウントを作成します。
    2. API キーを生成します。 API キーの生成
  2. APISIX-Datadog プラグインは標準的な UDP ソケットを介して statsd プロトコルに従って DogStatsD サーバーに非同期にメトリクスを送信するので、datadog/agent の DogStatsD コンポーネントのみを必要とします。これが APISIX が完全な Agent を使うのではなく、スタンドアロンの datadog/dogstatsd イメージを使うことを推奨している理由です。datadog/agent イメージの ~2.8GB に比べて非常に軽量です (サイズは ~11MB のみ)。

コンテナとして実行するには

# 最新イメージをプルします
$ docker pull datadog/dogstatsd:latest
# 切り離されたコンテナを実行します
$ docker run -d --name dogstatsd-agent -e DD_API_KEY=<Your API Key from step 2> -p 8125:8125/udp  datadog/dogstatsd

Kubernetes を使用している場合、dogstatsd を Apache APISIX Agent と一緒に Daemonset または Multi-Container Pod としてデプロイすることができます。

  1. 以下は、特定のルートに対して Datadog プラグインを有効化する方法の例です。これは、dogstatsd Agent が既に稼働していることを前提としています。
# 特定のルートでプラグインを有効にします
$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "plugins": {
    "datadog": {}
  },
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "127.0.0.1:1980": 1
    }
  },
  "uri": "/hello"
}'

これで、エンドポイント URI である /hello へのリクエストがあれば、上記のメトリクスが生成され、Datadog Agent のローカル DogStatsD サーバーにプッシュされるようになります。

  1. プラグインを無効にするには、プラグインコンフィギュレーション内の対応する JSON コンフィギュレーションを削除して datadog を無効にしてください。APISIX のプラグインはホットロードされるため、APISIX を再起動する必要はありません。
# ルートに対してプラグインを無効にします
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "uri": "/hello",
  "plugins": {},
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "127.0.0.1:1980": 1
    }
  }
}'
  1. その他のカスタム構成オプションについては、Datadog Plugin のドキュメントを参照してください。

検証

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

収集データ

メトリクス

イベント

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

トラブルシューティング

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

その他の参考資料

PREVIEWING: may/embedded-workflows