From 753eef575f06e00cce47352ded7e8ee0b91d10af Mon Sep 17 00:00:00 2001
From: Viacheslav Hletenko <v.gletenko@vyos.io>
Date: Tue, 25 Jun 2024 09:56:47 +0000
Subject: T6477: Add telegraf loki output plugin

Add Loki plugin to telegraf

set service monitoring telegraf loki url xxx

(cherry picked from commit 3365eb7ab99fa9a259fe440eb51e82fc0a0a4dc6)
---
 src/conf_mode/service_monitoring_telegraf.py | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

(limited to 'src/conf_mode')

diff --git a/src/conf_mode/service_monitoring_telegraf.py b/src/conf_mode/service_monitoring_telegraf.py
index 40eb13e23..9455b6109 100755
--- a/src/conf_mode/service_monitoring_telegraf.py
+++ b/src/conf_mode/service_monitoring_telegraf.py
@@ -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
@@ -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):
@@ -159,6 +162,19 @@ 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!')
+        if 'authentication' in monitoring['loki']:
+            if (
+                'username' not in monitoring['loki']['authentication']
+                or 'password' not in monitoring['loki']['authentication']
+            ):
+                raise ConfigError(
+                    f'Authentication "username" and "password" are mandatory!'
+                )
+
     return None
 
 def generate(monitoring):
-- 
cgit v1.2.3