Skip to content

Commit

Permalink
T6477: Add telegraf loki output plugin
Browse files Browse the repository at this point in the history
Add Loki plugin to telegraf

set service monitoring telegraf loki url xxx
  • Loading branch information
sever-sever committed Jun 25, 2024
1 parent 4f89e4b commit 66822ee
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 1 deletion.
15 changes: 15 additions & 0 deletions data/templates/telegraf/telegraf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,21 @@
bucket = "{{ influxdb.bucket }}"
### End InfluxDB2 ###
{% endif %}
{% if loki is vyos_defined %}
### Loki ###
[[outputs.loki]]
## The domain of Loki
domain = "{{ loki.url }}:{{ loki.port }}"
{% if loki.authentication.username is vyos_defined and loki.authentication.password is vyos_defined %}
## Basic Authentication
username = "{{ loki.authentication.username }}"
password = "{{ loki.authentication.password }}"
{% endif %}
{% if loki.metric_name_label is vyos_defined %}
metric_name_label = "{{ loki.metric_name_label }}"
{% endif %}
### End Loki ###
{% endif %}
{% if prometheus_client is vyos_defined %}
### Prometheus ###
[[outputs.prometheus_client]]
Expand Down
30 changes: 30 additions & 0 deletions interface-definitions/service_monitoring_telegraf.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,36 @@
#include <include/url-http-https.xml.i>
</children>
</node>
<node name="loki">
<properties>
<help>Output plugin Loki</help>
</properties>
<children>
<node name="authentication">
<properties>
<help>HTTP basic authentication parameters</help>
</properties>
<children>
#include <include/generic-username.xml.i>
#include <include/generic-password.xml.i>
</children>
</node>
<leafNode name="metric-name-label">
<properties>
<help>Metric name label</help>
<valueHelp>
<format>txt</format>
<description>Label to use for the metric name</description>
</valueHelp>
</properties>
</leafNode>
#include <include/port-number.xml.i>
<leafNode name="port">
<defaultValue>3100</defaultValue>
</leafNode>
#include <include/url-http-https.xml.i>
</children>
</node>
<leafNode name="source">
<properties>
<help>Source parameters for monitoring</help>
Expand Down
18 changes: 18 additions & 0 deletions smoketest/scripts/cli/test_service_monitoring_telegraf.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,23 @@ def test_01_basic_config(self):
for input in inputs:
self.assertIn(input, config)

def test_02_loki(self):
label = 'r123'
loki_url = 'http://localhost'
port = '3100'

self.cli_set(base_path + ['loki', 'url', loki_url])
self.cli_set(base_path + ['loki', 'port', port])
self.cli_set(base_path + ['loki', 'metric-name-label', label])

# commit changes
self.cli_commit()

config = read_file(TELEGRAF_CONF)
self.assertIn(f'[[outputs.loki]]', config)
self.assertIn(f'domain = "{loki_url}:{port}"', config)
self.assertIn(f'metric_name_label = "{label}"', config)


if __name__ == '__main__':
unittest.main(verbosity=2)
10 changes: 9 additions & 1 deletion src/conf_mode/service_monitoring_telegraf.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright (C) 2021-2023 VyOS maintainers and contributors
# Copyright (C) 2021-2024 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
Expand Down Expand Up @@ -113,6 +113,9 @@ def get_config(config=None):
if not conf.exists(base + ['azure-data-explorer']):
del monitoring['azure_data_explorer']

if not conf.exists(base + ['loki']):
del monitoring['loki']

return monitoring

def verify(monitoring):
Expand Down Expand Up @@ -159,6 +162,11 @@ def verify(monitoring):
if 'url' not in monitoring['splunk']:
raise ConfigError(f'Monitoring splunk "url" is mandatory!')

# Verify Loki
if 'loki' in monitoring:
if 'url' not in monitoring['loki']:
raise ConfigError(f'Monitoring loki "url" is mandatory!')

return None

def generate(monitoring):
Expand Down

0 comments on commit 66822ee

Please sign in to comment.