メトリクス
Incident Management が一般に使用できるようになりました。 Incident Management が広範に使用できるようになりました。

メトリクス


メトリクスとは?

メトリクスは、レイテンシーからエラー率、ユーザーのサインアップまで、環境に関するあらゆる情報を経時的に追跡できる数値です。

メトリクスが役立つ理由は?

メトリクスは、システムの全体像を提供します。それを使用して、環境の状態を一目で評価できます。たとえば、ユーザーが Web サイトをロードする速度や、サーバーの平均メモリ消費量などです。問題を特定したら、ログトレースを使用して、トラブルシューティングします。

システムの状態を追跡するメトリクスは、400 以上のサービスと Datadog のインテグレーションによって自動的に取得されます。ただし、ユーザーログインの数からユーザーカートのサイズ、チームのコードコミットの頻度まで、ビジネスに固有のメトリクス (カスタムメトリクスとも呼ばれます) を追跡することもできます。

さらに、メトリクスは、顧客からの需要を満たすために環境の規模を調整するのに役立ちます。リソースをどれだけ消費する必要があるかを正確に知ることは、お金を節約したり、パフォーマンスを向上させたりするのに役立ちます。

Datadog でメトリクスを使用するには?

メトリクスエクスプローラーダッシュボード、またはノートブックの Datadog アプリ全体でメトリクスを視覚化してグラフを作成できます。

時系列の視覚化がどのように見えるかの例を次に示します。

この折れ線グラフは、x 軸の時間に対して、y 軸のユーザーが経験したレイテンシー (ミリ秒単位) をプロットします。

Datadog には、視覚化のための多くのタイプのグラフやウィジェットがあります。詳しくは、Datadog のメトリクスグラフに関するブログシリーズをご覧ください。

メトリクスを Datadog に送信するには?

メトリクスは、いくつかの場所から Datadog に送信できます。

  • Datadog がサポートするインテグレーション: 400 以上ある Datadog のインテグレーションには、すぐに使用できるメトリクスが含まれています。このメトリクスにアクセスするには、サービスの特定のページに移動し、インストール手順に従います。たとえば、EC2 インスタンスを監視する必要がある場合は、Amazon EC2 インテグレーションドキュメントに移動します。

  • Datadog のプラットフォーム内で、メトリクスを直接生成できます。たとえば、ログに表示されるエラーステータスコードをカウントし、Datadog にそれを新しいメトリクスとして保存することができます。

  • 多くの場合、ビジネスに関連するメトリクス (ユーザーのログイン/登録数など) を追跡する必要があります。このような場合、カスタムメトリクスを作成できます。カスタムメトリクスは、AgentDogStatsD、または HTTP API を介して送信できます。

  • さらに、Datadog Agent は、いくつかの標準メトリクス (CPU やディスク使用量など) を自動的に送信します。

すべてのメトリクス送信ソースとメソッドの概要については、メトリクスタイプのドキュメントを参照してください。

メトリクスのクエリ

ダッシュボード、ノートブック、モニターのいずれを使用しても、グラフの作成方法は一定です。グラフエディタ UI を使用するか、生のクエリ文字列を直接変更することにより、グラフを作成できます。クエリ文字列を編集するには、右端の </> ボタンを押します。

メトリクスクエリの構造

Datadog のメトリクスクエリは次のようになります。

このクエリはいくつかのステップに分けることができます。

メトリクス名

まず、グラフを作成する特定のメトリクスを検索または Metric の横にあるドロップダウンから選択します。使用するメトリクスが不明な場合は、メトリクスエクスプローラーまたはノートブックで開始します。メトリクスの概要ページで、アクティブにレポートを送信しているメトリクスのリストを確認することも可能です。

メトリクスのフィルタリング

メトリクスを選択した後、タグに基づいてクエリをフィルタリングできます。たとえば、account:prod を使用してクエリを_スコープ_し、本番ホストからのメトリクスのみを含めることができます。詳細については、タグ付けのドキュメントを参照してください。

時間の構成

次に、時間ロールアップを使用してデータの粒度を選択します。この例では、6 分 (360 秒) ごとに 1 つのデータポイントがあると定義しました。各タイムバケットのデータをどのように集計するかを選択することもできます。デフォルトでは、平均 が適用されますが、他の使用可能なオプションは 合計最小最大カウント です。最大を適用する場合は、.rollup(max, 60) を使用します。

空間の構成

Datadog では、「空間」とは、メトリクスがさまざまなホストやタグに分散される方法を指します。制御できる空間には、グループ化と集計という 2 つの異なる側面があります。

_グループ化_は、グラフ上の線を構成するものを定義します。たとえば、4 つのリージョンに数百のホストが分散している場合、リージョンごとにグループ化すると、リージョンごとに 1 つの線をグラフ化して、時系列の数を 4 つに減らすことができます。

_集計_は、各グループのメトリクスを組み合わせる方法を定義します。利用可能な集計には、合計、最小、最大、平均の 4 つがあります。

関数の適用 (任意)

数学的な関数を使用してグラフ値を変更できます。これは、整数とメトリクスの間 (たとえば、メトリクスに 2 を掛ける) または 2 つのメトリクスの間 (たとえば、jvm.heap_memory / jvm.heap_memory_max のようにメモリ使用率の新しい時系列を作成する) で算術演算を実行することを意味します。

時間と空間の集計

_時間集計_と_空間集計_は、クエリの 2 つの重要なコンポーネントです。これらの集計がどのように機能するかを理解すると、グラフの誤解を避けるのに役立つため、これらの概念について以下で詳しく説明します。

時間集計

Datadog は大量のポイントを保存しますが、ほとんどの場合、そのすべてをグラフに表示することはできません。データポイントがピクセルよりも多くなるからです。そこで、Datadog では時間集計を使用して、データポイントをタイムバケットに結合することでこの問題を解決します。これは_ロールアップ_と呼ばれます。クエリに定義した時間間隔が長くなると、データの粒度が粗くなります。

各タイムバケットのデータを組み合わせるために適用できる集計には、合計、最小、最大、平均、カウントの 5 つがあります。

クエリを実行するたびに時間集計が_常に_適用されることを覚えておくことが重要です。

空間集計

空間集計は、ホスト、コンテナ、リージョンなどのタグによって単一のメトリクスを複数の時系列に分割します。たとえば、リージョンごとの EC2 インスタンスのレイテンシーを表示する場合は、空間集計を使用して各リージョンのホストを組み合わせる必要があります。

空間集計を使用するときに適用できる集計には、合計最小最大、_平均_の 4 つがあります。上記の例を使用して、ホストが us-east-1、us-east-2、us-west-1、us-west-2 の 4 つのリージョンに分散しているとします。各リージョンのホストは、集計関数を使用して組み合わせる必要があります。_最大_アグリゲーターを使用すると、各リージョンのホスト間で最大のレイテンシーが発生し、_平均_アグリゲーターを使用すると、リージョンごとの平均レイテンシーが発生します。

メトリクスタイプとリアルタイムメトリクスの可視性

Datadog に送信できるメトリクスタイプは?

Datadog では、カウント、ゲージ、レート、ヒストグラム、分布など、異なるユースケースに対応するいくつかの異なるメトリクスタイプをサポートしています。メトリクスタイプは、アプリのメトリクスで使用できるグラフと関数を決定します。

各メトリクスタイプの違いは?

Datadog Agent が、送信するデータポイントごとに Datadog のサーバーに個別のリクエストを行うことはありません。代わりに、_フラッシュ時間間隔_で収集された値を報告します。メトリクスのタイプは、この間隔でホストから収集された値が送信のためにどのように集計されるかを決定します。

**カウント**タイプは、送信されたすべての値を時間間隔で合計します。これは、たとえば、Web サイトのヒット数を追跡するメトリクスに適しています。

1 秒あたりのヒット数に関心がある場合は、**レート**タイプがカウントを取得し、それを時間間隔の長さで除算します。

**ゲージ**タイプは、間隔中に報告された最後の値を取ります。このタイプは、RAM または CPU の使用量を追跡するのに役立ちます。最後の値を取得すると、時間間隔中のホストの動作の代表的な像が得られます。この場合、_カウント_などの別のタイプを使用すると、不正確で極端な値になる可能性があります。これは、正しいメトリクスタイプを選択することの重要性を表しています。

**ヒストグラム**は、送信された値を要約した 5 つの異なる値、平均、カウント、中央値、95 パーセンタイル、最大を報告します。これにより、5 つの異なる時系列が生成されます。このメトリクスタイプは、平均値を知るだけでは不十分なレイテンシーなどに適しています。ヒストグラムを使用すると、すべてのデータポイントを記録しなくても、データがどのように分散しているかを理解できます。

**分布**はヒストグラムに似ていますが、環境内のすべてのホストにわたって時間間隔中に送信された値を要約します。複数のパーセンタイルをレポートすることもできます(p50、p75、p90、p95、p99)。この強力な機能の詳細については、ディストリビューションのドキュメントをご覧ください。

各メトリクスタイプの詳細な例と送信手順については、メトリクスタイプのドキュメントを参照してください。

メトリクスに関するリアルタイム情報を表示するには?

メトリクスの概要ページには、過去 1 時間、1 日、または 1 週間の指定されたタイムフレームで Datadog に報告されたメトリクスのリストが表示されます。メトリクスは、メトリクス名またはタグでフィルタリングできます。

メトリクス名をクリックすると、詳細サイドパネルに詳細情報が表示されます。詳細再度パネルには、メタデータ (タイプ、ユニット、間隔)、個別のメトリクスの数、レポートホストの数、送信されたタグの数、メトリクスで送信されたすべてのタグを含むテーブルなど、特定のメトリクスの重要な情報が表示されます。メトリクスで送信されているタグを確認すると、タグ値の組み合わせによって異なるため、メトリクスからレポートされる個別のメトリクスの数を理解するのに役立ちます。

注: メトリクスの概要の詳細サイドパネルで報告される個別のメトリクスの数によって請求が定義されるわけではありません。過去 1 か月間の使用量の正確な計算については、使用量の詳細を参照してください。

詳細については、完全なメトリクスの概要ドキュメントを参照してください。

その他の参考資料