Поделиться через


Конфигурация метрик Prometheus по умолчанию в Azure Monitor

Если включить коллекцию метрик Prometheus в Azure Monitor из кластера Kubernetes, она использует конфигурацию по умолчанию для целевых объектов, панелей мониторинга и правил записи. В этой статье описана конфигурация по умолчанию и сценарии, в которых можно настроить ее для конкретных требований.

Минимальный профиль потребления

профиль приема Minimal ingestion — это параметр, который включен по умолчанию, если метрики Prometheus включены в Azure Monitor для кластера. Этот параметр уменьшает объем приемов метрик, ограничив их только метриками, используемыми панелями мониторинга по умолчанию, правилами записи по умолчанию и оповещениями по умолчанию. Эти целевые объекты и метрики перечислены в этой статье. Если этот параметр отключен, собираются все доступные метрики для целевых объектов по умолчанию, которые могут значительно увеличить объем приема.

Вы можете изменить минимальный параметр профиля приема, изменив параметр metrics setting ConfigMap, как описано в Customize скребки метрик Prometheus в Azure Monitor с помощью ConfigMap.

Сценарии настройки

Вы можете использовать конфигурацию по умолчанию или настроить коллекцию для конкретных требований. В следующей таблице перечислены четыре потенциальных сценария сбора и рекомендуемый метод для каждого из них.

Scenario Метод
Прием только минимальных метрик для каждого целевого объекта по умолчанию. Изменения не требуются. Используйте поведение по умолчанию без изменений. Для каждого из целевых объектов по умолчанию используются только метрики, перечисленные в этой статье.
Соберите несколько других метрик для одного или нескольких целевых объектов по умолчанию, помимо минимальных метрик. Оставьте минимальное включение приема и укажите соответствующие списки хранения, относящиеся к целевому объекту. См. Настройка метрик, собираемых по умолчанию целевыми объектами.
Принимать только определенный набор метрик для целевого объекта по умолчанию. Отключите минимальное прием и укажите соответствующий список хранения, характерный для целевого объекта в пользовательском задании слома. См. Создание настраиваемого задания Prometheus из вашего кластера Kubernetes, используя ConfigMap.
Обработка всех собранных метрик для цели по умолчанию. Отключите минимальное потребление и не указывайте список исключений для этой цели. Смотрите настройку метрик, собираемых целевыми объектами по умолчанию

Целевые объекты, сломанные по умолчанию

Ниже приведены целевые объекты, в которых надстройка Azure Монитор метрик может сломить по умолчанию и условия, в которых они включены. См. раздел "Включить и отключить целевые объекты по умолчанию", чтобы включить и отключить целевые объекты по умолчанию.

Следующие целевые объекты включены по умолчанию.

  • cadvisor
  • nodeexporter
  • kubelet
  • kube-state-metrics
  • networkobservabilityRetina

Следующие целевые объекты включены, если включена метрики плоскости управления (предварительная версия).

  • controlplane-apiserver
  • controlplane-etcd

Следующие целевые объекты включены при включении Container Network Observability.

  • networkobservabilityHubble
  • networkobservabilityCilium

Следующие целевые объекты включены при включении Azure контейнера Storage.

  • acstor-capacity-provisioner
  • acstor-metrics-exporter

По умолчанию следующие целевые объекты отключены.

  • coredns
  • kubeproxy
  • apiserver

Следующие целевые объекты отключены по умолчанию и требуют включения коллекции метрик Windows (предварительная версия ).

  • windows-exporter
  • kube-proxy-windows

Метрики, собранные из целевых объектов по умолчанию

Следующие метрики собираются по умолчанию из каждого целевого объекта по умолчанию. Все остальные метрики удаляются с помощью правил переназначения. Целевой объект должен быть включен для сбора метрик.

kubelet

  • kubelet_volume_stats_used_bytes
  • kubelet_node_name
  • kubelet_running_pods
  • kubelet_running_pod_count
  • kubelet_running_containers
  • kubelet_running_container_count
  • volume_manager_total_volumes
  • kubelet_node_config_error
  • kubelet_runtime_operations_total
  • kubelet_runtime_operations_errors_total
  • storage_operation_errors_total
  • rest_client_requests_total
  • process_resident_memory_bytes
  • process_cpu_seconds_total
  • go_goroutines
  • kubelet_volume_stats_capacity_bytes
  • kubelet_volume_stats_available_bytes
  • kubelet_volume_stats_inodes_used
  • kubelet_volume_stats_inodes
  • kubernetes_build_info"

coredns

  • coredns_build_info
  • coredns_panics_total
  • coredns_dns_responses_total
  • coredns_forward_responses_total
  • coredns_dns_requests_total
  • coredns_forward_requests_total
  • coredns_cache_hits_total
  • coredns_cache_misses_total
  • coredns_cache_entries
  • coredns_plugin_enabled
  • process_resident_memory_bytes
  • process_cpu_seconds_total
  • go_goroutines
  • kubernetes_build_info"

cadvisor

  • container_spec_cpu_period
  • container_spec_cpu_quota
  • container_cpu_usage_seconds_total
  • container_memory_rss
  • container_network_receive_bytes_total
  • container_network_transmit_bytes_total
  • container_network_receive_packets_total
  • container_network_transmit_packets_total
  • container_network_receive_packets_dropped_total
  • container_network_transmit_packets_dropped_total
  • container_fs_reads_total
  • container_fs_writes_total
  • container_fs_reads_bytes_total
  • container_fs_writes_bytes_total
  • container_memory_working_set_bytes
  • container_memory_cache
  • container_memory_swap
  • container_cpu_cfs_throttled_periods_total
  • container_cpu_cfs_periods_total
  • kubernetes_build_info"

kubeproxy

  • process_resident_memory_bytes
  • process_cpu_seconds_total
  • go_goroutines
  • kubernetes_build_info"

сервер API

  • apiserver_request_total
  • workqueue_adds_total``workqueue_depth
  • process_resident_memory_bytes
  • process_cpu_seconds_total
  • go_goroutines
  • kubernetes_build_info"

kube-state

  • kube_job_status_succeeded
  • kube_job_spec_completions
  • kube_daemonset_status_desired_number_scheduled
  • kube_daemonset_status_number_ready
  • kube_deployment_status_replicas_ready
  • kube_pod_container_status_last_terminated_reason
  • kube_pod_container_status_waiting_reason
  • kube_pod_container_status_restarts_total
  • kube_node_status_allocatable
  • kube_pod_owner
  • kube_pod_container_resource_requests
  • kube_pod_status_phase
  • kube_pod_container_resource_limits
  • kube_replicaset_owner
  • kube_resourcequota
  • kube_namespace_status_phase
  • kube_node_status_capacity
  • kube_node_info
  • kube_pod_info
  • kube_deployment_spec_replicas
  • kube_deployment_status_replicas_available
  • kube_deployment_status_replicas_updated
  • kube_statefulset_status_replicas_ready
  • kube_statefulset_status_replicas
  • kube_statefulset_status_replicas_updated
  • kube_job_status_start_time
  • kube_job_status_active
  • kube_job_failed
  • kube_horizontalpodautoscaler_status_desired_replicas
  • kube_horizontalpodautoscaler_status_current_replicas
  • kube_horizontalpodautoscaler_spec_min_replicas
  • kube_horizontalpodautoscaler_spec_max_replicas
  • kubernetes_build_info
  • kube_node_status_condition
  • kube_node_spec_taint
  • kube_pod_container_info
  • (например, kube_pod_labels, kube_deployment_labels)
  • (например, kube_pod_annotations, kube_deployment_annotations)

nodeexporter

  • node_cpu_seconds_total
  • node_memory_MemAvailable_bytes
  • node_memory_Buffers_bytes
  • node_memory_Cached_bytes
  • node_memory_MemFree_bytes
  • node_memory_Slab_bytes
  • node_memory_MemTotal_bytes
  • node_netstat_Tcp_RetransSegs
  • node_netstat_Tcp_OutSegs
  • node_netstat_TcpExt_TCPSynRetrans
  • node_load1``node_load5
  • node_load15
  • node_disk_read_bytes_total
  • node_disk_written_bytes_total
  • node_disk_io_time_seconds_total
  • node_filesystem_size_bytes
  • node_filesystem_avail_bytes
  • node_filesystem_readonly
  • node_network_receive_bytes_total
  • node_network_transmit_bytes_total
  • node_vmstat_pgmajfault
  • node_network_receive_drop_total
  • node_network_transmit_drop_total
  • node_disk_io_time_weighted_seconds_total
  • node_exporter_build_info
  • node_time_seconds
  • node_uname_info"

виндовсэкспортер

  • windows_system_system_up_time
  • windows_cpu_time_total
  • windows_memory_available_bytes
  • windows_os_visible_memory_bytes
  • windows_memory_cache_bytes
  • windows_memory_modified_page_list_bytes
  • windows_memory_standby_cache_core_bytes
  • windows_memory_standby_cache_normal_priority_bytes
  • windows_memory_standby_cache_reserve_bytes
  • windows_memory_swap_page_operations_total
  • windows_logical_disk_read_seconds_total
  • windows_logical_disk_write_seconds_total
  • windows_logical_disk_size_bytes
  • windows_logical_disk_free_bytes
  • windows_net_bytes_total
  • windows_net_packets_received_discarded_total
  • windows_net_packets_outbound_discarded_total
  • windows_container_available
  • windows_container_cpu_usage_seconds_total
  • windows_container_memory_usage_commit_bytes
  • windows_container_memory_usage_private_working_set_bytes
  • windows_container_network_receive_bytes_total
  • windows_container_network_transmit_bytes_total

windowskubeproxy

  • kubeproxy_sync_proxy_rules_duration_seconds
  • kubeproxy_sync_proxy_rules_duration_seconds_bucket
  • kubeproxy_sync_proxy_rules_duration_seconds_sum
  • kubeproxy_sync_proxy_rules_duration_seconds_count
  • rest_client_requests_total
  • rest_client_request_duration_seconds
  • rest_client_request_duration_seconds_bucket
  • rest_client_request_duration_seconds_sum
  • rest_client_request_duration_seconds_count
  • process_resident_memory_bytes
  • process_cpu_seconds_total
  • go_goroutines

networkobservabilityHubble

networkobservabilityCilium

controlplane-apiserver

  • apiserver_request_total
  • apiserver_cache_list_fetched_objects_total
  • apiserver_cache_list_returned_objects_total
  • apiserver_flowcontrol_demand_seats_average
  • apiserver_flowcontrol_current_limit_seats
  • apiserver_request_sli_duration_seconds_bucket{le=+inf}
  • apiserver_request_sli_duration_seconds_count
  • apiserver_request_sli_duration_seconds_sum
  • process_start_time_seconds
  • apiserver_request_duration_seconds_bucket{le=+inf}
  • apiserver_request_duration_seconds_count
  • apiserver_request_duration_seconds_sum
  • apiserver_storage_list_fetched_objects_total
  • apiserver_storage_list_returned_objects_total
  • apiserver_current_inflight_requests

Замечание

и являются метриками гистограммы, которые имеют высокую кратность и все ряды не собираются по умолчанию. Для сбора средней задержки используются только суммы и количество.

controlplane-cluster-autoscaler

  • rest_client_requests_total
  • cluster_autoscaler_last_activity
  • cluster_autoscaler_cluster_safe_to_autoscale
  • cluster_autoscaler_scale_down_in_cooldown
  • cluster_autoscaler_scaled_up_nodes_total
  • cluster_autoscaler_unneeded_nodes_count
  • cluster_autoscaler_unschedulable_pods_count
  • cluster_autoscaler_nodes_count
  • cloudprovider_azure_api_request_errors
  • cloudprovider_azure_api_request_duration_seconds_bucket
  • cloudprovider_azure_api_request_duration_seconds_count

Автоматическое предоставление узлов контрольной плоскости

  • karpenter_pods_state
  • karpenter_nodes_created_total
  • karpenter_nodes_terminated_total
  • karpenter_nodeclaims_disrupted_total
  • karpenter_voluntary_disruption_eligible_nodes
  • karpenter_voluntary_disruption_decisions_total

controlplane-kube-scheduler

  • scheduler_pending_pods
  • scheduler_unschedulable_pods
  • scheduler_pod_scheduling_attempts
  • scheduler_queue_incoming_pods_total
  • scheduler_preemption_attempts_total
  • scheduler_preemption_victims
  • scheduler_scheduling_attempt_duration_seconds
  • scheduler_schedule_attempts_total
  • scheduler_pod_scheduling_duration_seconds

controlplane-kube-controller-manager

  • rest_client_request_duration_seconds
  • rest_client_requests_total
  • workqueue_depth

controlplane-etcd

  • etcd_server_has_leader
  • rest_client_requests_total
  • etcd_mvcc_db_total_size_in_bytes
  • etcd_mvcc_db_total_size_in_use_in_bytes
  • etcd_server_slow_read_indexes_total
  • etcd_server_slow_apply_total
  • etcd_network_client_grpc_sent_bytes_total
  • etcd_server_heartbeat_send_failures_total

acstor-capacity-provisioner (job=acstor-capacity-provisioner)

acstor-metrics-exporter (job=acstor-metrics-exporter)

Дашборды

Следующие панели мониторинга по умолчанию автоматически подготавливаются и настраиваются с помощью управляемой службы Azure Monitor для Prometheus при связывания рабочей области Azure Monitor с экземпляром Azure Managed Grafana. Они подготовлены в указанном Azure экземпляре Grafana в папке Managed Prometheus. Эти панели мониторинга являются стандартными open source панелями мониторинга сообщества для мониторинга кластеров Kubernetes с помощью Prometheus и Grafana.

  • Kubernetes / Compute Resources / Cluster
  • Kubernetes / Compute Resources / Namespace (Pods)
  • Kubernetes / Compute Resources / Node (Pods)
  • Kubernetes / Compute Resources / Pod
  • Kubernetes / Compute Resources / Namespace (Workloads)
  • Kubernetes / Compute Resources / Workload
  • Kubernetes / Kubelet
  • Node Exporter / USE Method / Node
  • Node Exporter / Nodes
  • Kubernetes / Compute Resources / Cluster (Windows)
  • Kubernetes / Compute Resources / Namespace (Windows)
  • Kubernetes / Compute Resources / Pod (Windows)
  • Kubernetes / USE Method / Cluster (Windows)
  • Kubernetes / USE Method / Node (Windows)

Правила записи

Следующие правила записи по умолчанию автоматически настраиваются Azure управляемой службой Monitor для Prometheus при configure Prometheus метрики для удаления из кластера Azure Kubernetes Service (AKS. Исходный код для этих правил записи можно найти в репозитории GitHub. Эти правила записи являются стандартными правилами записи open source, используемыми на панелях мониторинга в предыдущем разделе.

  • cluster:node_cpu:ratio_rate5m
  • namespace_cpu:kube_pod_container_resource_requests:sum
  • namespace_cpu:kube_pod_container_resource_limits:sum
  • :node_memory_MemAvailable_bytes:sum
  • namespace_memory:kube_pod_container_resource_requests:sum
  • namespace_memory:kube_pod_container_resource_limits:sum
  • namespace_workload_pod:kube_pod_owner:relabel
  • node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate
  • cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests
  • cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits
  • cluster:namespace:pod_memory:active:kube_pod_container_resource_requests
  • cluster:namespace:pod_memory:active:kube_pod_container_resource_limits
  • node_namespace_pod_container:container_memory_working_set_bytes
  • node_namespace_pod_container:container_memory_rss
  • node_namespace_pod_container:container_memory_cache
  • node_namespace_pod_container:container_memory_swap
  • instance:node_cpu_utilisation:rate5m
  • instance:node_load1_per_cpu:ratio
  • instance:node_memory_utilisation:ratio
  • instance:node_vmstat_pgmajfault:rate5m
  • instance:node_network_receive_bytes_excluding_lo:rate5m
  • instance:node_network_transmit_bytes_excluding_lo:rate5m
  • instance:node_network_receive_drop_excluding_lo:rate5m
  • instance:node_network_transmit_drop_excluding_lo:rate5m
  • instance_device:node_disk_io_time_seconds:rate5m
  • instance_device:node_disk_io_time_weighted_seconds:rate5m
  • instance:node_num_cpu:sum
  • node:windows_node:sum
  • node:windows_node_num_cpu:sum
  • :windows_node_cpu_utilisation:avg5m
  • node:windows_node_cpu_utilisation:avg5m
  • :windows_node_memory_utilisation:
  • :windows_node_memory_MemFreeCached_bytes:sum
  • node:windows_node_memory_totalCached_bytes:sum
  • :windows_node_memory_MemTotal_bytes:sum
  • node:windows_node_memory_bytes_available:sum
  • node:windows_node_memory_bytes_total:sum
  • node:windows_node_memory_utilisation:ratio
  • node:windows_node_memory_utilisation:
  • node:windows_node_memory_swap_io_pages:irate
  • :windows_node_disk_utilisation:avg_irate
  • node:windows_node_disk_utilisation:avg_irate
  • node:windows_node_filesystem_usage:
  • node:windows_node_filesystem_avail:
  • :windows_node_net_utilisation:sum_irate
  • node:windows_node_net_utilisation:sum_irate
  • :windows_node_net_saturation:sum_irate
  • node:windows_node_net_saturation:sum_irate
  • windows_pod_container_available
  • windows_container_total_runtime
  • windows_container_memory_usage
  • windows_container_private_working_set_usage
  • windows_container_network_received_bytes_total
  • windows_container_network_transmitted_bytes_total
  • kube_pod_windows_container_resource_memory_request
  • kube_pod_windows_container_resource_memory_limit
  • kube_pod_windows_container_resource_cpu_cores_request
  • kube_pod_windows_container_resource_cpu_cores_limit
  • namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate

Правила регистрации визуализации Prometheus

Следующие правила регистрации автоматически внедряются для поддержки визуализаций Prometheus.

  • ux:cluster_pod_phase_count:sum
  • ux:node_cpu_usage:sum_irate
  • ux:node_memory_usage:sum
  • ux:controller_pod_phase_count:sum
  • ux:controller_container_count:sum
  • ux:controller_workingset_memory:sum
  • ux:controller_cpu_usage:sum_irate
  • ux:controller_rss_memory:sum
  • ux:controller_resource_limit:sum
  • ux:controller_container_restarts:max
  • ux:pod_container_count:sum
  • ux:pod_cpu_usage:sum_irate
  • ux:pod_workingset_memory:sum
  • ux:pod_rss_memory:sum
  • ux:pod_resource_limit:sum
  • ux:pod_container_restarts:max
  • ux:node_network_receive_drop_total:sum_irate
  • ux:node_network_transmit_drop_total:sum_irate

Для поддержки Windows требуются следующие правила записи. Они развертываются автоматически, но по умолчанию не включены. См. сведения о включении и отключении групп правил для их настройки.

  • ux:node_cpu_usage_windows:sum_irate
  • ux:node_memory_usage_windows:sum
  • ux:controller_cpu_usage_windows:sum_irate
  • ux:controller_workingset_memory_windows:sum
  • ux:pod_cpu_usage_windows:sum_irate
  • ux:pod_workingset_memory_windows:sum

Дальнейшие действия

Настройка сбора метрик Prometheus.