Supported OS Linux Windows Mac OS

概要

Datadog で、エラー応答時間、所要時間、レイテンシーを収集、表示して、Tyk における API トラフィックのパフォーマンスを監視し、API または消費者の問題を理解できます。

Tyk には、Tyk API ゲートウェイからメトリクスを収集する Datadog インテグレーションが組み込まれています。

Tyk API ゲートウェイでは、処理されるすべてのトラフィックが記録され、その情報を Datadog に送信してその関連ダッシュボードを構築します。

仕組み

Tyk pump は、アプリケーションのカスタムメトリクスを書き込み、Datadog Agent にバンドルされたメトリクス集計サービスである DogStatsD へ送信することで Datadog に送信します。DogStatsD は、Tyk-gateway で使用されるヒストグラムメトリクスタイプを含む Datadog 固有の拡張機能を追加する StatsD プロトコルを実装します。

Tyk-gatewayTyk-pump を使用して、生成した分析を Datadog へ送信します。

Datadog Agent の実行中、DogstatsD は Tyk-pump から request_time メトリクスをリクエストごとにリアルタイムで取得するため、API の使用状況を理解し、さまざまなパラメーター別(日付、バージョン、リターンコード、メソッドなど)に柔軟に集計できます。

カスタムメトリクス Tyk は、タイプ DD_HISTOGRAM_AGGREGATES を使用しています。

セットアップ

Tyk インテグレーションは tyk-pump パッケージに含まれており、pump.confage でコンフィギュレーションを設定するだけです(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_ENVtyk-demo-env環境名を設定します。
DD_DOGSTATSD_TAGS“env:tyk-demo”この DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。
DD_LOGS_ENABLEDtrueDatadog Agent でのログ収集を有効にします。
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALLtrueコンテナからログを収集します。
DD_DOGSTATSD_SOCKET/var/run/docker.sockリスニングする Unix ソケットのパス。Docker Compose はこのパスをマウントします。
DD_DOGSTATSD_ORIGIN_DETECTIONtrueUnix ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。
DD_DOGSTATSD_NON_LOCAL_TRAFFICtrue他のコンテナからの DogStatsD パケットをリスニングします (カスタムメトリクスの送信に必要)。
DD_AGENT_HOSTdd-agentDocker のエージェントホスト名。
DD_AC_EXCLUDEredisDatadog Redis チェックを除外します。(オプション)
DD_CONTAINER_EXCLUDEtrueDatadog 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 インテグレーションには、イベントは含まれません。

サービスチェック

Tyk インテグレーションには、サービスのチェック機能は含まれません。

トラブルシューティング

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

PREVIEWING: may/unit-testing