概要
Datadog で、エラー応答時間、所要時間、レイテンシーを収集、表示して、Tyk における API トラフィックのパフォーマンスを監視し、API または消費者の問題を理解できます。
Tyk には、Tyk API ゲートウェイからメトリクスを収集する Datadog インテグレーションが組み込まれています。
Tyk API ゲートウェイでは、処理されるすべてのトラフィックが記録され、その情報を Datadog に送信してその関連ダッシュボードを構築します。
仕組み
Tyk pump は、アプリケーションのカスタムメトリクスを書き込み、Datadog Agent にバンドルされたメトリクス集計サービスである DogStatsD へ送信することで Datadog に送信します。DogStatsD は、Tyk-gateway
で使用されるヒストグラムメトリクスタイプを含む Datadog 固有の拡張機能を追加する StatsD プロトコルを実装します。
Tyk-gateway
は Tyk-pump
を使用して、生成した分析を Datadog へ送信します。
Datadog Agent の実行中、DogstatsD は Tyk-pump
から request_time
メトリクスをリクエストごとにリアルタイムで取得するため、API の使用状況を理解し、さまざまなパラメーター別(日付、バージョン、リターンコード、メソッドなど)に柔軟に集計できます。
カスタムメトリクス Tyk は、タイプ DD_HISTOGRAM_AGGREGATES を使用しています。
セットアップ
Tyk インテグレーションは tyk-pump
パッケージに含まれており、pump.conf
age でコンフィギュレーションを設定するだけです(Tyk プラットフォームから何もインストールする必要はありません)。
インストール
インストール
このインテグレーションに必要なのは、実行中の Tyk インストールのみです。Tyk セルフマネージド または Tyk OSS をインストールできます。両オプションに、tyk-pump
が含まれています。
Datadog Agent のインストール
ご使用の環境に Datadog Agent をインストールします。
Datadog Agent は、K8s クラスター、Docker コンテナ、Mac など、Tyk pump
がアクセスできる環境であれば、どのような方法でも実行可能です。
コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドをご参照ください。変更の適用を検証するには、Agent の status サブコマンドを実行します。
構成
Tyk-pump
Datadog pump を設定するには、pump README の DogstatsD セクションに記載された手順に従います。
以下は、pump.conf
の Datadog pump コンフィギュレーション例です。
pump.conf:
...
"dogstatsd": {
"type": "dogstatsd",
"meta": {
"address": "dd-agent:8126",
"namespace": "tyk",
"async_uds": true,
"async_uds_write_timeout_seconds": 2,
"buffered": true,
"buffered_max_messages": 32,
"sample_rate": 0.9999999999,
"tags": [
"method",
"response_code",
"api_version",
"api_name",
"api_id",
"org_id",
"tracked",
"path",
"oauth_id"
]
}
},
これは、1 つのコマンドでフル Tyk プラットフォームをスピンアップし、Datadog の例を含むすぐに使用できる例を提供するオープンソースプロジェクトである Tyk デモプロジェクトから採用した例です。このインテグレーションを実行するには、up.sh analytics-datadog
を使用します。
Datadog Agent の設定
Tyk インテグレーションでは、Datadog Agent にバンドルされたメトリクス集計サービスの DogstatsD を使用します。DogStatsD は StatsD
プロトコルを実装し、Datadog 固有の拡張機能を追加します。Tyk は Histogram メトリクスタイプ
を使用しています。
ご使用の環境で、以下の Datadog および DogStatsD 環境変数を設定します。
DD 環境変数 | 値 | 説明 |
---|
DD_API_KEY | {ご使用の-datadog-api-キー} | Datadog Agent の DD ポータルへの接続用。API キーは、アカウント設定で確認できます。 |
DD_ENV | tyk-demo-env | 環境名を設定します。 |
DD_DOGSTATSD_TAGS | “env:tyk-demo” | この DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。 |
DD_LOGS_ENABLED | true | Datadog Agent でのログ収集を有効にします。 |
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL | true | コンテナからログを収集します。 |
DD_DOGSTATSD_SOCKET | /var/run/docker.sock | リスニングする Unix ソケットのパス。Docker Compose はこのパスをマウントします。 |
DD_DOGSTATSD_ORIGIN_DETECTION | true | Unix ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。 |
DD_DOGSTATSD_NON_LOCAL_TRAFFIC | true | 他のコンテナからの DogStatsD パケットをリスニングします (カスタムメトリクスの送信に必要)。 |
DD_AGENT_HOST | dd-agent | Docker のエージェントホスト名。 |
DD_AC_EXCLUDE | redis | Datadog Redis チェックを除外します。(オプション) |
DD_CONTAINER_EXCLUDE | true | Datadog Agent の Docker チェックを除外します。 |
上記に記載された環境変数を設定後、Agent を DogstatsD でセットアップします。
設定後、Agent を再起動します。
検証
ダッシュボードを作成またはサンプルをインポートし、ウィジェットを追加します。metric オプションの Graph your data で、dogstatsd.namespace
のコンフィグ pump.conf
の pump に選択したネームスペースを入力します。
上の例では、tyk
です。入力を始めると、利用可能なすべてのメトリクスが表示されます。
収集データ
メトリクス
tyk.request_time.95percentile (gauge) | the 95th percentile of request time values in the time interval Shown as millisecond |
tyk.request_time.count (rate) | Represents the number of values submitted during the interval. Represents the number of values submitted during the interval, X. The Agent submits this number as a RATE so it would show in app the value of X/interval Shown as millisecond |
tyk.request_time.avg (gauge) | Represents the average of request time values in the time interval Shown as millisecond |
tyk.request_time.max (gauge) | Represents the maximum value of request time values sent during the time interval Shown as millisecond |
tyk.request_time.median (gauge) | Represents the median of request time values in the time interval Shown as millisecond |
ダッシュボード
Datadog では、API サービスおよびその消費に関する統計データを表示するダッシュボードを作成できます。
そのようなダッシュボードの例がこちらです。
注: 上記のダッシュボードをインポートして、自身のダッシュボードの例またはベースラインとして使用できます。
イベント
Tyk インテグレーションには、イベントは含まれません。
サービスチェック
Tyk インテグレーションには、サービスのチェック機能は含まれません。
トラブルシューティング
ご不明な点は、Datadog のサポートチームまでお問い合わせください。