Um in Grafana einen Button zu erstellen, der einen HTTP PUT-Request an eine bestimmte URL sendet, können Sie die Grafana Dashboard Variables und Dashboard Links oder ein Custom Panel Plugin wie das Grafana Button Panel verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie das umsetzen können:
Methode 1: Verwenden des “Grafana Button Panel” (empfohlen)
Das Button Panel ist ein Plugin, das speziell für solche Anwendungsfälle entwickelt wurde.
Schritt 1: Plugin installieren
- Gehen Sie in Grafana zu Configuration > Plugins.
- Suchen Sie nach “Grafana Button Panel” (von Blackmirror) und installieren Sie es.
- Starten Sie Grafana neu, falls erforderlich.
Schritt 2: Button Panel zum Dashboard hinzufügen
- Öffnen Sie Ihr Dashboard und klicken Sie auf “Add Panel” > “Button”.
- Konfigurieren Sie den Button wie folgt:
- Button Text: Geben Sie den Text ein, der auf dem Button angezeigt werden soll (z. B. “Daten aktualisieren”).
- URL: Geben Sie die Ziel-URL für den PUT-Request ein (z. B.
http://ihre-api-endpunkt.de/data). - Method: Wählen Sie “PUT”.
- Headers (optional): Falls erforderlich, fügen Sie Header hinzu, z. B.:
{ "Content-Type": "application/json", "Authorization": "Bearer Ihr-Token" } - Body (optional): Falls der PUT-Request einen Body benötigt, geben Sie ihn hier ein (z. B. als JSON):
{ "key": "value" } - Confirm Message (optional): Eine Bestätigungsnachricht, die angezeigt wird, bevor der Request gesendet wird.
- Klicken Sie auf “Apply”, um die Änderungen zu speichern.
Methode 2: Verwenden von Dashboard Links (einfacher, aber weniger flexibel)
Falls Sie kein Plugin installieren möchten, können Sie einen Dashboard Link verwenden, der als Button fungiert.
Schritt 1: Dashboard Link hinzufügen
- Klicken Sie in der oberen Leiste Ihres Dashboards auf das Zahnrad-Symbol (Dashboard Settings).
- Gehen Sie zu “Links” und klicken Sie auf “Add Link”.
- Konfigurieren Sie den Link wie folgt:
- Title: Der Text, der auf dem Button angezeigt wird (z. B. “Aktualisieren”).
- URL:
#!/bin/bash curl -X PUT -H "Content-Type: application/json" -d '{"key":"value"}' http://ihre-api-endpunkt.de/data(Hinweis: Dies funktioniert nur, wenn Grafana auf einem Server läuft, auf demcurlverfügbar ist. Alternativ können Sie einen externen Service wie einen Webhook nutzen.) - Type: Wählen Sie “Dashboard” oder “Link”.
- Include Time Range (optional): Aktivieren Sie dies, falls die Zeitauswahl relevant ist.
- Speichern Sie die Änderungen.
Schritt 2: Button im Dashboard anzeigen
- Fügen Sie ein Text-Panel zu Ihrem Dashboard hinzu.
- Verwenden Sie Markdown, um einen klickbaren Button zu erstellen:
[Aktualisieren](#!/bin/bash curl -X PUT http://ihre-api-endpunkt.de/data)(Auch hier gilt: Dies ist eine vereinfachte Lösung und funktioniert nicht direkt im Browser.)
Methode 3: Verwenden von Grafana Variables + JavaScript (fortgeschritten)
Falls Sie mehr Kontrolle benötigen, können Sie eine Dashboard Variable mit einem Custom HTML-Panel kombinieren.
Schritt 1: Variable erstellen
- Gehen Sie zu Dashboard Settings > Variables > Add Variable.
- Konfigurieren Sie eine Variable (z. B.
trigger_update):- Name:
trigger_update - Type: Custom
- Values:
0,1(oder ein anderer Trigger-Mechanismus).
- Name:
Schritt 2: Custom HTML-Panel hinzufügen
- Installieren Sie das HTML-Panel-Plugin (z. B. “Grafana HTML Panel”).
- Fügen Sie ein HTML-Panel hinzu und verwenden Sie JavaScript, um den PUT-Request zu senden:
<button>Aktualisieren</button> function sendPutRequest() { fetch('http://ihre-api-endpunkt.de/data', { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ key: 'value' }), }) .then(response => response.json()) .then(data => console.log('Success:', data)) .catch(error => console.error('Error:', error)); }(Hinweis: Due to CORS restrictions, this may not work directly in the browser unless the API supports CORS.)
Empfehlung
- Für einfache Fälle: Verwenden Sie das Button Panel Plugin (Methode 1).
- Für komplexere Anfragen: Nutzen Sie ein Custom Panel mit JavaScript (Methode 3) oder einen externen Service (z. B. einen Webhook über Node-RED oder einen Proxy-Server).
Falls Sie Hilfe bei der Konfiguration benötigen, lassen Sie es mich wissen! 😊