summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-03-30 12:06:42 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2026-03-30 14:50:41 +0300
commitf4680145936296433f698e19fae46d3db968426a (patch)
tree3a264c221a32ebe59833a07a9fa611432f35b965
parentad6f703b16464a6cb73f9052077a6100aff4db73 (diff)
downloadvyos-1x-f4680145936296433f698e19fae46d3db968426a.tar.gz
vyos-1x-f4680145936296433f698e19fae46d3db968426a.zip
T8229: Fix handling of endpoint in Telegraf Loki template
-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