錯誤

原始碼

errors 啟用錯誤記錄。

描述

查詢處理期間遇到的任何錯誤都會輸出到標準輸出。特定類型的錯誤可以被彙整,並在一段時間內印出一次。

每個伺服器區塊只能使用一次這個外掛程式。

語法

基本語法是

errors

擴展語法提供額外的調整選項

errors {
	stacktrace
	consolidate DURATION REGEXP [LEVEL]
}

選項 stacktrace 將在 panic 恢復期間記錄堆疊追蹤。

選項 consolidate 允許在 DURATION 期間收集多個符合正規表示式 REGEXP 的錯誤訊息。自收到第一則此類訊息的 DURATION 後,彙整的訊息將以可選選項 LEVEL 配置的日誌級別輸出到標準輸出。LEVEL 選項支援的選項有 warningerrorinfodebug

2 errors like '^read udp .* i/o timeout$' occurred in last 30s

允許使用具有不同 DURATIONREGEXP 的多個 consolidate 選項。如果某些錯誤訊息對應到多個已定義的正規表示式,該訊息將會與第一個適用的 REGEXP 關聯。

為了獲得更好的效能,建議在正規表示式中使用 ^$ 元字符,以便透過前綴或後綴篩選錯誤訊息,例如 ^failed to .*.* timeout$

範例

使用 whoami 來回應 example.org 網域中的查詢,並將錯誤記錄到標準輸出。

example.org {
    whoami
    errors
}

使用 forward 外掛程式透過 8.8.8.8 解析查詢,並將後綴為 " i/o timeout" 的錯誤訊息彙整為警告,以及將前綴為 "Failed to " 的錯誤訊息彙整為錯誤。

. {
    forward . 8.8.8.8
    errors {
        consolidate 5m ".* i/o timeout$" warning
        consolidate 30s "^Failed to .+"
    }
}