Elasticsearchクエリ

Elasticsearch Query モニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください

注: このインテグレーションはベータ版です。

Splunk Distribution of OpenTelemetry Collector は、elasticsearch-queryモニタータイプの Smart Agent レシーバーを使用して、Elasticsearch からメトリクス化された集約レスポンスを取得します。このインテグレーションにより、Elasticsearch 集約タイプと集約名に基づいて Splunk Observability Cloud のデータポイントが構築されます。

メリット

インテグレーションを設定すると、これらの機能にアクセスできるようになります:

データモデルの変換

このインテグレーションは、Elasticsearch のレスポンスを Splunk Observability Cloud のデータポイントに変換します。

高いレベルでは、以下のようなタイプの反応を評価します:

  1. terms および filters 集約などの 1 つ以上のバケット集約内のメトリクス集約。データポイントのディメンションは、集約名(ディメンション名)と各バケットの key(ディメンション値)によって決定されます。メトリクス名は、メトリクス集約名のタイプと、複数値集約の場合のその値から派生します。metric_aggregation_type というディメンションも、対応するデータポイントに設定されます。

  2. バケット集約なしで適用されるメトリクス集約は、同じように変換されます。

  3. サブ集約としてメトリクス集約を持たないバケット集約は、<name_of_aggregation>.doc_count と呼ばれるメトリクスに変換され、各バケットの key とは別に bucket_aggregation_name ディメンションを持ちます。

注: バケット集約は Splunk Observability Cloud のディメンションを決定するため、ほとんどの場合、バケット集約は Elasticsearch からのデータの一部を表す string フィールドに対して実行する必要があります。

例:avgメトリクス集計

terms バケット集約のサブ集約としての avg メトリクス集約:

DEFAULT
```json
{
"aggs":{
    "host" : {
    "terms":{"field" : "host"},
    "aggs": {
        "average_cpu_usage": {
        "avg": {
            "field": "cpu_utilization"
        }
        }
    }
    }
}
}
```

このクエリの結果は、elasticsearch_query.average_cpu_usage と呼ばれるメトリクスになり、データポイントは host ディメンションを持ち、その値はレスポンス内のバケットの key となります。メトリクス集約のタイプ(avg)は、metric_aggregation_type ディメンションとしてデータポイント上に設定されます。

例えば、以下の json は4つのデータポイントを提供し、それぞれ host の値が異なります:

DEFAULT
```json
"aggregations" : {
"host" : {
    "doc_count_error_upper_bound" : 0,
    "sum_other_doc_count" : 0,
    "buckets" : [
    {
        "key" : "helsinki",
        "doc_count" : 13802,
        "average_cpu_usage" : {
        "value" : 49.77438052456166
        }
    },
    {
        "key" : "lisbon",
        "doc_count" : 13802,
        "average_cpu_usage" : {
        "value" : 49.919866685987536
        }
    },
    {
        "key" : "madrid",
        "doc_count" : 13802,
        "average_cpu_usage" : {
        "value" : 49.878350963628456
        }
    },
    {
        "key" : "nairobi",
        "doc_count" : 13802,
        "average_cpu_usage" : {
        "value" : 49.99789885523837
        }
    }
    ]
}
}
```

例:extended_stats メトリクス集約

terms バケット集約のサブ集約としての extended_stats メトリクス集約:

DEFAULT
```json
{
"aggs":{
"host" : {
    "terms":{"field" : "host"},
    "aggs": {
    "cpu_usage_stats": {
        "extended_stats": {
        "field": "cpu_utilization"
        }
    }
    }
}
}
}
```

```json
"aggregations" : {
"host" : {
    "doc_count_error_upper_bound" : 0,
    "sum_other_doc_count" : 0,
    "buckets" : [
    {
        "key" : "helsinki",
        "doc_count" : 13996,
        "cpu_usage_stats" : {
        "count" : 13996,
        "min" : 0.0,
        "max" : 100.0,
        "avg" : 49.86660474421263,
        "sum" : 697933.0
        }
    },
    {
        "key" : "lisbon",
        "doc_count" : 13996,
        "cpu_usage_stats" : {
        "count" : 13996,
        "min" : 0.0,
        "max" : 100.0,
        "avg" : 49.88225207202058,
        "sum" : 698152.0
        }
    },
    {
        "key" : "madrid",
        "doc_count" : 13996,
        "cpu_usage_stats" : {
        "count" : 13996,
        "min" : 0.0,
        "max" : 100.0,
        "avg" : 49.92469276936267,
        "sum" : 698746.0
        }
    },
    {
        "key" : "nairobi",
        "doc_count" : 13996,
        "cpu_usage_stats" : {
        "count" : 13996,
        "min" : 0.0,
        "max" : 100.0,
        "avg" : 49.98320948842527,
        "sum" : 699565.0
        }
    }
    ]
}
}
```

この場合、各バケットは5つのメトリクスを出力します:

YAML
1. `cpu_usage_stats.count`
2. `cpu_usage_stats.min`
3. `cpu_usage_stats.max`
4. `cpu_usage_stats.avg`
5. `cpu_usage_stats.sum`

ディメンションは前の例と同じ方法で導き出されます。

インストール

このインテグレーションを導入するには、以下の手順に従ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:

  2. [設定] セクションの説明に従ってインテグレーションを設定します。

  3. Splunk Distribution of OpenTelemetry Collector を再起動します。

設定

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

このインテグレーションを有効にするには、Collector構成に以下を追加します:

YAML
receivers:
  smartagent/elasticsearch-query:
    type: elasticsearch-query
    ... # Additional config

次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:

YAML
service:
  pipelines:
    metrics:
      receivers: [smartagent/elasticsearch-query]

設定オプション

Splunk Distribution of OpenTelemetry Collector がどのように既存の環境を統合し、補完できるかを示す具体的な使用例については、GitHub の設定例を参照してください。

Kubernetesについては、GitHubのkubernetes.yamlでエージェントとゲートウェイのYAMLファイルを参照してください。

Prometheus については、GitHub の Prometheus Federation Endpoint Example で、OTel Collector が Splunk Enterprise と既存の Prometheus デプロイメントでどのように動作するかの例を参照してください。

コンフィギュレーション設定

次の表に、このインテグレーションの設定オプションを示します:

オプション

必須

タイプ

説明

httpTimeout

いいえ

int64

読み取りと書き込みの両方の操作に対する HTTP タイムアウト時間。これは、

https://golang.org/pkg/time/#ParseDuration」が受け付ける継続時間文字列である必要があります。(デフォルト: 10s

username

いいえ

string

各リクエストで使用される Basic Auth ユーザー名 (ある場合)。

password

いいえ

string

各リクエストで使用するBasic Authパスワード (ある場合)。

useHTTPS

いいえ

bool

trueの場合、エージェントはHTTPSを使用してサーバに接続します

プレーン HTTP の代わりに HTTPS を使用します。(デフォルト:false

httpHeaders

いいえ

map of strings

HTTP ヘッダー名と値のマップ。同じメッセージヘッダーの

カンマ区切りの複数の値もサポートしています。

skipVerify

いいえ

bool

useHTTPSがtrueで、このオプションもtrueの場合、エクスポータ

TLS 証明書は検証されません。(デフォルト:false

caCertPath

いいえ

string

TLS証明書に署名したCA証明書へのパス。

skipVerify がfalseに設定されています。

clientCertPath

いいえ

string

TLSが必要な接続に使用するクライアントTLS証明書へのパス

clientKeyPath

いいえ

string

TLSが必要な接続に使用するクライアントTLSキーへのパス

host

string

port

string

index

いいえ

string

クエリ対象のインデックス。何も指定されていない場合、所与のクエリが

すべてのインデックスに適用されます。検索クエリを複数のインデックスに適用するには、インデックスをカンマ区切りで指定します(デフォルト:_all)。

elasticsearchRequest

はい

string

Elasticsearch リクエストボディの検索リクエストを受け取ります。詳細については、

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html の Elasticsearch ドキュメントを参照してください。

メトリクス

Splunk Distribution of OpenTelemetry Collector は、このレシーバーに対してメトリクスの組み込みフィルターリングを行いません。

トラブルシューティング

If you are a Splunk Observability Cloud customer and are not able to see your data in Splunk Observability Cloud, you can get help in the following ways.

Available to Splunk Observability Cloud customers

Available to prospective customers and free trial users

  • Ask a question and get answers through community support at Splunk Answers.

  • Join the Splunk community #observability Slack channel to communicate with customers, partners, and Splunk employees worldwide.