追踪

追踪支持对 DNS 请求进行 OpenTracing 跟踪,因为这些请求会遍及整个插件链。

说明

通过追踪,你可以了解请求是怎样通过 CoreDNS 流动的。启用调试插件可以从追踪插件获得日志。

语法

最简单的形式就是

trace [ENDPOINT-TYPE] [ENDPOINT]
  • 终端类型是追踪目标的类型。目前只支持zipkindatadog。默认值为zipkin
  • 终端是追踪目标,默认为localhost:9411。对于 Zipkin,如果终端不以http开头,它将被转换为http://ENDPOINT/api/v1/spans.

使用此格式,所有查询都将被追踪。

使用此语法可以启用附加功能

trace [ENDPOINT-TYPE] [ENDPOINT] {
    every AMOUNT
    service NAME
    client_server
    datadog_analytics_rate RATE
    zipkin_max_backlog_size SIZE
    zipkin_max_batch_size SIZE
    zipkin_max_batch_interval DURATION
}
  • 数量只跟踪数量查询中的一个查询。例如,要跟踪 100 个查询中的 1 个,请使用 100 的数量。默认值为 1。
  • 服务名称允许你指定报告给追踪服务器的服务名称。默认值为coredns
  • 客户端_服务器将启用 客户端服务器 SameSpan OpenTracing 功能。
  • datadog_analytics_rate启用追踪分析,针对从01发送的追踪,1表示发送的每个追踪都将被分析。这是一项只适用于 datadog 的功能(终端类型需要是datadog)。
  • zipkin_max_backlog_size为 Zipkin HTTP 报告程序配置最大积压大小。当批量大小达到此阈值时,将处理批量的开头部分。默认的积压大小为 1000。
  • zipkin_max_batch_size为 Zipkin HTTP 报告程序配置最大批量大小,之后将触发收集。默认的批量大小为 100 个追踪。
  • zipkin_max_batch_interval配置缓冲追踪的最大持续时间,在将它们通过 Zipkin HTTP 报告程序发送到收集程序之前。默认的批量时间间隔为 1 秒。

Zipkin

你可以像这样在 Docker 主机上运行 Zipkin

docker run -d -p 9411:9411 openzipkin/zipkin

请注意,zipkin 提供程序自 coredns 1.7.1 起不支持 v1 API。

示例

使用备用 Zipkin 地址

trace tracinghost:9253

. {
    trace zipkin tracinghost:9253
}

如果出于某种原因你在使用 API 反向代理或其他内容,并且需要重新映射标准 zipkin URL,你可以执行一些操作,例如

trace http://tracinghost:9411/zipkin/api/v1/spans

使用 DataDog

trace datadog localhost:8126

追踪每 10000 个查询中的一个查询,重命名服务,并启用同一路径

trace tracinghost:9411 {
	every 10000
	service dnsproxy
	client_server
}

元数据

如果元数据插件也已启用,追踪插件将发布以下元数据

  • 追踪/追踪 ID:已处理请求的(zipkin/datadog)追踪的标识符

另请参见

有关调试日志记录的更多信息,请参阅调试插件。