Apollo
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Apollo

Crawler Crawler

Supported OS: Linux Mac OS Windows

概要

Apollo と Datadog のインテグレーションにより、Studio のパフォーマンスメトリクスを Datadog アカウントに転送できます。Datadog は高度な機能 API をサポートしているため、GraphQL メトリクスのグラフとアラートを作成することもできます。

メトリクス

Studio は次のメトリクスを Datadog に送信します。

  • apollo.operations.count - 実行された GraphQL 操作の数。これには、クエリ、ミューテーション、エラーになった操作が含まれます。

  • apollo.operations.error_count - エラーになった GraphQL 操作の数。これには、GraphQL 実行エラーのほか、Studio がサーバーへの接続に失敗した場合の HTTP エラーが含まれます。

  • apollo.operations.cache_hit_count - Apollo Server のクエリキャッシュ全体から結果が提供された GraphQL クエリの数。

  • GraphQL 操作の応答時間のヒストグラム (ミリ秒単位)。Studio の集計方法 (対数ビニング) のため、以下の値の精度は 5% 以内です。

    • apollo.operations.latency.min
    • apollo.operations.latency.median
    • apollo.operations.latency.95percentile
    • apollo.operations.latency.99percentile
    • apollo.operations.latency.max
    • apollo.operations.latency.avg

これらのメトリクスは 60 秒間隔で集計され、GraphQL 操作名に operation:<query-name> というタグが付けられます。同じ操作名を持つ一意のクエリシグネチャはマージされ、操作名のないクエリは無視されます。

これらのメトリクスは関連する Studio のグラフ ID (graph:<graph-id>) および関連するバリアント名 (variant:<variant-name>) の双方にタグ付けされるため、Studio の複数のグラフから同じ Datadog アカウントにデータを送信できます。バリアント名を設定していない場合、current が使用されます。

(2020 年 10 月より前に設定されたインテグレーションでは、メトリクス名が apollo.operations ではなく apollo.engine.operations で始まり、graph ではなく service タグが使用されます。Apollo Studio のグラフのインテグレーションページで新しいメトリクス名に移行できます。)

セットアップ

コンフィギュレーション

Apollo Datadog インテグレーションは、Studio に Datadog API キーとリージョンを提供するだけで簡単にセットアップできます。それ以上の構成は必要ありません。

  1. Datadog インテグレーションページに移動し、Apollo タイルをクリックします。その後、Configuration タブの一番下にある Install Integration をクリックします。

  2. Datadog API ページに移動して、API キーを作成します。

  3. ブラウザのアドレスバーで Datadog の API リージョンを確認します。

  • ドメイン名が app.datadoghq.com の場合、API リージョンは US となります。
  • ドメイン名が app.datadoghq.eu の場合、API リージョンは EU となります。
  1. Studio で、グラフのインテグレーションページを開きます。

    IntegrationsPage

  2. Datadog Forwarding セクションで Configure を開き、API キーとリージョンを入力して Enable をクリックします。転送されるすべてのメトリクスは対応するグラフ ID (graph:<graph-id>) でタグ付けされるため、すべてのグラフに対して同じ API キーを使用できます。

    IntegrationsToggle

  3. Datadog メトリクスエクスプローラーに移動し、メトリクスが表示されることを確認します。メトリクスが表示されるまで、最大 5 分お待ちください。

使用方法

詳細な使用方法については、Apollo インテグレーションのドキュメントを参照してください。

収集データ

メトリクス

apollo.operations.count
(gauge)
Number of GraphQL operations (queries and mutations) processed.
Shown as operation
apollo.operations.latency.avg
(gauge)
Total request duration for a GraphQL operation, average.
Shown as millisecond
apollo.operations.latency.median
(gauge)
Total request duration for a GraphQL operation, median/50th percentile.
Shown as millisecond
apollo.operations.latency.95percentile
(gauge)
Total request duration for a GraphQL operation, 95th percentile.
Shown as millisecond
apollo.operations.latency.99percentile
(gauge)
Total request duration for a GraphQL operation, 99th percentile.
Shown as millisecond
apollo.operations.latency.max
(gauge)
Total request duration for a GraphQL operation, max/100th percentile.
Shown as millisecond
apollo.operations.latency.min
(gauge)
Total request duration for a GraphQL operation, min/0th percentile.
Shown as millisecond
apollo.operations.error_count
(gauge)
Number of GraphQL operations that resulted in a GraphQL error, including HTTP errors from origins.
Shown as error
apollo.operations.cache_hit_count
(gauge)
Number of GraphQL queries that were served from the full response cache.
Shown as hit
apollo.engine.operations.count
(gauge)
Number of GraphQL operations (queries and mutations) processed. (Legacy metric; new integrations use apollo.operations.count.)
Shown as operation
apollo.engine.operations.latency.avg
(gauge)
Total request duration for a GraphQL operation, average. (Legacy metric; new integrations use apollo.operations.latency.avg.)
Shown as millisecond
apollo.engine.operations.latency.median
(gauge)
Total request duration for a GraphQL operation, median/50th percentile. (Legacy metric; new integrations use apollo.operations.latency.median.)
Shown as millisecond
apollo.engine.operations.latency.95percentile
(gauge)
Total request duration for a GraphQL operation, 95th percentile. (Legacy metric; new integrations use apollo.operations.latency.95percentile.)
Shown as millisecond
apollo.engine.operations.latency.99percentile
(gauge)
Total request duration for a GraphQL operation, 99th percentile. (Legacy metric; new integrations use apollo.operations.latency.99percentile.)
Shown as millisecond
apollo.engine.operations.latency.max
(gauge)
Total request duration for a GraphQL operation, max/100th percentile. (Legacy metric; new integrations use apollo.operations.latency.max.)
Shown as millisecond
apollo.engine.operations.latency.min
(gauge)
Total request duration for a GraphQL operation, min/0th percentile. (Legacy metric; new integrations use apollo.operations.latency.min.)
Shown as millisecond
apollo.engine.operations.error_count
(gauge)
Number of GraphQL operations that resulted in a GraphQL error, including HTTP errors from origins. (Legacy metric; new integrations use apollo.operations.error_count.)
Shown as error
apollo.engine.operations.cache_hit_count
(gauge)
Number of GraphQL queries that were served from the full response cache. (Legacy metric; new integrations use apollo.operations.cachehitcount.)
Shown as hit

イベント

現時点で、Apollo インテグレーションには、イベントは含まれません。

サービスのチェック

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

トラブルシューティング

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

その他の参考資料

インフラストラクチャーの監視の詳細および Datadog の全インテグレーションについては、ブログ記事を参照してください。