レシーバークリエーターレシーバー 🔗
Splunk Distribution of the OpenTelemetry Collectorでレシーバークリエーターレシーバーを使用すると、設定されたルールとオブザーバー拡張に基づいて、実行時に新しいレシーバーを作成できます。サポートされているパイプラインタイプは、metrics
、traces
、logs
です。詳細は パイプラインでデータを処理する を参照してください。
レシーバークリエーターのリスナーとして、以下のオブザーバー拡張機能のいずれかを使用できます:
docker_observer
:Docker APIを通じて実行中のコンテナエンドポイントを検出し、レポートします。ecs_task_observer
:ECS タスクを実行するコンテナエンドポイントを検出し、レポートします。host_observer
: 現在のホストのリッスンしているネットワークエンドポイントを発見します。k8s_observer
: Kubernetes APIを通じてKubernetesのポッド、ポート、ノードのエンドポイントを検出し、レポートします。
このレシーバーは、kubeletstats
や hostmetrics
レシーバーのように、アプリケーションやホスト用の他のレシーバーを使用できます。レシーバークリエーターの典型的なユースケースは、Kubernetes ポッドや Docker コンテナなど、動的にデプロイされるインフラストラクチャのメトリクスを収集することです。
はじめに 🔗
以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:
Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:
次のセクションで説明するように、レシーバークリエーターレシーバーを設定します。
Collector を再起動します。
サンプル構成 🔗
レシーバークリエーターレシーバーを有効にするには、設定ファイルの extensions
セクションに必要な拡張子を追加し、続いて receivers
セクションに receiver_creator
インスタンスを追加します。例:
extensions:
# Configures the Kubernetes observer to watch for pod start and stop events.
k8s_observer:
auth_type: serviceAccount
# Can be set to the node name to limit discovered endpoints
# The value can be obtained using the downward API
node: ${env:K8S_NODE_NAME}
observe_pods: true
observe_nodes: true
receivers:
receiver_creator/k8skubeletstats:
watch_observers: [k8s_observer]
receivers:
kubeletstats:
# If this rule matches an instance of this receiver will be started.
rule: type == "k8s.node"
config:
auth_type: serviceAccount
collection_interval: 15s
endpoint: '`endpoint`:`kubelet_endpoint_port`'
extra_metadata_labels:
- container.id
metric_groups:
- container
- pod
- node
service:
extensions: [k8s_observer]
pipelines:
metrics:
receivers: [receiver_creator/k8skubeletstats]
receiver_creator
設定の receivers
セクション内で、サポートされているレシーバーをネストして設定することができます。どのレシーバーをネストできるかは、レシーバークリエーターが watch_observers
で定義されている拡張機能を通じて監視しているインフラストラクチャの種類によって異なります。
例:Dockerオブザーバー 🔗
以下の例では、Docker observerを使用してレシーバークリエーターレシーバーを設定する方法を示しています:
extensions:
docker_observer:
# Default is unix:///var/run/docker.sock
# Collector must have read access to the Docker Engine API
endpoint: path/to/docker.sock
excluded_images: ['redis', 'another_image_name']
# Docker observer requires Docker API version 1.22 or higher
api_version: 1.42
# Time to wait for a response from Docker API. Default is 5 seconds
timeout: 15s
receivers:
receiver_creator:
watch_observers: [docker_observer]
receivers:
nginx:
rule: type == "container" and name matches "nginx" and port == 80
config:
endpoint: '`endpoint`/status'
collection_interval: 10s
例Kubernetesオブザーバー 🔗
次の例では、Kubernetesオブザーバーを使用してレシーバークリエーターレシーバーを設定する方法を示しています:
extensions:
k8s_observer:
auth_type: serviceAccount
# Can be set to the node name to limit discovered endpoints
# The value can be obtained using the downward API
node: ${env:K8S_NODE_NAME}
observe_pods: true
observe_nodes: true
receivers:
receiver_creator:
watch_observers: [k8s_observer]
receivers:
kubeletstats:
rule: type == "k8s.node"
config:
auth_type: serviceAccount
collection_interval: 10s
endpoint: "`endpoint`:`kubelet_endpoint_port`"
extra_metadata_labels:
- container.id
metric_groups:
- container
- pod
- node
新しいレシーバーを作成するためのルール 🔗
このレシーバーを使用して、ルールに基づいた新しいレシーバーを動的に作成することができます。各ルールは、type == ("pod"|"port"|"hostport"|"container"|"k8s.node") &&
で始まり、1つのエンドポイントタイプにのみマッチするようにする必要があります。
各エンドポイントタイプで利用可能な変数のリストについては、GitHubの ルール表現 を参照してください。
設定 🔗
次の表は、レシーバークリエーターレシーバーの設定オプションを示します:
トラブルシューティング 🔗
Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。
Splunk Observability Cloudをご利用のお客様
Splunk サポートポータル でケースを送信する
Splunkサポート に連絡する
見込み客および無料トライアルユーザー様
Splunk Answers のコミュニティサポートで質問し、回答を得る
Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。