2
1

More than 3 years have passed since last update.

Kubernetes 1.18: Metrics Changes と SIG Instrumentation の変更内容

Last updated at Posted at 2020-04-03

はじめに(Feature の内容含む)

ここでは、Kubernetes 1.18 の CHANGELOG から Metrics の変更と SIG Instrumentation の取り組みについてまとめています。

前回に引き続き、Control-Plane Metrics Stability のため show-hidden-metrics-for-version フラグが次のコンポーネントで実装されました。

それでは CHANGELOG を見ていきます。

メトリクスの変更(Metrics Changes)

追加

  • [component-base] rest_client_rate_limiter_duration_seconds
    • クライアント側の Rate Limiter のレイテンシを秒単位で記録し、verb と url のラベルを持ちます(#88134, @￰jennybuckley)
  • [component-base] rest_client_certificate_expiration_seconds
    • クライアント証明書の有効期限を 1970 年 1 月 1 日 UTC からの経過を秒単位で記録した Gauge(#84382, @￰sambdavidson)
  • [component-base] rest_client_certificate_rotation_age
    • ローテーション後のクライアント証明書の経過時間を記録した Histgram(#84382, @￰sambdavidson)
  • [controller-manager] workqueue_(depth|adds_total|queue_duration_seconds|work_duration_seconds|unfinished_work_seconds|longest_running_processor_seconds|retries_total)
    • workqueue のメトリクスが追加されました(#87967, @￰zhan849)
    • :pencil: もともと提供されていたのですが、どこかでリグレッションしました?
  • [api-server] 次のメトリクスの subresource ラベルに、/healthz/livez/readyz へのリクエストが記録されるようになりました(#83598, @￰jktomer)
    • apiserver_request_duration_seconds
    • apiserver_request_total
    • apiserver_response_sizes
  • [kubelet] (server|client)_expiration_renew_failure
    • 証明書のローテーションが失敗した場合に記録します(#84614, @￰rphillips)
  • [kubelet] kubelet_pleg_last_seen_seconds
    • 正常に PLEG が動作しているかを判断するために、最後にヘルスチェックした時間を記録します(#86251, @￰bboreham)

変更/非推奨

  • [kubelet] 次のメトリクスの Stability Level が ALPHA となりました(#85446, @￰RainbowMango)
    • process_start_time_seconds
  • [kubelet] 次のメトリクスが非表示となりました(#83841, @￰RainbowMango)

    • kubelet_pod_worker_latency_microseconds
    • kubelet_pod_start_latency_microseconds
    • kubelet_cgroup_manager_latency_microseconds
    • kubelet_pod_worker_start_latency_microseconds
    • kubelet_pleg_relist_latency_microseconds
    • kubelet_pleg_relist_interval_microseconds
    • kubelet_eviction_stats_age_microseconds
    • kubelet_runtime_operations
    • kubelet_runtime_operations_latency_microseconds
    • kubelet_runtime_operations_errors
    • kubelet_device_plugin_registration_count
    • kubelet_device_plugin_alloc_latency_microseconds
    • kubelet_docker_operations
    • kubelet_docker_operations_latency_microseconds
    • kubelet_docker_operations_errors
    • kubelet_docker_operations_timeout
    • network_plugin_operations_latency_microseconds
  • 次のメトリクスは非表示となったので、対応するメトリクスに置き換えてください (#76496, @￰danielqsj)

    • rest_client_request_latency_seconds -> rest_client_request_duration_seconds
    • scheduler_scheduling_latency_seconds -> scheduler_scheduling_duration_seconds
    • docker_operations -> docker_operations_total
    • docker_operations_latency_microseconds -> docker_operations_duration_seconds
    • docker_operations_errors -> docker_operations_errors_total
    • docker_operations_timeout -> docker_operations_timeout_total
    • network_plugin_operations_latency_microseconds -> network_plugin_operations_duration_seconds
    • kubelet_pod_worker_latency_microseconds -> kubelet_pod_worker_duration_seconds
    • kubelet_pod_start_latency_microseconds -> kubelet_pod_start_duration_seconds
    • kubelet_cgroup_manager_latency_microseconds -> kubelet_cgroup_manager_duration_seconds
    • kubelet_pod_worker_start_latency_microseconds -> kubelet_pod_worker_start_duration_seconds
    • kubelet_pleg_relist_latency_microseconds -> kubelet_pleg_relist_duration_seconds
    • kubelet_pleg_relist_interval_microseconds -> kubelet_pleg_relist_interval_seconds
    • kubelet_eviction_stats_age_microseconds -> kubelet_eviction_stats_age_seconds
    • kubelet_runtime_operations -> kubelet_runtime_operations_total
    • kubelet_runtime_operations_latency_microseconds -> kubelet_runtime_operations_duration_seconds
    • kubelet_runtime_operations_errors -> kubelet_runtime_operations_errors_total
    • kubelet_device_plugin_registration_count -> kubelet_device_plugin_registration_total
    • kubelet_device_plugin_alloc_latency_microseconds -> kubelet_device_plugin_alloc_duration_seconds
    • scheduler_e2e_scheduling_latency_microseconds -> scheduler_e2e_scheduling_duration_seconds
    • scheduler_scheduling_algorithm_latency_microseconds -> scheduler_scheduling_algorithm_duration_seconds
    • scheduler_scheduling_algorithm_predicate_evaluation -> scheduler_scheduling_algorithm_predicate_evaluation_seconds
    • scheduler_scheduling_algorithm_priority_evaluation -> scheduler_scheduling_algorithm_priority_evaluation_seconds
    • scheduler_scheduling_algorithm_preemption_evaluation -> scheduler_scheduling_algorithm_preemption_evaluation_seconds
    • scheduler_binding_latency_microseconds -> scheduler_binding_duration_seconds
    • kubeproxy_sync_proxy_rules_latency_microseconds -> kubeproxy_sync_proxy_rules_duration_seconds
    • apiserver_request_latencies -> apiserver_request_duration_seconds
    • apiserver_dropped_requests -> apiserver_dropped_requests_total
    • etcd_request_latencies_summary -> etcd_request_duration_seconds
    • apiserver_storage_transformation_latencies_microseconds -> apiserver_storage_transformation_duration_seconds
    • apiserver_storage_data_key_generation_latencies_microseconds -> apiserver_storage_data_key_generation_duration_seconds
    • apiserver_request_count -> apiserver_request_total
    • apiserver_request_latencies_summary
    • apiserver_storage_transformation_failures_total -> apiserver_storage_transformation_operations_total

その他の変更 (Other [Bug, Cleanup or Flake])

  • [kube-apiserver] --show-hidden-metrics-for-version フラグで非表示のメトリクスを表示できなかったバグを修正(#85444, @￰RainbowMango)

所感

v1.16 から始まった KEP Metrics Stability Migration の作業も進み、次のマイナーバージョンからは KEP Structured Logging の取り組みも入ってきそうです。

JSON ログフォーマットで出力してくれるとログストアの機能によっては検索やフィルターがしやすくなるので個人的には注目しています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1