Den downtimes-API-Endpoint abfragen
Laufende Stillstände (ohne Endzeit) behandeln
Stillstandsdauer mit Transformationen berechnen
Stillstände mit Kreisdiagrammen und Bar Gauges visualisieren
Eine State Timeline für zeitbasierte Analyse erstellen
Zusammenfassende Kennzahlen für Stillstandsberichte aufbauen
Voraussetzungen
Tutorials 4.1-4.3 abgeschlossen
Verständnis von Infinity-Queries und Transformationen
Vertrautheit mit Dashboard-Variablen
Stillstandsanalysen helfen dabei, folgende Fragen zu beantworten:
Wie viel Zeit geht durch Stillstände verloren
Welche Kategorien von Stillständen treten auf (geplant, ungeplant, nicht eingeplant)
Welche Gründe kommen am häufigsten vor
Wann treten Stillstände auf (Muster über die Zeit)
Stillstandskategorien
Kategorie
Beschreibung
Farbe (Konvention)
Geplante Wartung, Rüstvorgänge
Manuell vom Bedienpersonal gemeldete Stillstände
Keine Produktion eingeplant
Stillstand ohne zugewiesenen Grund
Downtimes-API-Endpoint
Der downtimes-Endpoint gibt Maschinenstillstände zurück:
URL:
Query-Parameter:
Nach Maschinen-UUID(s) filtern
Stillstände ab diesem Zeitpunkt (ISO 8601)
Stillstände bis zu diesem Zeitpunkt (ISO 8601)
Antwortstruktur
Wichtig: Wenn end den Wert null hat, ist der Stillstand noch aktiv.
Einfache Stillstands-Query
Schritt 1: Query erstellen
Infinity-Konfiguration:
downtimes?machine=${machine}&start=${__from:date:iso}&end=${__to:date:iso}
Schritt 2: Felder mit Columns extrahieren
Füge Columns hinzu, um die verschachtelte Struktur aufzulösen:
[SCREENSHOT: Basic downtime query configuration]
Laufende Stillstände behandeln
Stillstände ohne end-Zeitpunkt sind noch aktiv. Du kannst sie mit JSONata behandeln:
JSONata zum Auffüllen fehlender Endzeiten
Damit werden null-Endzeiten durch den aktuellen Zeitpunkt ersetzt, um Berechnungen zu ermöglichen.
Alternative: Endzeit des Query-Zeitbereichs verwenden
Hier wird statt der aktuellen Zeit das Ende des Dashboard-Zeitbereichs verwendet.
Stillstandsdauer berechnen
Mit Grafana-Transformationen lässt sich die Dauer aus Start- und Endzeit berechnen.
Schritt 1: Feldtypen konvertieren
Transformation hinzufügen -> Convert field type:
Schritt 2: Dauer berechnen
Transformation hinzufügen -> Add field from calculation:
Das ergibt die Dauer in Millisekunden.
Schritt 3: In Sekunden umrechnen
Weitere Berechnung hinzufügen:
Jetzt ist duration in Sekunden angegeben, was mit der Einheit dtdhms (Tage, Stunden, Minuten, Sekunden) funktioniert.
[SCREENSHOT: Duration calculation transformations]
Kreisdiagramm nach Kategorie
Visualisiere die Verteilung der Stillstandskategorien.
Query-Konfiguration
Verwende die Basis-Query mit JSONata:
Convert field type -> start, end zu Time
Add field from calculation -> duration_ms = end - start
Add field from calculation -> duration = duration_ms / 1000
Group by:
Aggregate: duration -> Sum
Panel-Einstellungen
Kategoriewerte auf lesbare Namen abbilden:
Field Overrides pro Kategorie hinzufügen:
[SCREENSHOT: Downtime pie chart by category]
Stillstands-Bar-Gauge
Zeige die Dauer pro Kategorie als horizontale Balken.
Panel-Einstellungen
Verwende die gleiche Query und die gleichen Transformationen wie beim Kreisdiagramm.
[SCREENSHOT: Downtime bar gauge]
Zeige, wann Stillstände im Zeitverlauf aufgetreten sind.
Query-Konfiguration
Panel-Einstellungen
Value Mappings mit Farben
Die State Timeline zeigt farbige Bänder für jeden Stillstandszeitraum.
[SCREENSHOT: State timeline panel]
Stillstandsdetails-Tabelle
Zeige einzelne Stillstandsereignisse mit allen Details.
Query-Konfiguration
Verwende die Basis-Query mit allen Feldern:
Mit Maschinennamen verknüpfen
Füge eine zweite Query für Maschinennamen hinzu:
Query B:
Transformationen:
Organize fields -> Spalten neu anordnen und Maschinen-UUID ausblenden
Spaltenkonfiguration
[SCREENSHOT: Downtime details table]
Zusammenfassende Kennzahlen
Füge Stat-Panels für schnelle KPIs hinzu.
Gesamte Stillstandsdauer
Anzahl der Stillstände
Transformation hinzufügen -> Group by:
Nur ungeplante Stillstände
Transformation hinzufügen -> Filter by value:
Condition: equals "UNPLANNED"
Anschließend die Summe der Dauer berechnen.
[SCREENSHOT: Summary stat panels]
Maschinenvergleich
Vergleiche Stillstandszeiten maschinenübergreifend.
Query mit Maschinennamen
Verknüpfe Stillstände mit der Maschinen-Query:
Query A (Stillstände):
Query B (Maschinen):
Merge (Verknüpfung über das machine-Feld)
Group by: machine_name, Aggregate: duration -> Sum
Sort by: duration (absteigend)
Verwende ein Bar Chart mit:
Unit: Duration (d hh:mm:ss)
[SCREENSHOT: Multi-machine downtime comparison]
Stillstands-Pareto-Analyse
Identifiziere die häufigsten Stillstandsgründe.
Filter by value -> category = "UNPLANNED" (Fokus auf beeinflussbare Stillstände)
Group by: reason, Aggregate: duration -> Sum
Sort by: duration (absteigend)
Verwende ein Bar Chart oder Bar Gauge:
Sortiert nach Dauer (absteigend)
So entsteht eine Pareto-Ansicht der größten Stillstandsverursacher.
[SCREENSHOT: Downtime Pareto analysis]
Vollständiges Dashboard-Layout
Row 1: Übersicht
Kreisdiagramm nach Kategorie (6 Einheiten)
Gesamtdauer-Stat (6 Einheiten)
Anzahl-Stat (6 Einheiten)
Ungeplante Dauer-Stat (6 Einheiten)
Row 2: Zeitverlauf
State Timeline (24 Einheiten)
Row 3: Analyse
Dauer nach Kategorie als Bar Gauge (12 Einheiten)
Top-Gründe als Bar Chart (12 Einheiten)
Row 4: Details
Stillstandsdetails-Tabelle (24 Einheiten)
Praktische Übung
Erstelle ein Stillstandsauswertungs-Dashboard mit:
Variablen:
Standort-Dropdown (Maschinen filtern)
Maschinen-Dropdown (Mehrfachauswahl)
Übersicht:
Kreisdiagramm nach Kategorie
Drei Stat-Panels (Gesamtdauer, Anzahl, ungeplant)
Zeitverlauf:
State Timeline mit allen Stillständen
Analyse:
Top-10-Gründe als Pareto-Diagramm
Details:
Vollständige Stillstandstabelle mit Maschinennamen
Zusammenfassung
Du hast gelernt, Stillstandsberichte zu erstellen:
Den downtimes-Endpoint mit Zeitfiltern abfragen
Laufende Stillstände (null-Endzeiten) behandeln
Dauer mit Transformationen berechnen
Mit Kreisdiagrammen, Bar Gauges und State Timelines visualisieren
Zusammenfassende Kennzahlen erstellen
Maschinenvergleiche und Pareto-Analysen durchführen
Wie es weitergeht
Teil 4 abgeschlossen! Fahre fort mit:
Downtimes-Query-URL
JSONata für null-Endzeiten
Convert field type: start, end -> Time
Add field: duration_ms = end - start
Add field: duration = duration_ms / 1000
Value Mappings für Kategorien
Einheit für Dauer
Verwende dtdhms (Duration: days, hours, minutes, seconds) für Stillstandsdauern.
Group By zur Aggregation
Zuletzt aktualisiert