我可以自定義 netdata 以不提醒我有關 303 重定向的資訊嗎?
在使用者送出表單後,我使用 303 程式碼(我相信是正確的)重定向使用者。不幸的是,這意味著我每天都會收到幾次來自 netdata 的警報,內容如下:
netdata notification yoursite needs attention web_log_yoursite.response_statuses 1m redirects = 21.1% the ratio of HTTP redirects (3xx except 304) over the last minute
我想我想自定義此行為,使其變為“(3xx,304 或 303 除外)”,但我不知道這是否可能或我將如何去做。
謝謝
303 See Other
正如RFC 7231 6.4.4中所述,您的目的是正確的。此狀態碼適用於任何 HTTP 方法。它主要用於允許 POST 操作的輸出將使用者代理重定向到選定的資源,因為這樣做以可以單獨辨識、添加書籤和記憶體的形式提供與 POST 響應相對應的資訊,獨立於原始請求。
您的站點似乎比通常的站點更多地基於這些 POST 請求及其重定向,因此超出了
1m_redirects
NetData 模板中定義的門檻值conf.d/health.d/web_log.conf
。最簡單的方法是增加行warn:
和的門檻值crit:
,因為配置中的“(3xx 除外 304)”只是一個資訊文本,而不是用於匹配日誌行的邏輯的一部分:template: 1m_redirects on: web_log.response_statuses families: * lookup: sum -1m unaligned of redirects calc: $this * 100 / $1m_requests units: % every: 10s warn: ($1m_requests > 120) ? ($this > (($status >= $WARNING ) ? ( 1 ) : ( 20 )) ) : ( 0 ) crit: ($1m_requests > 120) ? ($this > (($status == $CRITICAL) ? ( 20 ) : ( 30 )) ) : ( 0 ) delay: up 2m down 15m multiplier 1.5 max 1h info: the ratio of HTTP redirects (3xx except 304) over the last minute to: webmaster
的特殊處理
304 Not Modified
來自於它真正可比的事實200 OK
:RFC 7232, 4.1。 304 未修改
304 (Not Modified)
狀態程式碼表示已收到條件 GET 或 HEAD 請求,如果不是因為條件評估為 false 的事實,將導致響應200 (OK)
。換句話說,伺服器不需要傳輸目標資源的表示,因為請求表明使請求有條件的客戶端已經具有有效的表示;因此,伺服器正在重定向客戶端以使用該儲存的表示,就好像它是 200(OK)響應的有效負載一樣。在第746 -761 和906
python.d/web_log.chart.p
-921行中正確地遵循了這個定義:746/906: def get_data_per_statuses(self, code): 747/907: """ 748/908: :param code: str: response status code. Ex.: '202', '499' 749/909: :return: 750/910: """ 751/911: code_class = code[0] 752/912: if code_class == '2' or code == '304' or code_class == '1': 753/913: self.data['successful_requests'] += 1 754/914: elif code_class == '3': 755/915: self.data['redirects'] += 1 756/916: elif code_class == '4': 757/917: self.data['bad_requests'] += 1 758/918: elif code_class == '5': 759/919: self.data['server_errors'] += 1 760/920: else: 761/921: self.data['other_requests'] += 1
如果您真的希望將其修改為 exclude
303
,請添加or code == '303'
到第 752 和 912 行。