追蹤

原始碼

trace 啟用基於 OpenTracing 的 DNS 請求追蹤,當請求通過外掛程式鏈時。

描述

使用 trace,您可以啟用 OpenTracing 來追蹤請求如何流經 CoreDNS。啟用 debug 外掛程式以從 trace 外掛程式取得日誌。

語法

最簡單的形式是

trace [ENDPOINT-TYPE] [ENDPOINT]
  • ENDPOINT-TYPE 是追蹤目的地的類型。目前僅支援 zipkindatadog。預設值為 zipkin
  • ENDPOINT 是追蹤目的地,預設為 localhost:9411。對於 Zipkin,如果 ENDPOINT 不以 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
}
  • every AMOUNT 將僅追蹤每 AMOUNT 個查詢中的一個查詢。例如,要追蹤每 100 個查詢中的 1 個,請使用 100 作為 AMOUNT。預設值為 1。
  • service NAME 允許您指定報告給追蹤伺服器的服務名稱。預設值為 coredns
  • client_server 將啟用 ClientServerSameSpan OpenTracing 功能。
  • datadog_analytics_rate RATE 將在從 01 發送的追蹤上啟用 追蹤分析1 表示將分析發送的每個追蹤。這是僅限於 datadog 的功能(ENDPOINT-TYPE 需要是 datadog
  • zipkin_max_backlog_size 設定 Zipkin HTTP 報告器的最大積壓大小。當批次大小達到此閾值時,將會處置批次開頭的 span。預設值為 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

請注意,自 coredns 1.7.1 以來,zipkin 提供者不支援 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 個查詢追蹤一個查詢、重新命名服務,並啟用相同的 span

trace tracinghost:9411 {
	every 10000
	service dnsproxy
	client_server
}

中繼資料

如果也啟用了 metadata 外掛程式,則追蹤外掛程式將發布以下中繼資料

  • trace/traceid:已處理請求的 (zipkin/datadog) 追蹤識別碼

另請參閱

請參閱 debug 外掛程式,以取得有關除錯記錄的更多資訊。