diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-30 12:06:42 +0300 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-30 14:50:41 +0300 |
| commit | f4680145936296433f698e19fae46d3db968426a (patch) | |
| tree | 3a264c221a32ebe59833a07a9fa611432f35b965 | |
| parent | ad6f703b16464a6cb73f9052077a6100aff4db73 (diff) | |
| download | vyos-1x-f4680145936296433f698e19fae46d3db968426a.tar.gz vyos-1x-f4680145936296433f698e19fae46d3db968426a.zip | |
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 |
