CoreDNS是ACK集群中默认采用的DNS服务发现插件。本文介绍如何查看CoreDNS组件监控大盘、常见指标异常的问题解析,以及CoreDNS组件的指标清单。
前提条件
查看CoreDNS组件监控大盘
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在Prometheus监控页面,单击网络监控页签。
在CoreDNS组件监控页签查看监控大盘。
监控大盘说明
基于组件指标和相关PromQL绘制大盘,包括请求、响应、缓存等内容。图表说明如下。
大盘指标 | 单位 | 描述 |
Requests (total) | 请求/秒 | CoreDNS接收到的请求数。 |
Requests (success rate) | 百分比 | CoreDNS接受到的请求数响应成功率。 说明 NXDOMAIN和NOERROR的结果在此处被认为请求响应成功。 |
Requests (by zone) | 请求/秒 | CoreDNS接收到的请求数(按Zone)。 |
Requests (by qtype) | 请求/秒 | CoreDNS接收到的请求数(按解析类型)。 |
Requests (DO bit) | 请求/秒 | CoreDNS接收到的带有DO标记的请求数。 |
Requests (size, udp) | 字节 | CoreDNS接收到的UDP类型请求的报文大小。 |
Requests (size,tcp) | 字节 | CoreDNS接收到的TCP类型请求的报文大小。 |
Responses (by rcode) | 请求/秒 | 响应数(按状态码RCODE)。 |
Responses (duration) | 秒 | 响应时长(按99、90、50百分位)。 |
Responses (size, udp) | 字节 | UDP类型请求的响应报文大小的百分位数(99%、50%)。 |
Responses (size, tcp) | 字节 | TCP类型请求的响应报文大小的百分位数(99%、50%)。 |
Cache (size) | 个 | 当前缓存结果数。 |
Cache (hitrate) | 百分比 | 缓存命中率。 |
监控大盘常见异常说明
异常 | 描述 |
CoreDNS接收到的请求数过高。 | 在监控大盘的Requests (total)可以看到当前CoreDNS整体接收到的请求数。 如果请求数突然增高,可以结合CoreDNS日志查询当前查询量较高的域名,结合业务判断是否合理。关于如何分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志。如果域名请求数量增高是合理现象,建议合理调整CoreDNS副本数以及使用NodeLocal DNSCache提高集群DNS性能。具体操作,请参见合理调整集群CoreDNS部署状态和使用NodeLocal DNSCache。 |
服务端异常,ServFail状态码响应的数量过高。 | 在监控大盘的Responses (by rcode)可以看到ServFail状态码的响应数目。 如果服务端出现大量ServFail异常,建议结合CoreDNS日志中ServFail的具体域名进行排查。关于如何分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志。 |
CoreDNS域名解析响应慢。 | 在监控大盘的Responses (duration)可以看到域名的响应时长。 如果应用大量使用集群外部域名,可能会出现域名解析响应慢的情况。 |
指标清单
如果您未启用ARMS提供的CoreDNS组件监控大盘,您也可以在自建Prometheus中监控CoreDNS。CoreDNS暴露的指标如下。
本指标清单以CoreDNS 1.9.3版本为例,详细信息,请参见CoreDNS官方文档。
指标 | 类型 | 描述 |
requests_total | Counter | 统计不同维度下DNS解析请求的计数。统计维度包括server、zone、proto、family、type。 |
request_duration_seconds | Histogram | 统计不同维度下DNS解析请求的处理时长分布。统计维度包括server和zone。 |
request_size_bytes | Histogram | 统计不同维度下DNS解析请求的报文大小分布。统计维度包括server、zone、proto。Histogram Bucket的阈值为0、100、200、300、400、511、1023、2047、4095、8291、16e3、32e3、48e3、64e3。单位:秒。 |
do_requests_total | Counter | 统计不同维度下带有DO标记的DNS解析请求的计数。统计维度包括server、zone。 |
response_size_bytes | Histogram | 统计不同维度下DNS解析响应的报文大小分布。统计维度包括server、zone、proto。Histogram Bucket的阈值为0、100、200、300、400、511、1023、2047、4095、8291、16e3、32e3、48e3、64e3。单位:秒。 |
responses_total | Counter | 统计不同维度下DNS解析响应的计数。统计维度包括server、zone、rcode、plugin。 |
panics_total | Counter | 统计CoreDNS发生异常(Panic)的计数。 |
plugin_enabled | Gauge | 统计各插件的启用状态。统计维度包括server、zone、name。 |
https_responses_total | Counter | 统计不同维度下DoH类型的DNS解析响应的计数。统计维度包括server、status。 |