OpenShiftクラスター 🔗
Splunk Distribution of OpenTelemetry Collectorは、Smart Agentレシーバーと openshift-cluster
モニタータイプを使用して、Kubernetes APIサーバーからクラスターレベルのメトリクスを収集します。これには、Kubernetes クラスター (非推奨) のすべてのメトリクスと、追加のOpenShift固有のメトリクスが含まれます。openshift-cluster
モニターが自動的に組み込まれるため、OpenShiftデプロイでは kubernetes-cluster
モニターのみを使用する必要があります。
このモニターはKubernetes、Linux、Windowsで利用できます。
動作 🔗
エージェントは一般的にKubernetesクラスター内の複数の場所で実行されており、一般的にすべてのエージェントインスタンスで同じ設定を共有する方が便利であるため、このモニターはデフォルトで、クラスター内でメトリクスを送信する唯一のエージェントであることを保証するためにリーダー選出プロセスを使用します。
このモニターが構成されている同じ名前空間で動作しているすべてのエージェントは、どのエージェントがこのモニターのメトリクスを送信するかをエージェント間で決定します。このエージェントがリーダー・エージェントになります。残りのエージェントは、リーダー・エージェントが死亡した場合に起動できるように待機しています。alwaysClusterReporter
オプションを true
に設定することで、リーダー・エージェントの選出をオーバーライドできます。
メリット 🔗
インテグレーションを設定すると、これらの機能にアクセスできるようになります:
メトリクスを表示します。独自のカスタム・ダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードについては、Splunk Observability Cloudでダッシュボードを表示する を参照してください。
Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他のリソースのデータ駆動型の視覚化を表示します。ナビゲーターについては、Splunk Infrastructure Monitoring でナビゲーターを使用する を参照してください。
Metric Finder にアクセスして、モニターから送信されたメトリクスを検索します。詳細については、メトリクス・ファインダーとメタデータ・カタログを検索する を参照してください。
インストール 🔗
このインテグレーションを導入するには、以下の手順に従ってください:
Splunk Distribution of OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします。
デフォルトでは、Collectorはログインしている名前空間にインストールされます。Collectorを別の名前空間にデプロイするには、
--namespace
フラグを使用してCollectorを配置する場所を指定します。Install on Kubernetes Helmチャートを使用してKubernetesをインストールする場合、標準のKubernetesメトリクスに加えて、特定のOpenShiftメトリクスを生成するには、
--set distribution='openshift'
オプションを使用します。例:
helm install --set cloudProvider=' ' --set distribution='openshift' --set splunkObservability.accessToken='******' --set clusterName='cluster1' --namespace='namespace1' --set splunkObservability.realm='us0' --set gateway.enabled='false' --generate-name splunk-otel-collector-chart/splunk-otel-collector``
詳細はGitHubレポを参照してください。
設定のセクションで説明するように、モニターを設定します。
Splunk Distribution of OpenTelemetry Collector を再起動します。
設定 🔗
Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:
Smart Agent レシーバーを設定ファイルに含めます。
レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。
Collector でSmart Agent モニターを使用する の方法を参照してください。
Smart Agent レシーバー の設定方法を参照してください。
一般的な設定オプションのリストについては、モニターの共通設定 を参照してください。
Collectorの詳細は、はじめに:Collectorを理解して使用する を参照してください。
設定オプション 🔗
次の表に、このモニターの設定オプションを示します:
オプション |
必須 |
タイプ |
説明 |
---|---|---|---|
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
K8s APIクライアントの設定 |
|
いいえ |
|
このダイアグラムでは、次のようなダイアグラムが表示されます。メトリックは、 |
ネストされた kubernetesAPI
コンフィギュレーション・オブジェクトは以下のフィールドを持ちます:
オプション |
必須 |
タイプ |
説明 |
---|---|---|---|
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
|
メトリクス 🔗
このインテグレーションでは、以下のメトリクスを使用できます:
Name | Description | Category | Type |
---|---|---|---|
kubernetes.container_cpu_limit | Maximum CPU limit set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. | Default | gauge |
kubernetes.container_cpu_request | CPU requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. | Custom | gauge |
kubernetes.container_ephemeral_storage_limit | Maximum ephemeral storage set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#local-ephemeral-storage for details. | Custom | gauge |
kubernetes.container_ephemeral_storage_request | Ephemeral storage requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#local-ephemeral-storage for details | Custom | gauge |
kubernetes.container_memory_limit | Maximum memory limit set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. | Default | gauge |
kubernetes.container_memory_request | Memory requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. | Custom | gauge |
kubernetes.container_ready | Whether a container has passed its readiness probe (0 for no, 1 for yes) | Default | gauge |
kubernetes.container_restart_count | How many times the container has restarted in the recent past. This value is pulled directly from the K8s API and the value can go indefinitely high and be reset to 0 at any time depending on how your kubelet is configured to prune dead containers. It is best to not depend too much on the exact value but rather look at it as either | Default | gauge |
kubernetes.daemon_set.current_scheduled | The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod | Default | gauge |
kubernetes.daemon_set.desired_scheduled | The total number of nodes that should be running the daemon pod (including nodes currently running the daemon pod) | Default | gauge |
kubernetes.daemon_set.misscheduled | The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod | Default | gauge |
kubernetes.daemon_set.ready | The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready | Default | gauge |
kubernetes.daemon_set.updated | The total number of nodes that are running updated daemon pod | Custom | gauge |
kubernetes.deployment.available | Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. | Default | gauge |
kubernetes.deployment.desired | Number of desired pods in this deployment | Default | gauge |
kubernetes.deployment.updated | Total number of non-terminated pods targeted by this deployment that have the desired template spec | Custom | gauge |
kubernetes.namespace_phase | The current phase of namespaces ( | Default | gauge |
kubernetes.node_ready | Whether this node is ready (1), not ready (0) or in an unknown state (-1) | Default | gauge |
kubernetes.node_allocatable_cpu | How many CPU cores remaining that the node can allocate to pods | Custom | gauge |
kubernetes.node_allocatable_memory | How many bytes of RAM memory remaining that the node can allocate to pods | Custom | gauge |
kubernetes.node_allocatable_storage | How many bytes of storage remaining that the node can allocate to pods | Custom | gauge |
kubernetes.node_allocatable_ephemeral_storage | How many bytes of ephemeral storage remaining that the node can allocate to pods | Custom | gauge |
kubernetes.pod_phase | Current phase of the pod (1 - Pending, 2 - Running, 3 - Succeeded, 4 - Failed, 5 - Unknown) | Default | gauge |
kubernetes.replica_set.available | Total number of available pods (ready for at least minReadySeconds) targeted by this replica set | Default | gauge |
kubernetes.replica_set.desired | Number of desired pods in this replica set | Default | gauge |
kubernetes.replication_controller.available | Total number of available pods (ready for at least minReadySeconds) targeted by this replication controller. | Default | gauge |
kubernetes.replication_controller.desired | Number of desired pods (the | Default | gauge |
kubernetes.resource_quota_hard | The upper limit for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores. | Default | gauge |
kubernetes.resource_quota_used | The usage for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores. | Default | gauge |
kubernetes.stateful_set.desired | Number of desired pods in the stateful set (the | Custom | gauge |
kubernetes.stateful_set.ready | Number of pods created by the stateful set that have the | Custom | gauge |
kubernetes.stateful_set.current | The number of pods created by the StatefulSet controller from the
StatefulSet version indicated by | Custom | gauge |
kubernetes.stateful_set.updated | The number of pods created by the StatefulSet controller from the
StatefulSet version indicated by the | Custom | gauge |
kubernetes.job.completions | The desired number of successfully finished pods the job should be run with. | Custom | gauge |
kubernetes.job.parallelism | The max desired number of pods the job should run at any given time. | Custom | gauge |
kubernetes.job.active | The number of actively running pods for a job. | Custom | gauge |
kubernetes.job.succeeded | The number of pods which reached phase Succeeded for a job. | Custom | cumulative |
kubernetes.job.failed | The number of pods which reased phase Failed for a job. | Custom | cumulative |
kubernetes.cronjob.active | The number of actively running jobs for a cronjob. | Custom | gauge |
kubernetes.hpa.spec.max_replicas | The upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas. | Custom | gauge |
kubernetes.hpa.spec.min_replicas | The lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. | Custom | gauge |
kubernetes.hpa.status.current_replicas | The current number of pod replicas managed by this autoscaler. | Custom | gauge |
kubernetes.hpa.status.desired_replicas | The desired number of pod replicas managed by this autoscaler. | Custom | gauge |
kubernetes.hpa.status.condition.scaling_active | A status value that indicates the autoscaler status in reference to the ScalingActive condition. A value of 1 means that the autoscaler is in the ScalingActive condition, a 0 value means that it is not, and -1 means that the status of the ScalingActive condition is unknown. ScalingActive indicates that the HPA controller is able to scale if necessary. | Custom | gauge |
kubernetes.hpa.status.condition.able_to_scale | A status value that indicates the autoscaler status in reference to the AbleToScale condition. A value of 1 means that the autoscaler is in the AbleToScale condition, a 0 value means that it is not, and -1 means that the status of the AbleToScale condition is unknown. AbleToScale indicates a lack of transient issues which prevent scaling from occurring, such as being in a backoff window, or being unable to access/update the target scale. | Custom | gauge |
kubernetes.hpa.status.condition.scaling_limited | A status value that indicates the autoscaler status in reference to the ScalingLimited condition. A value of 1 means that the autoscaler is in the ScalingLimited condition, a 0 value means that it is not, and -1 means that the status of the ScalingLimited condition is unknown. ScalingLimited indicates that the calculated scale based on metrics would be above or below the range for the HPA, and has thus been capped. | Custom | gauge |
dimensions
Name | Description |
---|---|
kubernetes_name | The name of the resource that the metric describes |
kubernetes_namespace | The namespace of the resource that the metric describes |
kubernetes_node_uid | The UID of the node, as defined by the `uid` field of the node resource. |
kubernetes_pod_uid | The UID of the pod that the metric describes |
machine_id | The machine ID from /etc/machine-id. This should be unique across all nodes in your cluster, but some cluster deployment tools don't guarantee this. This will not be sent if the `useNodeName` config option is set to true. |
quota_name | The name of the k8s ResourceQuota object that the quota is part of |
resource | The k8s resource that the quota applies to |
properties
Name | Description |
---|---|
All non-blank labels on a given node will be synced as properties to the `kubernetes_node_uid` dimension value for that node. Any blank values will be synced as tags on that same dimension. | |
Any labels with non-blank values on the pod will be synced as properties to the `kubernetes_pod_uid` dimension. Any blank labels will be synced as tags on that same dimension. | |
container_status | Status of the container such as `running`, `waiting` or `terminated` are synced to the `container_id` dimension. |
container_status_reason | Reason why a container is in a particular state. This property is synced to `container_id` only if the value of `cotnainer_status` is either `waiting` or `terminated`. |
cronjob_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the cron job was created and is in UTC. This property is synced onto `kubernetes_uid`. |
daemonset_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the daemon set was created and is in UTC. This property is synced onto `kubernetes_uid`. |
deployment_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the deployment was created and is in UTC. This property is synced onto `kubernetes_uid`. |
job_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the job was created and is in UTC. This property is synced onto `kubernetes_uid`. |
pod_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the pod was created and is in UTC. This property is synced onto `kubernetes_pod_uid`. |
replicaset_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the replica set was created and is in UTC. This property is synced onto `kubernetes_uid`. |
statefulset_creation_timestamp | Timestamp (in RFC3339 format) representing the server time when the stateful set was created and is in UTC. This property is synced onto `kubernetes_uid`. |
node_creation_timestamp | CreationTimestamp is a timestamp representing the server time when the node was created and is in UTC. This property is synced onto `kubernetes_node_uid`. |
備考 🔗
Splunk Observability Cloudで利用可能なメトリクスタイプの詳細は、メトリクスタイプ を参照してください。
ホストベースのサブスクリプションプランでは、デフォルトのメトリクスは、ホスト、コンテナ、バンドルメトリクスなど、Splunk Observability Cloudのホストベースのサブスクリプションに含まれるメトリクスです。カスタムメトリクスはデフォルトでは提供されず、料金が発生する場合があります。詳細については、メトリクスカテゴリ を参照してください。
MTSベースのサブスクリプションプランでは、すべてのメトリクスがカスタムです。
メトリクスを追加するには、その他のメトリクスの追加 で
extraMetrics
の設定方法を参照してください。
トラブルシューティング 🔗
Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。
Splunk Observability Cloudをご利用のお客様
Splunk サポートポータル でケースを送信する
Splunkサポート に連絡する
見込み客および無料トライアルユーザー様
Splunk Answers のコミュニティサポートで質問し、回答を得る
Join the Splunk #observability user group Slack channel to communicate with customers, partners, and Splunk employees worldwide. To join, see Chat groups in the Get Started with Splunk Community manual.