From 2301c96714c4ac4268312f178cd244e0507a07b3 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Thu, 2 Oct 2025 02:36:52 -0400 Subject: [PATCH] Update CheckMK plugin details --- monitoring/checkmk/pvc | 1 + monitoring/checkmk/pvc.py | 25 +++++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/monitoring/checkmk/pvc b/monitoring/checkmk/pvc index cdddd8fd..edf911fc 100755 --- a/monitoring/checkmk/pvc +++ b/monitoring/checkmk/pvc @@ -3,4 +3,5 @@ # PVC cluster status check for Check_MK (agent-side) echo "<<>>" +hostname -s pvc --quiet status --format json diff --git a/monitoring/checkmk/pvc.py b/monitoring/checkmk/pvc.py index bd5073b3..1b414aad 100644 --- a/monitoring/checkmk/pvc.py +++ b/monitoring/checkmk/pvc.py @@ -17,24 +17,29 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from .agent_based_api.v1 import * -from cmk.base.check_api import host_name +from cmk.agent_based.v2 import * from time import time from json import loads +def parse_pvc(string_table): + hostname = string_table[0][0] + data = loads(" ".join(string_table[1])) + parsed = (hostname, data) + return parsed + + def discover_pvc(section): - my_node = host_name().split(".")[0] + my_node, _ = section yield Service(item=f"PVC Node {my_node}") yield Service(item="PVC Cluster") def check_pvc(item, params, section): + my_node, data = section state = State.OK - summary = "Stuff" + summary = "" details = None - data = loads(" ".join(section[0])) - my_node = host_name().split(".")[0] maintenance_map = { "true": "on", @@ -44,7 +49,6 @@ def check_pvc(item, params, section): # Node check if item == f"PVC Node {my_node}": - my_node = host_name().split(".")[0] node_health = data["node_health"][my_node]["health"] node_messages = data["node_health"][my_node]["messages"] @@ -85,7 +89,12 @@ def check_pvc(item, params, section): return -register.check_plugin( +agent_section_pvc = AgentSection( + name="pvc", + parse_function=parse_pvc, +) + +check_plugin_pvc = CheckPlugin( name="pvc", service_name="%s", check_ruleset_name="pvc",