Amazon OpenSearch Service データソースを使用する - Amazon Managed Grafana

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon OpenSearch Service データソースを使用する

メトリクスクエリエディタ

OpenSearch クエリエディタを使用すると、複数のメトリクスを選択し、複数の用語またはフィルターでグループ化できます。右側のプラスアイコンとマイナスアイコンを使用して、メトリクスまたはグループを句で追加/削除します。一部のメトリクスと group by 句にはオプションがあります。オプションテキストを選択して行を展開し、オプション別にメトリクスまたはグループを表示および編集します。

パイプ処理言語 (PPL) の使用

Amazon OpenSearch Service データソースは、パイプ処理言語 (PPL) をサポートしています。PPL を使用すると、OpenSearch のクエリと視覚的表現を簡素化しながら強力に機能させることができます。PPL を使用することで、データを探索するために、長い OpenSearch Domain Specific Language (DSL) 文を作成したり、JSON オブジェクトを使用したクエリを記述する必要が無くなります。PPL では UNIX でのパイプのように、クエリをパイプで区切られた一連のコマンドとして記述できます。

以下のサンプル DSL クエリを例に使用します。

GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>

上記の DSL クエリは、簡潔で人間が読み取れる次の PPL コマンドに置き換えることができます。

source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count

PPL の詳細については、「パイプ処理言語を使用した Amazon OpenSearch Service データのクエリ」を参照してください。

シリーズの名前付けとエイリアスパターン

Alias 入力フィールドを使用して時系列の名前を制御できます。

パターン 説明
{{term fieldname}} Group By という用語の値に置き換え。
{{metric}} メトリクス名に置き換え (例:平均、最小、最大)。
{{field}} メトリクスフィールド名に置き換え。

パイプラインメトリクス

例えば、移動平均派生など、一部のメトリクス集約はパイプライン集約と呼ばれます。OpenSearch パイプラインメトリクスは、別のメトリクスに基づく必要があります。メトリクスの横にある目のアイコンを使用して、メトリクスがグラフに表示されないようにします。これは、パイプラインメトリクスで使用するクエリにのみあるメトリクスに役立ちます。

テンプレート作成

メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

テンプレート作成とテンプレート変数の詳細については、「テンプレートおよび変数」を参照してください。

クエリ変数

OpenSearch Service データソースは、[クエリ]変数の[クエリ]フィールドで使用できる 2 種類のクエリをサポートしています。クエリは、カスタム JSON 文字列を使用して記述します。

Query 説明
{"find": "fields", "type": "keyword"} インデックスタイプ keyword のフィールド名のリストを返します。
{"find": "terms", "field": "@hostname", "size": 1000} 用語集約を使用してフィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。
{"find": "terms", "field": "@hostname", "query": '<lucene query>'} 用語集約と指定された Lucene クエリフィルターを使用して、フィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。

用語クエリにはデフォルトのサイズ制限 500 があります。カスタム制限を設定するには、クエリのサイズプロパティを設定します。クエリでは、その他の変数を使用できます。次のコード例は、$host という名前の変数のクエリ定義を示しています。

{"find": "terms", "field": "@hostname", "query": "@source:$source"}

前の例では、クエリ定義内で $source という名前の別の変数を使用します。$source 変数の現在の値をドロップダウンリストで変更すると、$host 変数の更新が開始されます。更新後、$host 変数にはホスト名のみが含まれます。この場合、@source ドキュメントプロパティによってフィルタリングされます。

デフォルトでは、これらのクエリは用語の順序で返されます (その後、任意の変数と同様にアルファベット順または数値順にソートできます)。ドキュメント数でソートされた用語のリスト (上位 N の値リスト) を作成するには、doc_countorderBy プロパティを追加します。これにより、降順ソートが自動的に選択されます。doc_count (降順 N リスト) で asc を使用するには、order: "asc" を設定しますが、ドキュメントカウントのエラーが増加するため、推奨されません。ドキュメントカウントの順序で用語を保持するには、変数の [ソート] ドロップダウンリストを[無効]に設定します。または、[アルファベット]順を使用して再ソートすることもできます。

{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}

クエリでの変数の使用

2 つの構文があります。

  • $<varname> 例: @hostname:$hostname

  • [[varname]] 例: @hostname:[[hostname]]

なぜ 2 つの方法があるのですか? 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。[複数値]または[すべての値を含める]オプションが有効になっている場合、Grafana はラベルをプレーンテキストから Lucene 互換の条件に変換します。

前の例では、$hostname という名前の変数を使用して @hostname プロパティに基づいてドキュメントをフィルタリングする Lucene クエリがあります。また、フィールド入力ボックス別の用語グループで変数を使用しています。これにより、変数を使用してデータのグループ化方法をすばやく変更できます。

‏注釈

注釈を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニューまたは注釈ビューを使用して注釈クエリを追加します。Grafana は、注釈イベントの OpenSearch インデックスをクエリできます。詳細については、「‏注釈」を参照してください。

名前 説明
Query 検索クエリは空白のままにするか、Lucene クエリを指定できます。
Time 時間フィールドの名前。 日付フィールドである必要があります。
Time End 終了時刻フィールドのオプション名は日付フィールドである必要があります。設定されている場合、注釈は時間と終了時間の間のリージョンとしてマークされます。
Text イベントの説明フィールド。
Tags イベントタグに使用するオプションのフィールド名 (配列または CSV 文字列)。

ログのクエリ

OpenSearch からのログデータのクエリと表示は、Explore で確認できます。ログを表示するには、OpenSearch Service データソースを選択し、オプションで Lucene クエリを入力します。詳細については、「探索」を参照してください。

ログクエリ

結果が返されると、ログパネルにログ行のリストと棒グラフが表示されます。x 軸は時間、y 軸は頻度またはカウントを示します。

ログメッセージのフィルタリング

必要に応じて、クエリフィールドに Lucene クエリを入力して、ログメッセージをフィルタリングできます。例えば、デフォルトの Filebeat 設定を使用すると、fields.level:error を使用してエラーメッセージのみを表示できます。