概要

Datadog では、メトリクス、ログ、トレース、モニター、ダッシュボード、ノートブックなどのすべてのグラフで同じ基本機能は使用しています。このページでは、グラフエディターのクエリについて説明します。上級レベルのユーザーは、JSON を使用したグラフの作成や編集が可能です。詳細については、JSON を使用したグラフ作成をご参照ください。

ダッシュボードやノートブックページにあるグラフエディターを使ってクエリを実行することもできますが、どのページでも利用可能なクイックグラフを使うこともできます。クイックグラフは、任意のページで G をクリックすると開きます。詳しくは、クイックグラフガイドをご覧ください。

グラフエディター

ウィジェットで、右上の鉛筆アイコンをクリックしてグラフエディターを開きます。グラフエディターには以下のタブがあります。

  • Share: 任意の外部 Web ページにグラフを埋め込みます。
  • JSON: より柔軟性の高いエディター。グラフ定義言語の知識が必要です。
  • Edit: グラフ作成オプションのデフォルトの UI タブ。

初めてグラフエディターを開くと、Edit タブが表示されます。UI からほとんどの設定を選択できます。以下に例を示します。

グラフエディターの Edit タブ

グラフを構成する

ダッシュボードでグラフを構成するには、次のプロセスに従ってください。

  1. 視覚化の方法を選択
  2. メトリクスの定義
  3. メトリクスのフィルタリング
  4. 時間集計の構成
  5. 空間集計の構成
  6. 関数の適用
  7. グラフのタイトルを作成

視覚化に使用するウィジェットを選択する

利用可能なウィジェットの中から視覚化したいものを選択します。

メトリクスを定義する

検索するか、Metric の隣にあるドロップダウンから選択して、グラフ化したいメトリクスを選択します。使用するメトリクスが分からない場合は、メトリクスのドロップダウンから unittypeintervaldescriptiontags、および tag values の数などの追加情報を得ることができます。

メトリクス選択ドロップダウン

メトリクスエクスプローラーノートブックでメトリクスをさらに詳しく調べたり、メトリクスの概要ページでメトリクスのリストを閲覧することができます。

フィルター

選択したメトリクスには、メトリクスの右側にある from ドロップダウンからホストまたはタグによるフィルターを設定することができます。デフォルトでは (everywhere) に設定されています。

テンプレート変数とブール値ロジックを使用し、'from' フィールドでグラフをフィルター
  • from ドロップダウン内の高度なフィルタリングを使用して、ブール型またはワイルドカードでフィルタリングされたクエリを評価します。
  • テンプレート変数を使用して、クエリを動的にフィルターします。タグキーと一緒に $ を追加すると、グラフはテンプレート変数のドロップダウンで選択したタグを自動的に適用します。詳細はテンプレート変数のドキュメントを参照してください。

タグの詳細は、タグ付けに関するドキュメントを参照してください。

集計、ロールアップする

集計の方法

集計方法は、フィルターのドロップダウンの隣に表示されます。デフォルトでは avg by に設定されていますが、max bymin bysum by に変更できます。ほとんどの場合、メトリクスは多数のホストやインスタンスから集計されるため、時間間隔ごとに多数の値が含まれています。選択した集計方法によって、メトリクスを 1 本の線に集計する方法が決まります。

時間集計の構成

前述の手順で選択したオプションに関係なく、グラフの表示ウィンドウに物理的なサイズ制約があることから、データは常にある程度集約されています。メトリクスが毎秒更新され、4 時間分のデータを表示する場合、全データを表示するには 14,400 ポイントが必要です。この期間内に各グラフで表示できるポイント数は 300 です。そのため、画面上の 1 ポイントは 48 データポイントに相当します。

実際には、メトリクスは Agent によって 15~20 秒ごとに収集されます。そのため、1 日分のデータは 4,320 データポイントとなります。1 つのグラフで 1 日分のデータを表示する場合、Datadog は自動的にデータをロールアップします。時間集計の詳細については、メトリクスのはじめにをご参照ください。ロールアップの間隔や Datadog が自動的にデータポイントをロールアップする方法については、ロールアップドキュメントを参照してください。

手動でデータをロールアップするには、rollup 関数を使用します。シグマのアイコンをクリックして関数を追加し、ドロップダウンメニューから rollup を選択します。次に、データを集計する方法と間隔 (秒) を選択します。

このクエリは、全マシンにわたる利用可能なディスクスペースの平均値を 1 分間隔で集計し、それを表す単一のラインを作成します。

マシン全体の system.disk.free メトリクスのロールアップ例

JSON ビューに切り替えると、以下のようなクエリが表示されます。

"query": "avg:system.disk.free{*}.rollup(avg, 60)"

完全な JSON は次のようになります。

{
    "viz": "timeseries",
    "requests": [
        {
            "formulas": [
                {
                    "formula": "query1"
                }
            ],
            "queries": [
                {
                    "data_source": "metrics",
                    "name": "query1",
                    "query": "avg:system.disk.free{*}.rollup(avg, 60)"
                }
            ],
            "response_format": "timeseries",
            "type": "line",
            "style": {
                "palette": "dog_classic",
                "type": "solid",
                "width": "normal"
            }
        }
    ],
    "yaxis": {
        "scale": "linear",
        "min": "auto",
        "max": "auto",
        "include_zero": true,
        "label": ""
    },
    "markers": []
}

JSON ビューの使用方法については、JSON を使用したグラフ作成をご参照ください。

空間集計の構成

集約方法のドロップダウンの隣から、グラフ上で線またはグループを構成する要素を選択します。たとえば、host を選択すると、各 host につき 1 本の線が表示されます。各線は、特定の host に関する選択されたメトリクスで構成されており、選択した方法により集約されます。

さらに、メトリクスの定義で使用されるメトリクスのドロップダウンでタグをクリックすると、データをグループ化したり、集計したりすることができます。

Nested Queries

Datadog のネストされたクエリ機能により、既存のメトリクスクエリの結果に時間および/または空間集計の追加レイヤーを追加することができます。この高度なクエリ機能により、カウント/レート/ゲージタイプのメトリクスの集計クエリ結果のパーセンタイルや標準偏差を計算したり、より高解像度のクエリを過去の時間枠で実行したりすることも可能です。

詳細については、ネストされたクエリのドキュメントを参照してください。

高度なグラフの作成

分析のニーズに応じて、レートや微分、平滑化など、他の数学関数をクエリに適用することもできます。詳細については、使用可能な関数のリストをご参照ください。

また、Datadog では、さまざまな算術演算によりメトリクス、ログ、トレース、その他のデータソースをグラフ化できます。グラフに表示される 値を変更するには、+-/*min、および max を使用します。この構文では、整数値、および複数のメトリクスを使用した演算の両方を使用できます。

各メトリクスを別々にグラフに表示するには、コンマ (,) を使用します(例: a, b, c)。

: コンマを使用したクエリは視覚化でのみサポートされ、モニターでは機能しません。モニターで複数のメトリクスを組み合わせるには、ブール演算子または算術演算子を使用します。

整数を使用したメトリクスの演算

グラフでメトリクス値の表示方法を変更するには、算術演算を実行します。たとえば、特定のメトリクスの 2 倍の値を視覚化するには、グラフエディターで Advanced… リンクをクリックします。次に、Formula ボックスに計算式 (この例では a * 2) を入力します。

数式の例 - 乗算

2 つのメトリクス間の計算

メトリクスの割合を視覚化するには、1 つのメトリクスをもう 1 つのメトリクスで除算します。以下に例を示します。

jvm.heap_memory / jvm.heap_memory_max

グラフエディターの Advanced… オプションから Add Query を選択します。クエリにはアルファベット順に文字が割り当てられ、最初のメトリクスは a 、2 番目のメトリクスは b のように表示されます。

次に、Formula ボックスに算術演算 (この例では a / b) を入力します。グラフに数式のみを表示するには、メトリクス a および b の横にあるチェックマークをクリックします。

数式の例 - 比率

これは、error ログと info ログの比率をグラフ化する方法を示す別の例です。

status:error / status:info
数式の例 - ログ比率

: 数式に文字は割り当てられません。数式間では演算できません。

2 つのクエリ間の最小値または最大値

以下は max 演算子を使用して、2 つのアベイラビリティゾーン間の CPU 使用率の最大値を求める例です。

max(system.cpu.user{availability-zone:eastus-1}, system.cpu.user{availability-zone:eastus-2}) 
2 つのメトリクスクエリ間の最大カウント値を示す 'max' の計算式例

さらに、異なる商品の 2 つのクエリ間の最大値 (または最小値) を計算することもできます。以下は min 演算子を使用して、エラーステータスと警告ステータスのログ間の最小値を求める別の例です。

min(status:error, status:warn)
2 つのログクエリ間の最小カウント値を示す 'min' の計算式例

エイリアスを作成する

データソースのカスタムエイリアスを作成して、ユーザーがグラフの結果を簡単に解釈できるようにすることができます。

カスタムエイリアス

タイトルの作成

タイトルを入力しなくても、選択内容に基づいてタイトルが自動的に生成されますが、グラフの内容を表すタイトルをご自身で作成することをお勧めします。

保存

作業内容を保存してエディターを終了するには Done をクリックします。いつでもエディターに戻ってグラフを変更できます。変更を加えた一方で、その内容を保存しない場合は、Cancel をクリックします。

その他のオプション

イベントオーバーレイ

RUM のエラーレートをデプロイイベントと重ね合わせて表示する時系列ウィジェット

時系列可視化のグラフエディタで Event Overlays セクションを使用して、イベントの相関関係を表示します。検索フィールドに、任意のテキストまたは構造化検索クエリを入力します。イベント検索では、ログ検索構文を使用します。

イベントオーバーレイは、すべてのデータソースをサポートしています。これにより、ビジネスイベントと Datadog のあらゆるサービスからのデータとの相関を容易にすることができます。

イベントオーバーレイを使えば、組織内のアクションがアプリケーションやインフラストラクチャーのパフォーマンスにどのような影響を与えるかを素早く確認することができます。以下に、使用例をいくつか紹介します。

  • デプロイメントイベントを重ね合わせた RUM のエラーレート
  • 余分なサーバーのプロビジョニングに関連するイベントと CPU 使用率を相関させる
  • egress トラフィックと疑わしいログインアクティビティを相関させる
  • Datadog が適切なアラートで構成されていることを確認するために、あらゆる時系列データとモニターアラートを相関させる

スプリットグラフ

スプリットグラフを使えば、メトリクスをタグごとに分けて可視化することができます。

フルスクリーンウィジェットでメトリクス container.cpu.usage のスプリットグラフを表示する
  1. グラフ表示時に Split Graph タブでこの機能にアクセスします。
  2. また、sort by メトリクスを変更することで、グラフ化しているデータと他のメトリクスとの関連性を確認することができます。
  3. 表示するグラフの数を limit to の値で制限します。

その他の参考資料

お役に立つドキュメント、リンクや記事: