diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2026-03-31 14:06:31 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-31 14:06:31 +0300 |
| commit | f1a412985288730cc65a250da2bd4f5b87ade43f (patch) | |
| tree | 3b1cf8b786e8c6bed5b860bb2bcaf39d11533b2b | |
| parent | 83d76acd34e4d822e68e72e3b072a789b1abd845 (diff) | |
| parent | f4680145936296433f698e19fae46d3db968426a (diff) | |
| download | vyos-1x-f1a412985288730cc65a250da2bd4f5b87ade43f.tar.gz vyos-1x-f1a412985288730cc65a250da2bd4f5b87ade43f.zip | |
Merge pull request #5097 from natali-rs1985/T8229
T8229: Fix handling of endpoint in Telegraf Loki template
| -rw-r--r-- | data/templates/telegraf/telegraf.j2 | 9 | ||||
| -rwxr-xr-x | python/vyos/template.py | 9 |
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 |
