Den productivity-metrics-POST-Endpoint für aggregierte OEE-Daten nutzen
Die 10-Minuten-Ausrichtung für Zeitbereiche beachten
Versteckte Zeitvariablen erstellen, die auf gültige Intervalle runden
Abteilungsübersichtstabellen mit mehreren Maschinen erstellen
Gauge-Zellen und kontinuierliche Farbskalen zur Visualisierung einsetzen
Voraussetzungen
Tutorials 4.1-4.4 abgeschlossen
Verständnis von Infinity-POST-Requests
Vertrautheit mit Dashboard-Variablen
Der productivity-metrics-Endpoint liefert aggregierte OEE-Kennzahlen für frei wählbare Zeitbereiche:
Produktivität (OEE) – Gesamtanlageneffektivität
Verfügbarkeit – Laufzeit vs. Stillstand
Leistung – Ist-Output vs. Soll-Output
Qualität – Gutmenge vs. Ausschuss
Welchen Endpoint wann verwenden
Endpoint
Methode
Geeignet für
OEE pro Auftrag, flexible Zeitbereiche
Aggregierte OEE über definierte Zeiträume (Schichten, Tage, Wochen)
Verwende production-runs (Tutorial 4.2) für:
Schnelle Queries mit ${__from:date:iso} und ${__to:date:iso}
Verwende productivity-metrics (dieses Tutorial) für:
Aggregierte Metriken über Schichten oder eigene Zeiträume
Abteilungsübergreifende Zusammenfassungen
Wenn du mehr Kontrolle über die Zeitausrichtung brauchst
Die 10-Minuten-Ausrichtung
Wichtig: Der productivity-metrics-Endpoint erfordert Zeitbereiche mit 10-Minuten-Ausrichtung:
Anforderung
Gültig
Ungültig
Gültige Beispiele:
Ungültige Beispiele:
2024-01-15T08:05:00.000Z (Minuten nicht ausgerichtet)
2024-01-15T14:30:45.000Z (Sekunden nicht null)
Warum das wichtig ist
Wenn Nutzende in Grafana Zeitbereiche auswählen, enthalten die Werte oft beliebige Sekunden und Millisekunden:
Jemand klickt auf "Last 8 hours" um 14:37:23 -> ${__from} = 1705323443000
Das ergibt 2024-01-15T06:37:23.000Z – nicht 10-Minuten-ausgerichtet!
Lösung: Erstelle versteckte Variablen, die Zeitwerte auf gültige Intervalle runden.
Zeitausgerichtete Variablen erstellen
Option A: Auf volle Stunden runden (einfachste Variante)
Nutze Grafanas Datumsformatierung, um auf volle Stunden zu runden:
${__from:date:YYYY-MM-DDTHH:00:00}+00:00
Ergebnis: 2024-01-15T06:00:00+00:00 (immer gültig)
Allerdings aktualisieren sich konstante Variablen nicht, wenn der Zeitbereich geändert wird.
Option B: Auf 10-Minuten-Intervalle runden (fortgeschritten)
Erstelle eine Query-Variable mit Inline-Daten und JSONata:
Variable: start
Query-Konfiguration:
JSONata für 10-Minuten-Rundung:
Dieses JSONata:
Nimmt den Millisekunden-Zeitstempel von Grafana
Rundet auf die nächsten 10 Minuten ab (600000 ms = 10 min)
Wandelt zurück ins ISO-Format um
Variable: end
Erstelle eine zweite Variable mit derselben Konfiguration, aber verwende ${__to} statt ${__from}:
Gleiches JSONata wie oben
[SCREENSHOT: Hidden time variable configuration]
Productivity Metrics abfragen
Einfacher POST-Request
Der productivity-metrics-Endpoint erfordert einen POST-Request mit Zeitbereichen:
URL:
Method: POST
Body:
Infinity-Query-Konfiguration
machines/${machine}/productivity-metrics
Root selector für die Extraktion der Werte:
Hinweis: Qualität existiert nicht bei allen Maschinen, daher wird standardmäßig 1 verwendet, wenn der Wert fehlt.
[SCREENSHOT: POST request configuration in Infinity]
Abteilungsübergreifende OEE-Tabelle erstellen
Eine Abteilungsübersicht zeigt alle Maschinen in einer Tabelle mit OEE-Werten nebeneinander.
Schritt 1: Mehrere Maschinen-Queries erstellen
Erstelle für jede Maschine eine separate Query (Query A, B, C usw.):
Query A (Kiefel):
machines/141e0927-62b3-4e76-8398-ad82d20f397f/productivity-metrics
{"datetime_ranges": [{"start": "${start}", "end": "${end}"}]}
JSONata für Werte (siehe oben)
Füge Computed Columns hinzu, um die Maschine zu identifizieren:
"141e0927-62b3-4e76-8398-ad82d20f397f"
Hinweis: Der Selector verwendet String-Literale in Anführungszeichen, um feste Werte einzufügen.
Query B (Macchi):
Gleiche Konfiguration mit:
URL: machines/cc0d2dcb-564b-48cd-a342-71765a536058/productivity-metrics
Computed Columns: "cc0d2dcb-..." und "Macchi"
Für alle weiteren Maschinen der Abteilung wiederholen.
[SCREENSHOT: Multiple queries with computed columns]
Transformationen kombinieren die verschiedenen Query-Ergebnisse:
Auf den Transform-Tab klicken
Transformation hinzufügen -> Merge
Damit werden alle Maschinen-Queries in einer einzigen Tabelle zusammengeführt.
[SCREENSHOT: Merge transformation result]
Schritt 3: Spalten organisieren
Füge eine weitere Transformation hinzu, um die Tabelle aufzuräumen:
Transformation hinzufügen -> Organize fields
Ausblenden: machine_uuid (nur intern zum Filtern benötigt)
Umbenennen:
availability -> Verfügbarkeit
Reihenfolge: Machine, OEE, Verfügbarkeit, Leistung, Qualität
[SCREENSHOT: Organize fields configuration]
Visuelle Gestaltung
Gauge-Zellen für OEE-Spalten
Stelle jede Score-Spalte als Gauge dar:
Override hinzufügen -> Fields with name -> OEE
Eigenschaft hinzufügen -> Cell type -> Gauge
Für Verfügbarkeit, Leistung und Qualität wiederholen.
Kontinuierliche Farbskala
Verwende einen Rot-Gelb-Grün-Farbverlauf für sofortiges visuelles Feedback:
Unter Defaults (Standard options):
Color scheme -> Continuous - RdYlGr (From thresholds)
Oder Field Overrides für einzelne Spalten verwenden
Thresholds konfigurieren (bei Threshold-basierten Farben):
[SCREENSHOT: Color scale configuration]
Unit-Konfiguration
Stelle die Einheit auf Prozent:
Tabellenfuß mit Durchschnittswerten
Zeige Abteilungsdurchschnitte im Tabellenfuß an:
Damit wird der durchschnittliche OEE aller Maschinen am unteren Rand angezeigt.
[SCREENSHOT: Table with gauge cells and footer]
Vollständiges Beispiel: Abteilungsübersicht
Sites-Endpoint, Anzeige Name/UUID
Inline mit 10-Minuten-Rundung (JSONata)
Inline mit 10-Minuten-Rundung (JSONata)
Panel-Konfiguration
Visualisierung: Table
Queries: Eine pro Maschine mit Computed Columns für den Namen
Transformationen:
Organize fields (UUID ausblenden, Spalten umbenennen)
Field Config:
Color mode: continuous-RdYlGr
Overrides:
OEE, Verfügbarkeit, Leistung, Qualität: Cell type = Gauge
Optionen:
Footer: Anzeige mit Mean-Berechnung
Sort: Nach Maschinenname (aufsteigend)
Vergleich: Production Runs vs. Productivity Metrics
Merkmal
production-runs
productivity-metrics
Aggregiert über den Zeitbereich
Erfordert ausgerichtete Zeitvariablen
Unterstützt (Array von Bereichen)
Schichtberichte, Tageszusammenfassungen
Wann welchen Endpoint verwenden:
Einfache Dashboards mit Zeitauswahl: production-runs mit ${__from:date:iso} verwenden
Schichtbasierte Berichte: productivity-metrics mit ausgerichteten Zeitvariablen verwenden
Historische Vergleiche: productivity-metrics mit mehreren datetime_ranges verwenden
Praktische Übung
Erstelle ein abteilungsübergreifendes OEE-Dashboard mit:
Variablen:
Versteckte start- und end-Variablen mit 10-Minuten-Rundung
OEE-Tabelle:
Queries für 5 Maschinen (Kiefel, Macchi, Alpine, Reifenhauser, W&H Varex)
Gauge-Zellen mit RdYlGr-Farbskala
Tabellenfuß mit Durchschnittswerten
Zusammenfassungs-Stats:
Abteilungsdurchschnitt OEE (einzelnes Stat-Panel)
Berechnung mit denselben Queries und Reduce-Transformation
Zusammenfassung
Du hast gelernt, OEE-Dashboards mit aggregierten Metriken zu erstellen:
Der productivity-metrics-Endpoint erfordert 10-Minuten-ausgerichtete Zeitbereiche
Versteckte Variablen mit JSONata erstellen, um Zeiten automatisch zu runden
Mehrere Queries mit Computed Columns für Multi-Maschinen-Tabellen verwenden
Merge-Transformation zum Zusammenführen der Ergebnisse anwenden
Gauge-Zellen und kontinuierliche Farbskalen zur Gestaltung einsetzen
Abteilungsdurchschnitte mit dem Tabellenfuß anzeigen
Wie es weitergeht
Fahre fort mit:
JSONata für 10-Minuten-Rundung
POST-Request-Body
JSONata für OEE-Extraktion
Computed Column für Maschinennamen
Field Overrides für Gauge-Zellen
Zuletzt aktualisiert