在使用 Loki 配置警報(bào)時(shí),若要在警報(bào)注釋中添加原始日志內(nèi)容,當(dāng)前最佳實(shí)踐是避免在警報(bào)通知中直接嵌入完整的日志行。這是因?yàn)?Loki 警報(bào)操作基于從日志派生的時(shí)間序列數(shù)據(jù),而不是原始的日志行本身。在警報(bào)標(biāo)簽或注釋中包含高度動(dòng)態(tài)的日志內(nèi)容可能導(dǎo)致高基數(shù)問(wèn)題,從而產(chǎn)生大量唯一的警報(bào)并引發(fā)潛在的性能問(wèn)題。
相反,推薦的方法是:
- 使用
summary或description等注釋來(lái)清晰地解釋告警,并在需要時(shí)包含一個(gè)預(yù)填充 LogQL 查詢的 Grafana Explore 鏈接。這允許響應(yīng)者快速訪問(wèn)相關(guān)的日志行,而無(wú)需將它們直接嵌入告警消息中。 - 如果你必須包含日志內(nèi)容,可以使用 Promtail 管道從日志中提取特定字段作為標(biāo)簽,但你應(yīng)該非常小心以避免高基數(shù)數(shù)據(jù)。
以下是該指南的總結(jié):
...創(chuàng)建你的告警,寫好摘要,寫好描述,然后鏈接到 Grafana Explore 中的 LogQL 查詢,在那里你可以查看日志。如果你真的、真的有必要,可以嘗試將日志行的部分內(nèi)容提取為標(biāo)簽,但你必須非常小心處理高度動(dòng)態(tài)的數(shù)據(jù),因?yàn)樽罱K你會(huì)得到數(shù)百或數(shù)千個(gè)告警... 今天我建議盡量避免將日志行放入告警中,原因就在于此。
Grafana Loki:記錄和告警規(guī)則的最佳實(shí)踐(Loki 社區(qū)會(huì)議 2025 年 2 月)
目前,還沒有內(nèi)置的、安全的方法可以自動(dòng)將完整的原始日志內(nèi)容包含在 Loki 告警的注釋中。推薦的工作流程是提供上下文并鏈接到相關(guān)日志,而不是嵌入日志本身。這種方法既可擴(kuò)展又用戶友好。
三人行, 必有我?guī)? 知識(shí)共享, 天下為公. 本文由東風(fēng)微鳴技術(shù)博客 EWhisper.cn 編寫.