From ad3a9629313f870a2b71c7aa61df79a66844421e Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 12 Jul 2019 10:07:20 +0200 Subject: [PATCH] Filter /monitoring/status werkzeug logs With healtchecks, they constitute 95% of our logs. Let's stop wasting resources and shut them up. --- monitoring_status/__init__.py | 1 - monitoring_status/controllers/main.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/monitoring_status/__init__.py b/monitoring_status/__init__.py index f705942..e046e49 100644 --- a/monitoring_status/__init__.py +++ b/monitoring_status/__init__.py @@ -1,2 +1 @@ - from . import controllers diff --git a/monitoring_status/controllers/main.py b/monitoring_status/controllers/main.py index e0a7755..4dd2147 100644 --- a/monitoring_status/controllers/main.py +++ b/monitoring_status/controllers/main.py @@ -1,6 +1,7 @@ # Copyright 2016-2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) +import logging import json import werkzeug @@ -9,6 +10,21 @@ from odoo import http from odoo.addons.web.controllers.main import ensure_db +class HealthCheckFilter(logging.Filter): + + def __init__(self, path, name=''): + super().__init__(name) + self.path = path + + def filter(self, record): + return self.path not in record.getMessage() + + +logging.getLogger('werkzeug').addFilter( + HealthCheckFilter('"GET /monitoring/status HTTP/1.1"') +) + + class Monitoring(http.Controller): @http.route('/monitoring/status', type='http', auth='none')