summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/telegraf/telegraf.j29
-rwxr-xr-xpython/vyos/template.py9
2 files changed, 17 insertions, 1 deletions
diff --git a/data/templates/telegraf/telegraf.j2 b/data/templates/telegraf/telegraf.j2
index 043fc6878..5d61c554e 100644
--- a/data/templates/telegraf/telegraf.j2
+++ b/data/templates/telegraf/telegraf.j2
@@ -42,10 +42,17 @@
### End InfluxDB2 ###
{% endif %}
{% if loki is vyos_defined %}
+{% set parsed = loki.url | parse_url %}
+{% set base_url = parsed.scheme ~ '://' ~ parsed.hostname %}
+{% set endpoint = parsed.path if parsed.path and parsed.path != '/' else '' %}
### Loki ###
[[outputs.loki]]
## The domain of Loki
- domain = "{{ loki.url }}:{{ loki.port }}"
+ domain = "{{ base_url }}:{{ loki.port }}"
+{% if endpoint %}
+ ## Endpoint to write api
+ endpoint = "{{ endpoint }}"
+{% endif %}
{% if loki.authentication.username is vyos_defined and loki.authentication.password is vyos_defined %}
## Basic Authentication
username = "{{ loki.authentication.username }}"
diff --git a/python/vyos/template.py b/python/vyos/template.py
index 2a783bc74..9d309370e 100755
--- a/python/vyos/template.py
+++ b/python/vyos/template.py
@@ -1171,3 +1171,12 @@ def get_default_config_file(filename):
raise RuntimeError(f'Configuration file "{filename}" not found in '\
'internal vyos.defaults.config_files dict!')
return config_files[filename]
+
+
+@register_filter('parse_url')
+def parse_url(url):
+ """Parse the given URL and return a urllib.parse.ParseResult object"""
+ from urllib.parse import urlparse
+
+ parsed = urlparse(url)
+ return parsed