Udostępnij za pośrednictwem


Domyślna konfiguracja metryk rozwiązania Prometheus w usłudze Azure Monitor

W tym artykule wymieniono domyślne elementy docelowe, pulpity nawigacyjne i reguły rejestrowania podczas konfigurowania metryk rozwiązania Prometheus do usunięcia z klastra usługi Azure Kubernetes Service (AKS) lub z włączoną usługą Azure Arc platformy Kubernetes.

Minimalny profil wprowadzenia

Minimal ingestion profile to ustawienie, które pomaga zmniejszyć ilość pozyskiwanych metryk, ponieważ zbierane są tylko metryki używane przez domyślne dashboardy, domyślne reguły rejestrowania oraz domyślne alerty. W przypadku kolekcji opartej na dodatku Minimal ingestion profile, ustawienie jest domyślnie włączone. Możesz zmodyfikować kolekcję, aby umożliwić zbieranie większej liczby metryk, jak określono poniżej.

Częstotliwość skrobania

Domyślna częstotliwość zbierania danych dla wszystkich domyślnych celów i zbierania danych wynosi 30 sekund.

Obiekty docelowe domyślnie zeskropane

Następujące cele są domyślnie włączone/ON — co oznacza, że nie musisz udostępniać żadnej konfiguracji zadania zeskrobywania do zeskrobywania tych celów, ponieważ dodatek metryczny automatycznie domyślnie zeskrobuje te cele.

  • cadvisor (job=cadvisor)
  • nodeexporter (job=node)
  • kubelet (job=kubelet)
  • kube-state-metrics (job=kube-state-metrics)
  • networkobservabilityRetina (job=networkobservabilityRetina)

Następujące cele są włączone po włączeniu funkcji metryk płaszczyzny sterowania (wersja zapoznawcza). Możesz użyć metryk płaszczyzny sterującej, aby zmaksymalizować ogólną obserwowalność i utrzymać doskonałość operacyjną dla klastra AKS. Aby uzyskać więcej informacji, zobacz Metryki płaszczyzny sterowania (wersja zapoznawcza).

  • controlplane-apiserver (job=controlplane-apiserver)
  • controlplane-etcd (job=controlplane-etcd)

Następujące cele są włączone po uruchomieniu funkcji Obserwacji Sieci Kontenerów, która jest częścią pakietu Advanced Container Networking Services i jest bezproblemowo zgodna ze wszystkimi obciążeniami systemu Linux, integrując się z Hubble zarówno dla płaszczyzny danych opartej na Cilium, jak i bez niej. Dzięki temu można elastycznie korzystać z sieci kontenerów. Aby uzyskać więcej informacji, zobacz Advanced Container Networking Services.

  • networkobservabilityHubble (job=networkobservabilityHubble)
  • networkobservabilityCilium (job=networkobservabilityCilium)

Następujące elementy docelowe są włączone po aktywowaniu usługi Azure Container Storage, która jest natywnie utworzoną usługą zarządzania woluminami, wdrażania i orkiestracji opartą na chmurze dla kontenerów, integrującą się natywnie z AKS. Aby uzyskać więcej informacji, zobacz Azure Container Storage.

  • acstor-capacity-provisioner (job=acstor-capacity-provisioner)
  • acstor-metrics-exporter (job=acstor-metrics-exporter)

Metryki zbierane z domyślnych celów

Poniższe metryki są domyślnie zbierane z każdego domyślnego obiektu docelowego. Wszystkie inne wskaźniki są odrzucane według reguł ponownego etykietowania.

cadvisor (job=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"

kubelet (job=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
  • kubelet_runtime_operations_duration_seconds kubelet_runtime_operations_duration_seconds_bucket kubelet_runtime_operations_duration_seconds_sum kubelet_runtime_operations_duration_seconds_count
  • kubelet_pod_start_duration_seconds kubelet_pod_start_duration_seconds_bucket kubelet_pod_start_duration_seconds_sum kubelet_pod_start_duration_seconds_count
  • kubelet_pod_worker_duration_seconds kubelet_pod_worker_duration_seconds_bucket kubelet_pod_worker_duration_seconds_sum kubelet_pod_worker_duration_seconds_count
  • storage_operation_duration_seconds storage_operation_duration_seconds_bucket storage_operation_duration_seconds_sum storage_operation_duration_seconds_count
  • storage_operation_errors_total
  • kubelet_cgroup_manager_duration_seconds kubelet_cgroup_manager_duration_seconds_bucket kubelet_cgroup_manager_duration_seconds_sum kubelet_cgroup_manager_duration_seconds_count
  • kubelet_pleg_relist_duration_seconds kubelet_pleg_relist_duration_seconds_bucket kubelet_pleg_relist_duration_sum kubelet_pleg_relist_duration_seconds_count
  • kubelet_pleg_relist_interval_seconds kubelet_pleg_relist_interval_seconds_bucket kubelet_pleg_relist_interval_seconds_sum kubelet_pleg_relist_interval_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
  • kubelet_volume_stats_capacity_bytes
  • kubelet_volume_stats_available_bytes
  • kubelet_volume_stats_inodes_used
  • kubelet_volume_stats_inodes
  • kubernetes_build_info"

nodexporter (job=node)

  • 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"

kube-state-metrics (job=kube-state-metrics)

  • 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_resource_labels (np. kube_pod_labels, kube_deployment_labels)
  • kube_resource_annotations (np. kube_pod_annotations, kube_deployment_annotations)

controlplane-apiserver (job=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

Uwaga / Notatka

apiserver_request_duration_seconds i apiserver_request_sli_duration_seconds to metryki histogramowe, które mają wysoką kardynalność, i żadna seria nie jest zbierana domyślnie (minimalny profil zbierania). Tylko suma i liczba są używane do obliczania średnich opóźnień

controlplane-etcd (job=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

networkobservabilityHubble (job=networkobservabilityHubble) i networkobservabilityCilium (job=networkobservabilityCilium)
Aby uzyskać listę metryk zebranych przez te obiekty docelowe, zobacz Metryki obserwacji sieci kontenerów

acstor-capacity-provisioner (job=acstor-capacity-provisioner) i acstor-metrics-exporter (job=acstor-metrics-exporter)
Aby uzyskać listę metryk zebranych przez te obiekty docelowe, zobacz Metryki usługi Azure Container Storage.

Domyślne obiekty docelowe zeskrobowane dla systemu Windows

Następujące cele systemu Windows są skonfigurowane do zeskrobywania, ale domyślnie nie jest ono włączone (wyłączone/WYŁĄCZONE) — co oznacza, że nie trzeba udostępniać żadnej konfiguracji zadań zeskrobywania dla tych celów, ale są one domyślnie wyłączone/WYŁĄCZONE i musisz włączyć zeskrobywanie dla tych celów przy użyciu ama-metrics-settings-configmap w sekcji default-scrape-settings-enabled.

Dla systemu Windows można uruchamiać dwa zadania domyślne, które usuwają metryki wymagane dla pulpitów nawigacyjnych specyficznych dla systemu Windows.

  • windows-exporter (job=windows-exporter)
  • kube-proxy-windows (job=kube-proxy-windows)

Uwaga / Notatka

Wymaga to zastosowania lub zaktualizowania ama-metrics-settings-configmap mapy konfiguracji i instalacji windows-exporter we wszystkich węzłach systemu Windows. Aby uzyskać więcej informacji, zobacz dokument aktywacyjny.

Metryki pobrane dla systemu Windows

Poniższe metryki są zbierane, gdy windows-exporter i kube-proxy-windows są włączone.

windows-eksporter (job=windows-eksporter)

  • 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

kube-proxy-windows (job=kube-proxy-windows)

  • 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

Panele informacyjne

Następujące domyślne pulpity nawigacyjne są automatycznie udostępniane i konfigurowane przez zarządzaną usługę Azure Monitor dla Prometheus podczas łączenia obszaru roboczego Azure Monitor z instancją usługi Azure Managed Grafana. Kod źródłowy tych pulpitów nawigacyjnych można znaleźć w tym repozytorium GitHub. Poniższe pulpity nawigacyjne zostaną udostępnione w określonym wystąpieniu Azure Grafana w folderze Grafana. Są to standardowe pulpity nawigacyjne społeczności open source do monitorowania klastrów Kubernetes przy użyciu rozwiązań Prometheus i 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)

Reguły rejestrowania

Następujące domyślne reguły rejestrowania są automatycznie konfigurowane przez usługę zarządzaną usługi Azure Monitor dla rozwiązania Prometheus podczas konfigurowania metryk rozwiązania Prometheus do usunięcia z klastra usługi Azure Kubernetes Service (AKS). Kod źródłowy tych reguł rejestrowania można znaleźć w tym repozytorium GitHub. Są to standardowe reguły rejestrowania typu open source używane na powyższych pulpitach nawigacyjnych.

  • 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

Reguły rejestrowania wizualizacji Prometheus

W przypadku korzystania z usługi Container Insights opartej na usłudze Prometheus więcej reguł rejestrowania zostanie wdrożonych w celu obsługi wizualizacji 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

Do obsługi systemu Windows są wymagane następujące reguły rejestrowania. Te reguły są wdrażane wraz z powyższymi regułami, jednak nie są one domyślnie włączone. Postępuj zgodnie z instrukcjami dotyczącymi włączania i wyłączania grup reguł w obszarze roboczym usługi Azure Monitor.

  • 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

Dalsze kroki

Dostosowanie zbierania metryk Prometheus.