45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""Prometheus Server-Metriken Tools."""
|
|
|
|
from core import prometheus_client
|
|
|
|
TOOLS = [
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "get_server_metrics",
|
|
"description": "Server-Metriken (CPU, RAM, Disk, Netzwerk) von Prometheus. Ohne host = Uebersicht aller Server.",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"host": {"type": "string", "description": "Hostname fuer Detail-Ansicht (optional)"}
|
|
},
|
|
"required": [],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "get_server_warnings",
|
|
"description": "Aktuelle Server-Warnungen: hohe CPU, volle Disks, wenig RAM etc.",
|
|
"parameters": {"type": "object", "properties": {}, "required": []},
|
|
},
|
|
},
|
|
]
|
|
|
|
|
|
def handle_get_server_metrics(host=None, **kw):
|
|
if host:
|
|
return prometheus_client.format_host_detail(host)
|
|
return prometheus_client.format_overview()
|
|
|
|
|
|
def handle_get_server_warnings(**kw):
|
|
warnings = prometheus_client.get_warnings()
|
|
return "\n".join(warnings) if warnings else "Keine Warnungen — alle Werte normal."
|
|
|
|
|
|
HANDLERS = {
|
|
"get_server_metrics": handle_get_server_metrics,
|
|
"get_server_warnings": handle_get_server_warnings,
|
|
}
|