欠落したメトリクスのトラブルシューティング

Collector for Kubernetes に固有のトラブルシューティングについて説明します。

Splunk Collector for Kubernetes では「k8s.pod.*」および「k8s.node.*」で始まるメトリクスが欠落しています。

OpenTelemetry Collector for Kubernetes Chart バージョン 0.87.0 以上の Splunk Distribution を新規インストールまたはアップグレードでデプロイすると、以下のポッドとノードのメトリクスが収集されません。

  • k8s.(pod/node).cpu.time

  • k8s.(pod/node).cpu.utilization

  • k8s.(pod/node).filesystem.available

  • k8s.(pod/node).filesystem.capacity

  • k8s.(pod/node).filesystem.usage

  • k8s.(pod/node).memory.available

  • k8s.(pod/node).memory.major_page_faults

  • k8s.(pod/node).memory.page_faults

  • k8s.(pod/node).memory.rss

  • k8s.(pod/node).memory.usage

  • k8s.(pod/node).memory.working_set

  • k8s.(pod/node).network.errors

  • k8s.(pod/node).network.io

メトリクスが欠落していることを確認する

これらのメトリクスが欠落していることを確認するには、以下の手順を実行します。

  1. 次の Splunk Search Processing Language(SPL)コマンドでメトリクスが欠落していることを確認します。

    | mstats count(_value) as "Val" where index="otel_metrics_0_93_3" AND metric_name IN (k8s.pod.*, k8s.node.*) by metric_name
  2. 以下のコマンドで、Kubernetes ノードの CLI から、Collector のポッドログを確認します。

    kubectl -n {namespace} logs {collector-agent-pod-name}
    注: namespacecollector-agent-pod-name を利用環境に基づき更新してください。
  3. エージェントポッドのログ内に、次の例のような [tls: failed to verify certificate] エラーが表示されていることを確認してください。

    2024-02-28T01:11:24.614Z    error   scraperhelper/scrapercontroller.go:200  Error scraping metrics  {"kind": "receiver", "name": "kubeletstats", "data_type": "metrics", "error": "Get \"https://10.202.38.255:10250/stats/summary\": tls: failed to verify certificate: x509: cannot validate certificate for 10.202.38.255 because it doesn't contain any IP SANs", "scraper": "kubeletstats"}
    go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).scrapeMetricsAndReport
      go.opentelemetry.io/collector/receiver@v0.93.0/scraperhelper/scrapercontroller.go:200
    go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).startScraping.func1
      go.opentelemetry.io/collector/receiver@v0.93.0/scraperhelper/scrapercontroller.go:176

解像度

Kubelet stats レシーバは、Kubernetes エンドポイント /stats/summary から k8s.pod または k8s.node メトリクスを収集します。Splunk OTel Collector のバージョン 0.87.0 では、このプロセス中に kubelet 証明書の検証が行われ、有効であることが確認されます。自己署名証明書または無効な証明書を使用している場合、Kubelet 統計受信者はメトリクスを収集できません。

以下の手順に従ってエラーを解決してください。

  1. 有効な証明書を Kubernetes クラスターに追加します。方法については、「Helmで Collector for Kubernetes を設定する」を参照してください。values.yaml ファイルを更新した後、Helm upgrade コマンドを使用して Collector デプロイをアップグレードします。

  2. values.yaml の agent.config セクションで Kubelet stats レシーバの insecure_skip_verify: true を設定することで、OTel エージェントの Kubelet Stats レシーバで証明書検証を無効にします。

たとえば、以下の設定を使用して証明書検証を無効にします。

agent:
  config:
    receivers:
      kubeletstats:
        insecure_skip_verify: true
注意: 証明書検証を無効にする前に、セキュリティ要件に留意してください。