diff options
author | Christopher Baines <chris@lucida.cbaines.net> | 2015-12-24 10:59:02 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2016-02-23 23:00:55 +0000 |
commit | 5bcf65dcff75a01a90b688626d97735372b594e2 (patch) | |
tree | 617016a92505090cc830ae8844169933a06ff56e /prometheus_haproxy_log_exporter/journal | |
download | prometheus-haproxy-log-exporter-5bcf65dcff75a01a90b688626d97735372b594e2.tar prometheus-haproxy-log-exporter-5bcf65dcff75a01a90b688626d97735372b594e2.tar.gz |
Initial commit
Diffstat (limited to 'prometheus_haproxy_log_exporter/journal')
-rw-r--r-- | prometheus_haproxy_log_exporter/journal/__init__.py | 1 | ||||
-rw-r--r-- | prometheus_haproxy_log_exporter/journal/journal_processor.py | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/prometheus_haproxy_log_exporter/journal/__init__.py b/prometheus_haproxy_log_exporter/journal/__init__.py new file mode 100644 index 0000000..3ac2398 --- /dev/null +++ b/prometheus_haproxy_log_exporter/journal/__init__.py @@ -0,0 +1 @@ +from .journal_processor import JournalProcessor diff --git a/prometheus_haproxy_log_exporter/journal/journal_processor.py b/prometheus_haproxy_log_exporter/journal/journal_processor.py new file mode 100644 index 0000000..1d022d4 --- /dev/null +++ b/prometheus_haproxy_log_exporter/journal/journal_processor.py @@ -0,0 +1,35 @@ +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from systemd import journal + +from ..log_processing import AbstractLogProcessor + + +class JournalProcessor(AbstractLogProcessor): + def __init__(self, unit, *args, **kwargs): + super(JournalProcessor, self).__init__(*args, **kwargs) + + self.unit = unit + + def run(self): + with journal.Reader() as j: + j.add_match(_SYSTEMD_UNIT=self.unit) + + j.seek_tail() + j.get_previous() + + while True: + for entry in j: + self.update_metrics(entry['MESSAGE']) + j.wait() |