Troubleshoot missing metrics 🔗
注釈
こちらも参照してください:
Splunk Collector for Kubernetesには、k8s.pod.*
と k8s.node.*
で始まるメトリクスがありません。 🔗
OpenTelemetry Collector for Kubernetes Chartバージョン0.87.0以上のSplunkディストリビューションを新規インストールまたはアップグレードでデプロイすると、以下のポッドとノードのメトリクスが収集されません:
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
Confirm the metrics are missing 🔗
To confirm these metrics are missing perform the following steps:
次の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
このコマンドで、KubernetesノードのCLIから、Collectorのポッドログを確認します:
kubectl -n {namespace} logs {collector-agent-pod-name}
注: namespace
と collector-agent-pod-name
はお使いの環境に基づいて更新してください。
エージェントポッドのログに、以下のような「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
Resolution 🔗
Kubelet統計レシーバー はKubernetesエンドポイント /stats/summary
から k8s.(ポッドまたはノード) メトリクスを収集します。Splunk OTel Collectorのバージョン0.87.0では、このプロセス中にkubelet証明書が検証され、有効であることが確認されます。自己署名または無効な証明書を使用している場合、Kubelet statsレシーバーはメトリクスを収集できません。
このエラーを解決するには2つの方法があります:
Kubernetesクラスターに有効な証明書を追加します。方法は Helmで Collector for Kubernetes を設定する を参照してください。
values.yaml
ファイルを更新した後、Helm upgradeコマンドを使用してCollectorデプロイをアップグレードします。values.yamlのagent.configセクションでKubelet statsレシーバーの
insecure_skip_verify: true
を設定することで、OTelエージェントのKubelet Statsレシーバーで証明書検証を無効にします。
たとえば、以下の設定を使用して証明書検証を無効にします:
agent:
config:
receivers:
kubeletstats:
insecure_skip_verify: true
注意
証明書検証を無効にする前に、セキュリティ要件に留意してください。