概要
メトリクス、ログ、トレース、モニター、ダッシュボード、ノートブックなどを使用する場合でも、Datadog のすべてのグラフで同じ基本機能を利用できます。このページでは、グラフエディターを使用したクエリ作成について説明します。上級ユーザーは、JSON を使用してグラフを作成および編集できます。詳細については、JSON を使用したグラフ作成を参照してください。
Dashboards または Notebooks ページでは、グラフエディターを使用してクエリを作成できます。また、任意のページで利用可能な Quick Graphs を使用することもできます。任意のページで G を押して Quick Graphs を開きます。詳細については、Quick Graphs ガイドを参照してください。
グラフエディター
ウィジェットでは、右上隅の鉛筆アイコンをクリックしてグラフエディターを開きます。グラフエディターには以下のタブがあります。
- Share: 任意の外部 Web ページにグラフを埋め込みます。
- JSON: より柔軟性の高いエディター。グラフ定義言語の知識が必要です。
- Edit: グラフ作成オプションのデフォルトの UI。
グラフエディターを初めて開くと、Edit タブが表示されます。ここでは、UI を使用してほとんどの設定を選択できます。以下はその例です。
グラフを構成する
ダッシュボードでグラフを構成するには、次のプロセスに従ってください。
- 視覚化方法を選択する
- メトリクスを定義する
- メトリクスをフィルタリングする
- 時間集計を構成する
- スペース集計を構成する
- 関数を適用する
- グラフのタイトルを決める
視覚化方法を選択する
利用可能なウィジェットの中から視覚化したいものを選択します。
メトリクスを定義する
Metric の隣にあるドロップダウンから検索または選択して、グラフ化するメトリクスを選択します。使用するメトリクスがわからない場合、メトリクスのドロップダウンには、unit、type、interval、description、tags、および tag values の数を含む追加情報が表示されます。
Datadog または OpenTelemetry のソースインジケーターも表示される場合があります。環境で両方を使用している場合は、Datadog のテレメトリソースクエリ修飾子を使って、1 つのグラフ内で Datadog と OpenTelemetry のメトリクスを横断的にクエリできます。
Metrics Explorer やノートブックでメトリクスをさらに詳しく調べたり、Metrics Summary ページでメトリクスのリストを閲覧したりすることができます。
フィルタリングする
選択したメトリクスには、メトリクスの右側にある from ドロップダウンからホストまたはタグによるフィルターを設定することができます。デフォルトでは (すべての場所) に設定されています。
from ドロップダウン内の高度なフィルタリングを使用して、ブール型またはワイルドカードでフィルタリングされたクエリを評価します。- テンプレート変数を使用して、クエリを動的にフィルタリングします。タグキーを使用して
$ を追加すると、グラフは自動的にテンプレート変数ドロップダウンで選択したタグを適用します。詳細については、テンプレート変数のドキュメントを参照してください。
タグの詳細は、タグ付けに関するドキュメントを参照してください。
集計、ロールアップする
集計方法
集計方法はフィルタードロップダウンの隣にあります。これはデフォルトで avg by ですが、方法を max by、min by、または sum by に変更できます。ほとんどの場合、メトリクスは各時間間隔に対して多数の値を持ち、複数のホストやインスタンスから取得されます。選択された集計方法は、メトリクスをどのように単一のラインに集約するかを決定します。
上記で選択されたオプションに関係なく、グラフを表示するウィンドウの物理的なサイズ制約により、常にデータの集約が行われます。メトリクスが毎秒更新され、4 時間分のデータを表示している場合、すべてを表示するには 14,400 ポイントが必要です。各グラフには、任意の時点で約 300 ポイントが表示されます。したがって、画面に表示される各ポイントは 48 個のデータポイントを表します。
実際には、メトリクスは Agent によって 15〜20 秒ごとに収集されます。したがって、1 日分のデータは 4,320 個のデータポイントです。1 日分のデータを単一のグラフに表示すると、Datadog は自動的にデータをロールアップします。時間集計の詳細については、メトリクスの概要を参照してください。ロールアップ間隔と Datadog がデータポイントをどのように自動的にロールアップするかについては、ロールアップのドキュメントを参照してください。
データを手動でロールアップするには、ロールアップ関数を使用します。シグマアイコンをクリックして関数を追加し、ドロップダウンメニューから rollup を選択します。次に、データの集約方法と秒単位の間隔を選択します。
このクエリは、全マシンにわたる利用可能なディスクスペースの平均値を 1 分間隔で集計し、それを表す単一のラインを作成します。
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 において選択したメトリクスを選択した方法で集計したものです。
さらに、メトリクスの定義 で使用されるメトリクスのドロップダウンでタグをクリックすると、データをグループ化したり集計したりすることができます。
ネストされたクエリ
Datadog のネストされたクエリ機能を使用すると、既存のメトリクスクエリの結果に対して、時間および/またはスペース集計の追加レイヤーを追加できます。この高度なクエリ機能により、カウント/レート/ゲージタイプのメトリクスの集計クエリ結果のパーセンタイルや標準偏差を計算したり、より高解像度のクエリを過去の時間枠で実行したりすることも可能です。
詳細については、ネストされたクエリのドキュメントを参照してください。
高度なグラフの作成
分析のニーズに応じて、クエリに他の数学関数を適用できます。例としては、レートや導関数、平滑化などがあります。利用可能な関数のリストを参照してください。
Datadog は、さまざまな算術演算および比較関数を使用して、メトリクス、ログ、トレース、およびその他のデータソースをグラフ化する機能もサポートしています。グラフに表示される値を変更するには、+、-、/、*、minimum()、および maximum() を使用します。この構文では、整数値と複数のメトリクスを使用した算術演算の両方を使用できます。
各メトリクスを別々にグラフに表示するには、カンマ , を使用します。例: 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) を入力します。数式の結果のみを表示するには、可視化方法からクエリを非表示にするを参照してください。
これは、error ログと info ログの比率をグラフ化する方法を示す別の例です。
status:error / status:info
注: 計算式にはアルファベットのラベルが付けられていません。計算式同士での算術演算はできません。
可視化方法からクエリを非表示にする
ウィジェットに複数のクエリと 1 つの数式がある場合、個々のクエリを非表示にして数式の結果のみがグラフに表示されるようにできます。クエリの文字ラベルをクリックしてグラフ上での可視性を切り替えます。青いラベルはクエリが表示されていることを示し、灰色のラベルは非表示であることを示します。非表示のクエリは、数式の計算には引き続き使用されます。
2 つのクエリ間の最小値または最大値
minimum() と maximum() を使用して、2 つのクエリをポイントごとに比較し、各タイムスタンプで低い値または高い値を返します。
注: 算術演算比較に min() と max() を使用することは推奨されていません。代わりに minimum() と maximum() を使用してください。この非推奨事項は、算術演算比較構文のみに適用されます。min by、max by のような集計方法や、min と max を使用したネストされたクエリ集計は変更されません。
以下は maximum() を使用して 2 つのアベイラビリティゾーン間の CPU 使用率の最大値を求める例です。
maximum(system.cpu.user{availability-zone:eastus-1}, system.cpu.user{availability-zone:eastus-2})
さらに、異なる製品間で 2 つのクエリの最小値を計算することもできます。これは、minimum() を使用してエラーステータスと警告ステータスのログ間の最小値を求める別の例です。
minimum(status:error, status:warn)
エイリアスを作成する
データソースのカスタムエイリアスを作成して、ユーザーがグラフの結果を簡単に解釈できるようにすることができます。
タイトルの作成
タイトルを入力しない場合は、選択内容に基づいてタイトルが自動的に生成されます。ただし、グラフの目的を説明するタイトルを設定することを推奨します。
保存
Done をクリックして作業を保存し、エディターを終了します。いつでもエディターに戻ってグラフを変更できます。保存したくない変更を行った場合は、Cancel をクリックします。
その他のオプション
イベントオーバーレイ
Timeseries 視覚化のグラフエディターの Event Overlays セクションを使用して、イベント相関を表示します。検索フィールドに任意のテキストまたは構造化検索クエリを入力します。イベント検索では、ログ検索構文を使用します。
イベントオーバーレイはすべてのデータソースをサポートします。これにより、ビジネスイベントと Datadog のあらゆるサービスからのデータとの相関を容易にすることができます。
イベントオーバーレイを使えば、組織内のアクションがアプリケーションやインフラストラクチャーのパフォーマンスにどのような影響を与えるかを素早く確認することができます。以下に、使用例をいくつか紹介します。
- デプロイメントイベントを重ね合わせた RUM のエラーレート
- 余分なサーバーのプロビジョニングに関連するイベントと CPU 使用率を相関させる
- egress トラフィックと疑わしいログインアクティビティを相関させる
- Datadog が適切なアラートで構成されていることを確認するために、あらゆる時系列データとモニターアラートを相関させる
スプリットグラフ
スプリットグラフを使えば、メトリクスをタグごとに分けて視覚化することができます。
- グラフ表示時に Split Graph タブでこの機能にアクセスします。
- また、sort by メトリクスを変更することで、グラフ化しているデータと他のメトリクスとの関連性を確認することができます。
- 表示するグラフの数を limit to の値で制限します。
参考資料