你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文列出了在将 Prometheus 指标配置为从 Azure Kubernetes 服务 (AKS) 群集或已启用 Azure Arc 的 Kubernetes 中抓取时的默认目标、仪表板和记录规则。
最小引入配置文件
Minimal ingestion profile 是一个设置,可帮助减少指标的引入量,因为仅收集默认仪表板使用的指标、默认录制规则和默认警报。 对于基于加载项的集合,Minimal ingestion profile 设置默认处于启用状态。 可以修改集合以启用收集更多指标,如下所示。
抓取频率
所有默认目标和抓取的默认抓取频率为 30 秒。
默认抓取的目标
默认情况下,以下目标是 启用/打开 的,这意味着无需提供任何数据抓取配置,因为指标加载项默认会自动抓取这些目标。
-
cadvisor(job=cadvisor) -
nodeexporter(job=node) -
kubelet(job=kubelet) -
kube-state-metrics(job=kube-state-metrics) -
networkobservabilityRetina(job=networkobservabilityRetina)
启用控制平面指标(预览版)功能时,将启用/ON 以下目标。 可以使用控制平面指标最大程度地提高整体可观测性,并维护 AKS 群集的卓越运营能力。 有关详细信息,请参阅 控制平面指标(预览版)。
-
controlplane-apiserver(job=controlplane-apiserver) -
controlplane-etcd(job=controlplane-etcd)
启用容器网络可观测性(这是一项高级容器网络服务套件的功能)时,以下目标启用/ON。该功能能够与所有 Linux 工作负载无缝集成,可以使 Cilium 或非 Cilium 数据平面与 Hubble 无缝集成。 这样可以灵活地满足容器网络需求。 有关详细信息,请参阅 高级容器网络服务。
-
networkobservabilityHubble(job=networkobservabilityHubble) -
networkobservabilityCilium(job=networkobservabilityCilium)
启用 Azure 容器存储(这是专为容器构建的云端卷管理、部署和编排服务,并与 AKS 原生集成)时,以下目标将被启用/开启。 有关详细信息,请参阅 Azure 容器存储。
-
acstor-capacity-provisioner(job=acstor-capacity-provisioner) -
acstor-metrics-exporter(job=acstor-metrics-exporter)
从默认目标收集的指标
默认情况下,会从每个默认目标收集以下指标。 所有其他指标都将通过重新标记规则删除。
cadvisor (job=cadvisor)
container_spec_cpu_periodcontainer_spec_cpu_quotacontainer_cpu_usage_seconds_totalcontainer_memory_rsscontainer_network_receive_bytes_totalcontainer_network_transmit_bytes_totalcontainer_network_receive_packets_totalcontainer_network_transmit_packets_totalcontainer_network_receive_packets_dropped_totalcontainer_network_transmit_packets_dropped_totalcontainer_fs_reads_totalcontainer_fs_writes_totalcontainer_fs_reads_bytes_totalcontainer_fs_writes_bytes_totalcontainer_memory_working_set_bytescontainer_memory_cachecontainer_memory_swapcontainer_cpu_cfs_throttled_periods_totalcontainer_cpu_cfs_periods_totalkubernetes_build_info"
kubelet (job=kubelet)
kubelet_volume_stats_used_byteskubelet_node_namekubelet_running_podskubelet_running_pod_countkubelet_running_containerskubelet_running_container_countvolume_manager_total_volumeskubelet_node_config_errorkubelet_runtime_operations_totalkubelet_runtime_operations_errors_total-
kubelet_runtime_operations_duration_secondskubelet_runtime_operations_duration_seconds_bucketkubelet_runtime_operations_duration_seconds_sumkubelet_runtime_operations_duration_seconds_count -
kubelet_pod_start_duration_secondskubelet_pod_start_duration_seconds_bucketkubelet_pod_start_duration_seconds_sumkubelet_pod_start_duration_seconds_count -
kubelet_pod_worker_duration_secondskubelet_pod_worker_duration_seconds_bucketkubelet_pod_worker_duration_seconds_sumkubelet_pod_worker_duration_seconds_count -
storage_operation_duration_secondsstorage_operation_duration_seconds_bucketstorage_operation_duration_seconds_sumstorage_operation_duration_seconds_count storage_operation_errors_total-
kubelet_cgroup_manager_duration_secondskubelet_cgroup_manager_duration_seconds_bucketkubelet_cgroup_manager_duration_seconds_sumkubelet_cgroup_manager_duration_seconds_count -
kubelet_pleg_relist_duration_secondskubelet_pleg_relist_duration_seconds_bucketkubelet_pleg_relist_duration_sumkubelet_pleg_relist_duration_seconds_count -
kubelet_pleg_relist_interval_secondskubelet_pleg_relist_interval_seconds_bucketkubelet_pleg_relist_interval_seconds_sumkubelet_pleg_relist_interval_seconds_count rest_client_requests_total-
rest_client_request_duration_secondsrest_client_request_duration_seconds_bucketrest_client_request_duration_seconds_sumrest_client_request_duration_seconds_count process_resident_memory_bytesprocess_cpu_seconds_totalgo_goroutineskubelet_volume_stats_capacity_byteskubelet_volume_stats_available_byteskubelet_volume_stats_inodes_usedkubelet_volume_stats_inodeskubernetes_build_info"
nodexporter (job=node)
node_cpu_seconds_totalnode_memory_MemAvailable_bytesnode_memory_Buffers_bytesnode_memory_Cached_bytesnode_memory_MemFree_bytesnode_memory_Slab_bytesnode_memory_MemTotal_bytesnode_netstat_Tcp_RetransSegsnode_netstat_Tcp_OutSegsnode_netstat_TcpExt_TCPSynRetransnode_load1``node_load5node_load15node_disk_read_bytes_totalnode_disk_written_bytes_totalnode_disk_io_time_seconds_totalnode_filesystem_size_bytesnode_filesystem_avail_bytesnode_filesystem_readonlynode_network_receive_bytes_totalnode_network_transmit_bytes_totalnode_vmstat_pgmajfaultnode_network_receive_drop_totalnode_network_transmit_drop_totalnode_disk_io_time_weighted_seconds_totalnode_exporter_build_infonode_time_secondsnode_uname_info"
kube-state-metrics (job=kube-state-metrics)
kube_job_status_succeededkube_job_spec_completionskube_daemonset_status_desired_number_scheduledkube_daemonset_status_number_readykube_deployment_status_replicas_readykube_pod_container_status_last_terminated_reasonkube_pod_container_status_waiting_reasonkube_pod_container_status_restarts_totalkube_node_status_allocatablekube_pod_ownerkube_pod_container_resource_requestskube_pod_status_phasekube_pod_container_resource_limitskube_replicaset_ownerkube_resourcequotakube_namespace_status_phasekube_node_status_capacitykube_node_infokube_pod_infokube_deployment_spec_replicaskube_deployment_status_replicas_availablekube_deployment_status_replicas_updatedkube_statefulset_status_replicas_readykube_statefulset_status_replicaskube_statefulset_status_replicas_updatedkube_job_status_start_timekube_job_status_activekube_job_failedkube_horizontalpodautoscaler_status_desired_replicaskube_horizontalpodautoscaler_status_current_replicaskube_horizontalpodautoscaler_spec_min_replicaskube_horizontalpodautoscaler_spec_max_replicaskubernetes_build_infokube_node_status_conditionkube_node_spec_taintkube_pod_container_info-
kube_resource_labels(ex - kube_pod_labels, kube_deployment_labels) -
kube_resource_annotations(例如 kube_pod_annotations, kube_deployment_annotations)
controlplane-apiserver (job=controlplane-apiserver)
apiserver_request_totalapiserver_cache_list_fetched_objects_totalapiserver_cache_list_returned_objects_totalapiserver_flowcontrol_demand_seats_averageapiserver_flowcontrol_current_limit_seatsapiserver_request_sli_duration_seconds_bucket{le=+inf}apiserver_request_sli_duration_seconds_countapiserver_request_sli_duration_seconds_sumprocess_start_time_secondsapiserver_request_duration_seconds_bucket{le=+inf}apiserver_request_duration_seconds_countapiserver_request_duration_seconds_sumapiserver_storage_list_fetched_objects_totalapiserver_storage_list_returned_objects_totalapiserver_current_inflight_requests
注释
apiserver_request_duration_seconds 和 apiserver_request_sli_duration_seconds 是直方图指标,具有高基数,默认情况下不收集所有序列(最小数据摄取配置)。 用于计算平均延迟的只有总和和计数
controlplane-etcd (job=controlplane-etcd)
etcd_server_has_leaderrest_client_requests_totaletcd_mvcc_db_total_size_in_bytesetcd_mvcc_db_total_size_in_use_in_bytesetcd_server_slow_read_indexes_totaletcd_server_slow_apply_totaletcd_network_client_grpc_sent_bytes_totaletcd_server_heartbeat_send_failures_total
networkobservabilityHubble (job=networkobservabilityHubble) 和 networkobservabilityCilium (job=networkobservabilityCilium)
有关这些目标收集的指标列表,请参阅 容器网络可观测性指标
acstor-capacity-provisioner (job=acstor-capacity-provisioner) 和 acstor-metrics-exporter (job=acstor-metrics-exporter)
有关这些目标收集的指标列表,请参阅 Azure 容器存储指标。
为 Windows 抓取的默认目标
以下 Windows 目标已配置为抓取,但默认情况下未启用(已禁用/关闭),这意味着你不必为这些目标提供任何抓取任务配置,但它们在默认情况下是禁用/关闭的。你需要在 节下使用 default-scrape-settings-enabled 为这些目标开启/启用抓取。
可以为 Windows 运行两个默认作业,该作业会擦除特定于 Windows 的仪表板所需的指标。
-
windows-exporter(job=windows-exporter) -
kube-proxy-windows(job=kube-proxy-windows)
注释
这需要应用或更新 ama-metrics-settings-configmap 配置映射并在所有 Windows 节点上安装 windows-exporter 。 有关详细信息,请参阅 启用文档。
为 Windows 抓取的指标
启用 windows 导出程序和 kube-proxy-windows 时收集以下指标。
windows-exporter (job=windows-exporter)
windows_system_system_up_timewindows_cpu_time_totalwindows_memory_available_byteswindows_os_visible_memory_byteswindows_memory_cache_byteswindows_memory_modified_page_list_byteswindows_memory_standby_cache_core_byteswindows_memory_standby_cache_normal_priority_byteswindows_memory_standby_cache_reserve_byteswindows_memory_swap_page_operations_totalwindows_logical_disk_read_seconds_totalwindows_logical_disk_write_seconds_totalwindows_logical_disk_size_byteswindows_logical_disk_free_byteswindows_net_bytes_totalwindows_net_packets_received_discarded_totalwindows_net_packets_outbound_discarded_totalwindows_container_availablewindows_container_cpu_usage_seconds_totalwindows_container_memory_usage_commit_byteswindows_container_memory_usage_private_working_set_byteswindows_container_network_receive_bytes_totalwindows_container_network_transmit_bytes_total
kube-proxy-windows (job=kube-proxy-windows)
kubeproxy_sync_proxy_rules_duration_secondskubeproxy_sync_proxy_rules_duration_seconds_bucketkubeproxy_sync_proxy_rules_duration_seconds_sumkubeproxy_sync_proxy_rules_duration_seconds_countrest_client_requests_totalrest_client_request_duration_secondsrest_client_request_duration_seconds_bucketrest_client_request_duration_seconds_sumrest_client_request_duration_seconds_countprocess_resident_memory_bytesprocess_cpu_seconds_totalgo_goroutines
仪表板
将 Azure Monitor 工作区链接到 Azure 托管 Grafana 实例时,适用于 Prometheus 的 Azure Monitor 托管服务将自动预配和配置以下默认仪表板。 可在 此 GitHub 存储库中找到这些仪表板的源代码。 以下仪表板将在指定的 Azure Grafana 实例中的 Managed Prometheus 文件夹下预配。 这些是用于使用 Prometheus 和 Grafana 监视 Kubernetes 群集的标准开源社区仪表板。
Kubernetes / Compute Resources / ClusterKubernetes / Compute Resources / Namespace (Pods)Kubernetes / Compute Resources / Node (Pods)Kubernetes / Compute Resources / PodKubernetes / Compute Resources / Namespace (Workloads)Kubernetes / Compute Resources / WorkloadKubernetes / KubeletNode Exporter / USE Method / NodeNode Exporter / NodesKubernetes / Compute Resources / Cluster (Windows)Kubernetes / Compute Resources / Namespace (Windows)Kubernetes / Compute Resources / Pod (Windows)Kubernetes / USE Method / Cluster (Windows)Kubernetes / USE Method / Node (Windows)
记录规则
将 Prometheus 指标配置为从 Azure Kubernetes 服务 (AKS) 群集中擦除时,Azure Monitor 托管服务会自动配置以下默认录制规则。 可在 此 GitHub 存储库中找到这些记录规则的源代码。 这些是上述仪表板中使用的标准开源录制规则。
cluster:node_cpu:ratio_rate5mnamespace_cpu:kube_pod_container_resource_requests:sumnamespace_cpu:kube_pod_container_resource_limits:sum:node_memory_MemAvailable_bytes:sumnamespace_memory:kube_pod_container_resource_requests:sumnamespace_memory:kube_pod_container_resource_limits:sumnamespace_workload_pod:kube_pod_owner:relabelnode_namespace_pod_container:container_cpu_usage_seconds_total:sum_iratecluster:namespace:pod_cpu:active:kube_pod_container_resource_requestscluster:namespace:pod_cpu:active:kube_pod_container_resource_limitscluster:namespace:pod_memory:active:kube_pod_container_resource_requestscluster:namespace:pod_memory:active:kube_pod_container_resource_limitsnode_namespace_pod_container:container_memory_working_set_bytesnode_namespace_pod_container:container_memory_rssnode_namespace_pod_container:container_memory_cachenode_namespace_pod_container:container_memory_swapinstance:node_cpu_utilisation:rate5minstance:node_load1_per_cpu:ratioinstance:node_memory_utilisation:ratioinstance:node_vmstat_pgmajfault:rate5minstance:node_network_receive_bytes_excluding_lo:rate5minstance:node_network_transmit_bytes_excluding_lo:rate5minstance:node_network_receive_drop_excluding_lo:rate5minstance:node_network_transmit_drop_excluding_lo:rate5minstance_device:node_disk_io_time_seconds:rate5minstance_device:node_disk_io_time_weighted_seconds:rate5minstance:node_num_cpu:sumnode:windows_node:sumnode:windows_node_num_cpu:sum:windows_node_cpu_utilisation:avg5mnode:windows_node_cpu_utilisation:avg5m:windows_node_memory_utilisation::windows_node_memory_MemFreeCached_bytes:sumnode:windows_node_memory_totalCached_bytes:sum:windows_node_memory_MemTotal_bytes:sumnode:windows_node_memory_bytes_available:sumnode:windows_node_memory_bytes_total:sumnode:windows_node_memory_utilisation:rationode:windows_node_memory_utilisation:node:windows_node_memory_swap_io_pages:irate:windows_node_disk_utilisation:avg_iratenode:windows_node_disk_utilisation:avg_iratenode:windows_node_filesystem_usage:node:windows_node_filesystem_avail::windows_node_net_utilisation:sum_iratenode:windows_node_net_utilisation:sum_irate:windows_node_net_saturation:sum_iratenode:windows_node_net_saturation:sum_iratewindows_pod_container_availablewindows_container_total_runtimewindows_container_memory_usagewindows_container_private_working_set_usagewindows_container_network_received_bytes_totalwindows_container_network_transmitted_bytes_totalkube_pod_windows_container_resource_memory_requestkube_pod_windows_container_resource_memory_limitkube_pod_windows_container_resource_cpu_cores_requestkube_pod_windows_container_resource_cpu_cores_limitnamespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate
Prometheus 可视化效果记录规则
使用 基于 Prometheus 的容器见解时,将部署更多记录规则以支持 Prometheus 可视化。
ux:cluster_pod_phase_count:sumux:node_cpu_usage:sum_irateux:node_memory_usage:sumux:controller_pod_phase_count:sumux:controller_container_count:sumux:controller_workingset_memory:sumux:controller_cpu_usage:sum_irateux:controller_rss_memory:sumux:controller_resource_limit:sumux:controller_container_restarts:maxux:pod_container_count:sumux:pod_cpu_usage:sum_irateux:pod_workingset_memory:sumux:pod_rss_memory:sumux:pod_resource_limit:sumux:pod_container_restarts:maxux:node_network_receive_drop_total:sum_irateux:node_network_transmit_drop_total:sum_irate
为了支持 Windows,以下是必需的录制规则。 这些规则随上述规则一起部署,但是默认情况下不会启用这些规则。 按照在 Azure Monitor 工作区中启用和禁用规则组的说明操作。
ux:node_cpu_usage_windows:sum_irateux:node_memory_usage_windows:sumux:controller_cpu_usage_windows:sum_irateux:controller_workingset_memory_windows:sumux:pod_cpu_usage_windows:sum_irateux:pod_workingset_memory_windows:sum