Kubernetesクラスターレシーバー

Kubernetesクラスターレシーバーは、Splunk Distribution of OpenTelemetry Collectorが、そのモニタリングAPIを通じてKubernetesからクラスターメトリクスを収集することを可能にします。

Kubernetes クラスターレシーバーは、Kubernetes API サーバーを使用してクラスターメトリクスを収集します。このレシーバーの単一インスタンスを使用して、Kubernetes クラスター全体をモニタリングできます。サポートされているパイプラインのタイプは metrics です。コンテナ、Pod、ノード、名前空間、クラスターなど、他の Kubernetes 要素をフィルタリングするには、代わりにフィルタープロセッサを使用します。詳細については 、「フィルタープロセッサ」を参照してください。さまざまなタイプのパイプラインについて詳しくは「パイプラインでデータを処理する」を参照してください。

Kubernetes バージョン 1.21 以降は、Kubernetes ナビゲーターと互換性があります。それ以下のバージョンの Kubernetes の使用はこのレシーバーではサポートされておらず、ナビゲーターにすべてのクラスターが表示されない可能性があります。

注: このレシーバーは、kubernetes-cluster Smart Agent モニターに代わるものです。

はじめに

デフォルトでは、Splunk OpenTelemetry Collectors の Helm チャートで Kubernetes クラスターレシーバーがすでに有効になっています。デフォルトの「Collected metrics and dimensions for Kubernetes」を含め、詳細については、「Helm で Collector for Kubernetes を設定する」を参照してください。

Collectorの設定でKubernetesクラスターレシーバーを手動で有効にするには、次の例に示すように、設定ファイルの receiversセクションに k8s_cluster を追加します:

receivers:
  k8s_cluster:
    auth_type: kubeConfig
    collection_interval: 30s
    node_conditions_to_report: ["Ready", "MemoryPressure"]
    allocatable_types_to_report: ["cpu","memory"]
    metadata_exporters: [signalfx]

設定を完了するには、構成ファイルの service セクションの metrics パイプラインにレシーバーを含めます。例:

service:
  pipelines:
    metrics:
      receivers: [k8s_cluster]

metadata_exporters を同期する

metadata_exporters を Kubernetes クラスターレシーバーが収集したメタデータと同期するメタデータエクスポータのリストとして使用します。例:

receivers:
  k8s_cluster:
    auth_type: serviceAccount
    metadata_exporters:
    - signalfx

このリストで指定されているエクスポータは、次のインターフェイスを実装する必要があります。エクスポータがインターフェイスを実装していない場合、起動が失敗します。

type MetadataExporter interface {
  ConsumeMetadata(metadata []*MetadataUpdate) error
}

type MetadataUpdate struct {
  ResourceIDKey string
  ResourceID    ResourceID
  MetadataDelta
}

type MetadataDelta struct {
  MetadataToAdd    map[string]string
  MetadataToRemove map[string]string
  MetadataToUpdate map[string]string
}

node_conditions_to_report を設定する

以下のコンフィギュレーションを使用すると、k8s_cluster のレシーバーは、コンフィギュレーション内の各条件について、2つのメトリクス、k8s.node.condition_readyk8s.node.condition_memory_pressure を出力します:

# ...
k8s_cluster:
  node_conditions_to_report:
    - Ready
    - MemoryPressure
# ...

値は、対応する ConditionConditionStatusTrue の場合は 1False の場合は 0Unknown の場合は -1 です。詳細については、Kubernetes のドキュメントで「Conditions」を検索してください。

設定

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

同梱

https://raw.githubusercontent.com/splunk/collector-config-tools/main/cfg-metadata/receiver/k8s_cluster.yaml

メトリクス

以下のメトリクス、リソース属性、および属性が使用できます。

注: SignalFx エクスポータは、デフォルトでいくつかの利用可能なメトリクスを除外します。デフォルトのメトリクスフィルタの詳細については、「List of metrics excluded by default」を参照してください。Collector が Kubernetes メトリクスを処理する方法を確認するには、「Collected metrics and dimensions for Kubernetes」を参照してください。

同梱

https://raw.githubusercontent.com/splunk/collector-config-tools/main/metric-metadata/k8sclusterreceiver.yaml

特定のメトリクスをアクティブまたは非アクティブにする

各メトリクスの metrics セクションの enabled フィールドを設定することで、特定のメトリクスをアクティブまたは非アクティブにできます。例:

receivers:
  samplereceiver:
    metrics:
      metric-one:
        enabled: true
      metric-two:
        enabled: false

以下は、アクティブ化されたメトリクスを持つホスト・メトリクス・レシーバーの構成例です:

receivers:
  hostmetrics:
    scrapers:
      process:
        metrics:
          process.cpu.utilization:
            enabled: true
注: 非アクティブ化されたメトリックは Splunk Observability Cloud に送信されません。
請求
  • MTS ベースのサブスクリプションの場合、すべてのメトリックがメトリックの使用にカウントされます。

  • ホストベースのプランを使用している場合、このドキュメントでアクティブ(アクティブ:はい)としてリストされているメトリックはデフォルトと見なされ、無料で含まれています。

詳細については、「Infrastructure Monitoringのサブスクリプション使用状況(ホストとメトリクスのプラン)」を参照してください。

トラブルシューティング

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______