- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Kubernetes サービスからメトリクスをリアルタイムに取得すると、以下のことが可能になります。
Kubernetes State Metrics Core チェックは kube-state-metrics バージョン 2+ を活用し、レガシーの kubernetes_state
チェックと比較してパフォーマンスとタグ付けが大幅に改善されています。
レガシーチェックとは対照的に、Kubernetes State Metrics Core チェックでは、クラスターに kube-state-metrics
をデプロイする必要がなくなりました。
Kubernetes State Metrics Core は、より詳細なメトリクスとタグを提供するため、レガシーの kubernetes_state
チェックのより良い代替手段になります。詳細については、主な変更点および収集されたデータを参照してください。
Kubernetes State Metrics Core チェックは Datadog Cluster Agent イメージに含まれているため、Kubernetes サーバーに他に何もインストールする必要はありません。
Helm values.yaml
で、以下を追加します。
datadog:
# (...)
kubeStateMetricsCore:
enabled: true
kubernetes_state_core
のチェックを有効にするには、DatadogAgent リソースの設定 spec.features.kubeStateMetricsCore.enabled
を true
に設定する必要があります。
apiVersion: datadoghq.com/v1alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
kubeStateMetricsCore:
enabled: true
# (...)
注: Datadog Operator v0.7.0 以降が必要です。
元の kubernetes_state
のチェックでは、いくつかのタグが非推奨とフラグが立てられ、新しいタグに置き換えられています。移行経路を決定するために、どのタグがメトリクスで送信されるかを確認します。
kubernetes_state_core
のチェックでは、非推奨のタグのみが提出されます。kubernetes_state
から kubernetes_state_core
に移行する前に、モニターやダッシュボードで公式タグのみが使用されているか確認します。
以下は、非推奨タグとそれに代わる公式タグの対応表です。
非推奨タグ | 公式タグ |
---|---|
cluster_name | kube_cluster_name |
container | kube_container_name |
cronjob | kube_cronjob |
daemonset | kube_daemon_set |
deployment | kube_deployment |
hpa | horizontalpodautoscaler |
image | image_name |
job | kube_job |
job_name | kube_job |
namespace | kube_namespace |
phase | pod_phase |
pod | pod_name |
replicaset | kube_replica_set |
replicationcontroller | kube_replication_controller |
statefulset | kube_stateful_set |
Kubernetes State Metrics Core チェックには後方互換性がありません。レガシーの kubernetes_state
チェックから移行する前に、変更点を注意深くお読みください。
kubernetes_state.node.by_condition
kubernetes_state.nodes.by_condition
を置き換えます。kubernetes_state.persistentvolume.by_phase
kubernetes_state.persistentvolumes.by_phase
を置き換えます。kubernetes_state.pod.status_phase
pod_name
のようにポッドレベルのタグでタグ付けされます。kubernetes_state.node.count
host
というタグは付いていません。このメトリクスは、ノード数を kernel_version
os_image
container_runtime_version
kubelet_version
によって集計します。kubernetes_state.container.waiting
と kubernetes_state.container.status_report.count.waiting
kube_job
kubernetes_state
では、Job
が CronJob
をオーナーとしていた場合は kube_job
タグの値が CronJob
名となり、それ以外の場合は Job
名となります。kubernetes_state_core
では、kube_job
タグの値は常に Job
名となり、新たに kube_cronjob
タグキーが追加されて CronJob
名をタグ値として持つようになります。kubernetes_state_core
に移行する場合、クエリフィルターには新しいタグか kube_job:foo*
(foo
は CronJob
名) を使用することが推奨されます。Helm の values.yaml
で kubeStateMetricsCore
を有効にすると、レガシーの kubernetes_state
チェックの自動コンフィギュレーションファイルを無視するように Agent が構成されます。目標は、両方のチェックを同時に実行しないようにすることです。
それでも移行フェーズで両方のチェックを同時に有効にする場合は、values.yaml
の ignoreLegacyKSMCheck
フィールドを無効にします。
注: ignoreLegacyKSMCheck
は、Agent がレガシーの kubernetes_state
チェックの自動コンフィギュレーションのみを無視するようにします。カスタムの kubernetes_state
コンフィギュレーションは手動で削除する必要があります。
Kubernetes State Metrics Core チェックでは、クラスターに kube-state-metrics
をデプロイする必要がなくなりました。Datadog Helm Chart の一部として kube-state-metrics
のデプロイを無効にできます。これを行うには、Helm の values.yaml
に以下を追加します。
datadog:
# (...)
kubeStateMetricsEnabled: false
重要な注意: Kubernetes State Metrics Core チェックは、レガシーの kubernetes_state
チェックに代わるものです。Datadog は、一貫したメトリクスを保証するために、両方のチェックを同時に有効にしないことをお勧めします。
kubernetes_state.daemonset.count
kube_namespace
。kubernetes_state.daemonset.scheduled
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.desired
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.misscheduled
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.ready
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.updated
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.daemons_unavailable
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.daemonset.daemons_available
kube_daemon_set
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.count
kube_namespace
。kubernetes_state.deployment.paused
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.replicas_desired
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.rollingupdate.max_unavailable
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.rollingupdate.max_surge
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.replicas
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.replicas_available
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.replicas_unavailable
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.replicas_updated
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.deployment.condition
kube_deployment
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.endpoint.count
kube_namespace
。kubernetes_state.endpoint.address_available
endpoint
kube_namespace
。kubernetes_state.endpoint.address_not_ready
endpoint
kube_namespace
。kubernetes_state.namespace.count
phase
。kubernetes_state.node.count
kernel_version
os_image
container_runtime_version
kubelet_version
。kubernetes_state.node.cpu_allocatable
node
resource
unit
。kubernetes_state.node.memory_allocatable
node
resource
unit
。kubernetes_state.node.pods_allocatable
node
resource
unit
。kubernetes_state.node.ephemeral_storage_allocatable
node
resource
unit
。kubernetes_state.node.cpu_capacity
node
resource
unit
。kubernetes_state.node.memory_capacity
node
resource
unit
。kubernetes_state.node.pods_capacity
node
resource
unit
。kubernetes_state.node.ephemeral_storage_capacity
node
resource
unit
。kubernetes_state.node.by_condition
condition
node
status
。kubernetes_state.node.status
node
status
。kubernetes_state.node.age
node
。kubernetes_state.container.terminated
kube_namespace
pod_name
kube_container_name
(標準ラベルの env
service
version
)。kubernetes_state.container.cpu_limit
kube_namespace
pod_name
kube_container_name
node
resource
unit
(標準ラベルの env
service
version
)。kubernetes_state.container.memory_limit
kube_namespace
pod_name
kube_container_name
node
resource
unit
(標準ラベルの env
service
version
)。kubernetes_state.container.cpu_requested
kube_namespace
pod_name
kube_container_name
node
resource
unit
(標準ラベルの env
service
version
)。kubernetes_state.container.memory_requested
kube_namespace
pod_name
kube_container_name
node
resource
unit
(標準ラベルの env
service
version
)。kubernetes_state.container.ready
kube_namespace
pod_name
kube_container_name
(標準ラベルの env
service
version
)。kubernetes_state.container.restarts
kube_namespace
pod_name
kube_container_name
(標準ラベルの env
service
version
)。kubernetes_state.container.running
kube_namespace
pod_name
kube_container_name
(標準ラベルの env
service
version
)。kubernetes_state.container.waiting
kube_namespace
pod_name
kube_container_name
(標準ラベルの env
service
version
)。kubernetes_state.container.status_report.count.waiting
kube_namespace
pod_name
kube_container_name
reason
(標準ラベルの env
service
version
)。kubernetes_state.container.status_report.count.terminated
kube_namespace
pod_name
kube_container_name
reason
(標準ラベルの env
service
version
)。kubernetes_state.pod.ready
kube_namespace
pod_name
condition
(標準ラベルの env
service
version
)。kubernetes_state.pod.scheduled
kube_namespace
pod_name
condition
(標準ラベルの env
service
version
)。kubernetes_state.pod.volumes.persistentvolumeclaims_readonly
kube_namespace
pod_name
volume
persistentvolumeclaim
(標準ラベルの env
service
version
)。kubernetes_state.pod.unschedulable
kube_namespace
pod_name
(標準ラベルの env
service
version
)。kubernetes_state.pod.status_phase
kube_namespace
pod_name
pod_phase
(標準ラベルの env
service
version
)。kubernetes_state.pod.age
kube_namespace
pod_name
pod_phase
(標準ラベルの env
service
version
)。kubernetes_state.pod.uptime
kube_namespace
pod_name
pod_phase
(標準ラベルの env
service
version
)。kubernetes_state.pod.count
kube_namespace
kube_<owner kind>
。kubernetes_state.persistentvolumeclaim.status
kube_namespace
persistentvolumeclaim
phase
storageclass
。kubernetes_state.persistentvolumeclaim.access_mode
kube_namespace
persistentvolumeclaim
access_mode
storageclass
。kubernetes_state.persistentvolumeclaim.request_storage
kube_namespace
persistentvolumeclaim
storageclass
。kubernetes_state.persistentvolume.capacity
persistentvolume
storageclass
。kubernetes_state.persistentvolume.by_phase
persistentvolume
storageclass
phase
。kubernetes_state.pdb.pods_healthy
kube_namespace
poddisruptionbudget
。kubernetes_state.pdb.pods_desired
kube_namespace
poddisruptionbudget
。kubernetes_state.pdb.disruptions_allowed
kube_namespace
poddisruptionbudget
。kubernetes_state.pdb.pods_total
kube_namespace
poddisruptionbudget
。kubernetes_state.secret.type
kube_namespace
secret
type
。kubernetes_state.replicaset.count
kube_namespace
kube_deployment
。kubernetes_state.replicaset.replicas_desired
kube_namespace
kube_replica_set
(標準ラベルの env
service
version
)。kubernetes_state.replicaset.fully_labeled_replicas
kube_namespace
kube_replica_set
(標準ラベルの env
service
version
)。kubernetes_state.replicaset.replicas_ready
kube_namespace
kube_replica_set
(標準ラベルの env
service
version
)。kubernetes_state.replicaset.replicas
kube_namespace
kube_replica_set
(標準ラベルの env
service
version
)。kubernetes_state.replicationcontroller.replicas_desired
kube_namespace
kube_replication_controller
。kubernetes_state.replicationcontroller.replicas_available
kube_namespace
kube_replication_controller
kubernetes_state.replicationcontroller.fully_labeled_replicas
kube_namespace
kube_replication_controller
kubernetes_state.replicationcontroller.replicas_ready
kube_namespace
kube_replication_controller
kubernetes_state.replicationcontroller.replicas
kube_namespace
kube_replication_controller
kubernetes_state.statefulset.count
kube_namespace
。kubernetes_state.statefulset.replicas_desired
kube_namespace
kube_stateful_set
(標準ラベルの env
service
version
)。kubernetes_state.statefulset.replicas
kube_namespace
kube_stateful_set
(標準ラベルの env
service
version
)。kubernetes_state.statefulset.replicas_current
kube_namespace
kube_stateful_set
(標準ラベルの env
service
version
)。kubernetes_state.statefulset.replicas_ready
kube_namespace
kube_stateful_set
(標準ラベルの env
service
version
)。kubernetes_state.statefulset.replicas_updated
kube_namespace
kube_stateful_set
(標準ラベルの env
service
version
)。kubernetes_state.hpa.count
kube_namespace
。kubernetes_state.hpa.min_replicas
kube_namespace
horizontalpodautoscaler
。kubernetes_state.hpa.max_replicas
kube_namespace
horizontalpodautoscaler
。kubernetes_state.hpa.condition
kube_namespace
horizontalpodautoscaler
condition
status
。kubernetes_state.hpa.desired_replicas
kube_namespace
horizontalpodautoscaler
。kubernetes_state.hpa.current_replicas
kube_namespace
horizontalpodautoscaler
。kubernetes_state.hpa.spec_target_metric
kube_namespace
horizontalpodautoscaler
metric_name
metric_target_type
。kubernetes_state.vpa.count
kube_namespace
。kubernetes_state.vpa.lower_bound
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.vpa.target
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.vpa.uncapped_target
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.vpa.upperbound
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.vpa.update_mode
kube_namespace
verticalpodautoscaler
target_api_version
target_kind
target_name
update_mode
。kubernetes_state.vpa.spec_container_minallowed
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.vpa.spec_container_maxallowed
kube_namespace
verticalpodautoscaler
kube_container_name
resource
target_api_version
target_kind
target_name
unit
。kubernetes_state.cronjob.count
kube_namespace
。kubernetes_state.cronjob.spec_suspend
kube_namespace
kube_cronjob
(標準ラベルの env
service
version
)。kubernetes_state.cronjob.duration_since_last_schedule
kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.job.count
kube_namespace
kube_cronjob
。kubernetes_state.job.failed
kube_job
または kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.job.succeeded
kube_job
または kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.job.completion.succeeded
kube_job
または kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.job.completion.failed
kube_job
または kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.resourcequota.<resource>.limit
kube_namespace
resourcequota
。kubernetes_state.resourcequota.<resource>.used
kube_namespace
resourcequota
。kubernetes_state.limitrange.cpu.min
kube_namespace
limitrange
type
。kubernetes_state.limitrange.cpu.max
kube_namespace
limitrange
type
。kubernetes_state.limitrange.cpu.default
kube_namespace
limitrange
type
。kubernetes_state.limitrange.cpu.default_request
kube_namespace
limitrange
type
。kubernetes_state.limitrange.cpu.max_limit_request_ratio
kube_namespace
limitrange
type
。kubernetes_state.limitrange.memory.min
kube_namespace
limitrange
type
。kubernetes_state.limitrange.memory.max
kube_namespace
limitrange
type
。kubernetes_state.limitrange.memory.default
kube_namespace
limitrange
type
。kubernetes_state.limitrange.memory.default_request
kube_namespace
limitrange
type
。kubernetes_state.limitrange.memory.max_limit_request_ratio
kube_namespace
limitrange
type
。kubernetes_state.service.count
kube_namespace
type
。kubernetes_state.service.type
kube_namespace
kube_service
type
。注: Kubernetes オブジェクトで Datadog 標準ラベルを構成して、env
service
version
タグを取得できます。
Kubernetes State Metrics Core チェックには、イベントは含まれません。
kubernetes_state.cronjob.complete
kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.cronjob.on_schedule_check
kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.job.complete
kube_job
または kube_cronjob
kube_namespace
(標準ラベルの env
service
version
)。kubernetes_state.node.ready
node
condition
status
。kubernetes_state.node.out_of_disk
node
condition
status
。kubernetes_state.node.disk_pressure
node
condition
status
。kubernetes_state.node.network_unavailable
node
condition
status
。kubernetes_state.node.memory_pressure
node
condition
status
。Cluster Agent コンテナ内で Cluster Agent の status
サブコマンドを実行し、Checks セクションで kubernetes_state_core
を探します。
ご不明な点は、Datadog のサポートチームまでお問合せください。
お役に立つドキュメント、リンクや記事:
お役に立つドキュメント、リンクや記事: