本文通过配置 Prometheus 指标采集和导入预制 Grafana 大盘,快速实现对 DNS Cache 核心性能指标的监控。
适用范围
acs-virtual-node 组件版本需 v2.16.0 及以上。
已安装 Alibaba DNS Cache 组件。
使用方式
开启DNS Cache指标采集。
集群维度
为Alibaba DNS Cache组件开启
enabledMetrics。kubectl patch configmap blazing-dns -n kube-system --type merge -p '{"data":{"config":"enabled: true\nenabledMetrics: true\n"}}'Pod维度
为Pod添加注解,开启
enable-dns-cache-metrics。apiVersion: v1 kind: Pod metadata: annotations: network.alibabacloud.com/enable-dns-cache-metrics: "true" ...新增Prometheus采集配置。
开源Prometheus
在开源Prometheus中找到Prometheus的配置文件(通常位于
/etc/prometheus/prometheus.yml或者自定义的配置目录下),增加以下指标采集Job。社区版Prometheus Operator
社区Prometheus Operator方案以及ACK应用市场ack-prometheus-operator组件的相关信息,请参见开源Prometheus监控。关于自定义采集配置,请参见Prometheus Operator进行数据采集配置。
scrape_configs: # ...其他job配置。 - job_name: _arms-prom/virtual-node/blazing-dns-cache honor_labels: true scrape_interval: 15s scrape_timeout: 15s metrics_path: /metrics/cadvisor scheme: https kubernetes_sd_configs: - role: node follow_redirects: true authorization: type: Bearer credentials_file: /var/run/secrets/target.kubernetes.io/serviceaccount/token tls_config: insecure_skip_verify: true metric_relabel_configs: - source_labels: - __name__ regex: dns_metric_cache_expired_count|dns_metric_cache_hit_count|dns_metric_cache_miss_count|dns_metric_cache_updated_count|dns_metric_request_count|dns_metric_response_count action: keep relabel_configs: - source_labels: [ __meta_kubernetes_node_name ] regex: (^virtual-kubelet.*) target_label: __param_nodeName action: replace - separator: ; regex: (.*) target_label: job replacement: _arms/kubelet/cadvisor action: replace - source_labels: - __meta_kubernetes_node_name separator: ; regex: (.*) target_label: node replacement: ${1} action: replace导入Grafana预制大盘。
在对应Prometheus数据源的Grafana系统中,导入DNS Cache功能的预制监控大盘模板,并选择对应Prometheus数据源。详细操作,请参见import-dashboards。
在data source下拉框中选择实际的Prometheus实例,点击Import。

指标说明和数据样例
# HELP dns_metric_cache_expired_count request handler found an expired cache
# TYPE dns_metric_cache_expired_count gauge
dns_metric_cache_expired_count{namespace="default",pod="test-pod-1"} 552
dns_metric_cache_expired_count{namespace="default",pod="test-pod-metrics"} 17376
# HELP dns_metric_cache_hit_count request handler respond dns request with dns cache
# TYPE dns_metric_cache_hit_count gauge
dns_metric_cache_hit_count{namespace="default",pod="test-pod-1"} 2
dns_metric_cache_hit_count{namespace="default",pod="test-pod-metrics"} 1
# HELP dns_metric_cache_miss_count request handler unable to find a cache
# TYPE dns_metric_cache_miss_count gauge
dns_metric_cache_miss_count{namespace="default",pod="test-pod-1"} 27
dns_metric_cache_miss_count{namespace="default",pod="test-pod-metrics"} 73
# HELP dns_metric_cache_updated_count response handler updated a local cache
# TYPE dns_metric_cache_updated_count gauge
dns_metric_cache_updated_count{namespace="default",pod="test-pod-1"} 579
dns_metric_cache_updated_count{namespace="default",pod="test-pod-metrics"} 17449
# HELP dns_metric_request_count request handlers handles dns requests
# TYPE dns_metric_request_count gauge
dns_metric_request_count{namespace="default",pod="test-pod-1"} 581
dns_metric_request_count{namespace="default",pod="test-pod-metrics"} 17450
# HELP dns_metric_response_count response handlers handles dns responses
# TYPE dns_metric_response_count gauge
dns_metric_response_count{namespace="default",pod="test-pod-1"} 579
dns_metric_response_count{namespace="default",pod="test-pod-metrics"} 17449该文章对您有帮助吗?