Kubelet
Kubelet のメトリクス情報を収集する
設定¶
前提条件¶
- K8s 環境がインストールされている
収集器の設定¶
datakit.yamlファイルのConfigMapにkubernetesprometheus.confリソースを追加して、Kubelet のメトリクスデータを収集する
apiVersion: v1
kind: ConfigMap
metadata:
name: datakit-conf
namespace: datakit
data:
kubelet.conf: |-
[inputs.kubernetesprometheus]
[[inputs.kubernetesprometheus.instances]]
role = "node"
selector = "kubernetes.io/os=linux"
scrape = "true"
scheme = "https"
port = "__kubernetes_node_kubelet_endpoint_port"
path = "/metrics"
params = ""
interval = "15s"
[inputs.kubernetesprometheus.instances.custom]
measurement = "kubelet"
job_as_measurement = true
[inputs.kubernetesprometheus.instances.custom.tags]
instance = "__kubernetes_mate_instance"
cluster_name_k8s = "default"
job = "kubelet"
[inputs.kubernetesprometheus.instances.auth]
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
[inputs.kubernetesprometheus.instances.auth.tls_config]
insecure_skip_verify = true
cert = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
[[inputs.kubernetesprometheus.instances]]
role = "node"
selector = "kubernetes.io/os=linux"
scrape = "true"
scheme = "https"
port = "__kubernetes_node_kubelet_endpoint_port"
path = "/metrics/cadvisor"
params = ""
interval = "15s"
[inputs.kubernetesprometheus.instances.custom]
measurement = "cadvisor"
job_as_measurement = true
[inputs.kubernetesprometheus.instances.custom.tags]
instance = "__kubernetes_mate_instance"
cluster_name_k8s = "default"
job = "kubelet"
node = "__kubernetes_node_name"
label_alpha_eksctl_io_nodegroup_name = "__kubernetes_node_label_alpha.eksctl.io/nodegroup-name"
[inputs.kubernetesprometheus.instances.auth]
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
[inputs.kubernetesprometheus.instances.auth.tls_config]
insecure_skip_verify = true
cert = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubernetesprometheus.confを DataKit の/usr/local/datakit/conf.d/kubernetesprometheus/kubernetesprometheus.confにマウントする
- mountPath: /usr/local/datakit/conf.d/kubernetesprometheus/kubernetesprometheus.conf
name: datakit-conf
subPath: kubernetesprometheus.conf
- 以下のコマンドを実行して、DataKit を再起動する
メトリクス¶
kubelet メトリクスセット¶
Kubelet のメトリクスは kubelet メトリクスセットにあります。ここでは Kubelet メトリクスに関する説明を紹介します
| Metrics | 説明 | 単位 |
|---|---|---|
kubelet_node_name |
Kubelet が配置されているノード |
count |
kubelet_running_pods |
現在のノードで実行中の Pod 数 |
count |
kubelet_running_containers |
現在のノードで実行中のコンテナ数 |
count |
volume_manager_total_volumes |
現在のノードで管理されているボリュームの総数 |
count |
volume_manager_total_volumes |
Kubelet が実行したコンテナランタイム操作の総数 |
count |
kubelet_runtime_operations_total |
Kubelet が実行したコンテナランタイム操作の失敗回数 |
count |
kubelet_runtime_operations_errors_total |
Kubelet が実行したコンテナランタイム操作の継続時間分布 |
s |
kubelet_runtime_operations_duration_seconds_bucket |
Kubelet が Pod を起動した総回数 |
count |
kubelet_pod_start_duration_seconds_count |
Kubelet が Pod を起動する際の継続時間分布 |
s |
kubelet_pod_start_duration_seconds_bucket |
ストレージ操作の総回数 |
count |
storage_operation_duration_seconds_count |
ストレージ操作の失敗総回数 |
count |
storage_operation_errors_total |
Kubelet が cgroup を管理する操作の総回数 |
count |
kubelet_cgroup_manager_duration_seconds_count |
Kubelet が cgroup を管理する操作の継続時間分布 |
s |
kubelet_cgroup_manager_duration_seconds_bucket |
Kubelet の Pod ライフサイクルイベント生成器(PLEG)の再一覧表示操作の総回数 |
count |
kubelet_pleg_relist_duration_seconds_count |
Kubelet が Kubernetes API Server に送信した REST リクエスト総数 |
count |
rest_client_requests_total |
Kubelet が Kubernetes API Server に送信した REST リクエストの継続時間分布 |
count |
rest_client_request_duration_seconds_bucket |
Kubelet プロセスが占有する物理メモリサイズ |
byte |
process_resident_memory_bytes |
Kubelet プロセスが占有する CPU 時間の総和 |
s |
process_cpu_seconds_total |
Kubelet プロセスが占有する CPU 時間の総和 |
s |
go_goroutines |
Kubelet プロセス内でアクティブな Go コルーチン数 |
count |