Stillstandsauswertung

Stillstandsauswertung in Grafana mit der ENLYZE API.

Was du lernst

  • 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


Überblick

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)

PLANNED

Geplante Wartung, Rüstvorgänge

Blau

UNPLANNED

Manuell vom Bedienpersonal gemeldete Stillstände

Orange

NOT_SCHEDULED

Keine Produktion eingeplant

Grau

(keine)

Stillstand ohne zugewiesenen Grund

Gelb


Downtimes-API-Endpoint

Der downtimes-Endpoint gibt Maschinenstillstände zurück:

URL:

Query-Parameter:

Parameter
Beschreibung

machine

Nach Maschinen-UUID(s) filtern

start

Stillstände ab diesem Zeitpunkt (ISO 8601)

end

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:

Einstellung
Wert

Type

JSON

Parser

Backend

Source

URL

URL

downtimes?machine=${machine}&start=${__from:date:iso}&end=${__to:date:iso}

Root selector

$.data

Schritt 2: Felder mit Columns extrahieren

Füge Columns hinzu, um die verschachtelte Struktur aufzulösen:

Selector
Title
Type

uuid

uuid

String

machine

machine

String

start

start

Timestamp

end

end

Timestamp

reason.category

category

String

reason.name

reason

String

[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:

Feld
Typ

start

Time

end

Time

Schritt 2: Dauer berechnen

Transformation hinzufügen -> Add field from calculation:

Einstellung
Wert

Mode

Binary operation

Operation

end - start

Alias

duration_ms

Das ergibt die Dauer in Millisekunden.

Schritt 3: In Sekunden umrechnen

Weitere Berechnung hinzufügen:

Einstellung
Wert

Mode

Binary operation

Operation

duration_ms / 1000

Alias

duration

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:

Transformationen

  1. Convert field type -> start, end zu Time

  2. Add field from calculation -> duration_ms = end - start

  3. Add field from calculation -> duration = duration_ms / 1000

  4. Group by:

    • Group by: category

    • Aggregate: duration -> Sum

Panel-Einstellungen

Einstellung
Wert

Visualization

Pie Chart

Reduce

Fields -> duration (sum)

Legend

Table, show percent

Value Mappings

Kategoriewerte auf lesbare Namen abbilden:

Wert
Anzeige

PLANNED

Geplanter Stillstand

UNPLANNED

Ungeplant (manuell)

NOT_SCHEDULED

Nicht eingeplant

UNKNOWN

Kein Grund

Farb-Overrides

Field Overrides pro Kategorie hinzufügen:

Kategorie
Farbe

Geplanter Stillstand

dark-blue

Ungeplant (manuell)

orange

Nicht eingeplant

gray

Kein Grund

yellow

[SCREENSHOT: Downtime pie chart by category]


Stillstands-Bar-Gauge

Zeige die Dauer pro Kategorie als horizontale Balken.

Panel-Einstellungen

Einstellung
Wert

Visualization

Bar Gauge

Orientation

Horizontal

Display mode

Basic

Show unfilled area

Off

Unit

Duration (d hh:mm:ss)

Verwende die gleiche Query und die gleichen Transformationen wie beim Kreisdiagramm.

[SCREENSHOT: Downtime bar gauge]


State Timeline

Zeige, wann Stillstände im Zeitverlauf aufgetreten sind.

Query-Konfiguration

Panel-Einstellungen

Einstellung
Wert

Visualization

State timeline

Merge values

On

Show value

Auto

Value Mappings mit Farben

Wert
Anzeige
Farbe

PLANNED

Geplant

dark-blue

UNPLANNED

Ungeplant

orange

NOT_SCHEDULED

Nicht eingeplant

gray

UNKNOWN

Kein Grund

yellow

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:

  1. Merge

  2. Organize fields -> Spalten neu anordnen und Maschinen-UUID ausblenden

Spaltenkonfiguration

Spalte
Typ
Besonderheit

start

Timestamp

dateTimeAsIso

end

Timestamp

dateTimeAsIso

duration_display

String

-

category

String

Value Mappings

reason

String

-

machine_name

String

-

[SCREENSHOT: Downtime details table]


Zusammenfassende Kennzahlen

Füge Stat-Panels für schnelle KPIs hinzu.

Gesamte Stillstandsdauer

Einstellung
Wert

Visualization

Stat

Reduce

Sum

Field

duration

Unit

Duration (d hh:mm:ss)

Anzahl der Stillstände

Transformation hinzufügen -> Group by:

  • Group by: (keine)

  • Aggregate: uuid -> Count

Einstellung
Wert

Visualization

Stat

Field

uuid (count)

Title

Stillstandsereignisse

Nur ungeplante Stillstände

Transformation hinzufügen -> Filter by value:

  • Field: category

  • 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):

Transformationen

  1. Merge (Verknüpfung über das machine-Feld)

  2. Dauer berechnen

  3. Group by: machine_name, Aggregate: duration -> Sum

  4. Sort by: duration (absteigend)

Visualisierung

Verwende ein Bar Chart mit:

  • X-Achse: machine_name

  • Wert: duration (sum)

  • Unit: Duration (d hh:mm:ss)

[SCREENSHOT: Multi-machine downtime comparison]


Stillstands-Pareto-Analyse

Identifiziere die häufigsten Stillstandsgründe.

Transformationen

  1. Dauer berechnen

  2. Filter by value -> category = "UNPLANNED" (Fokus auf beeinflussbare Stillstände)

  3. Group by: reason, Aggregate: duration -> Sum

  4. Sort by: duration (absteigend)

Visualisierung

Verwende ein Bar Chart oder Bar Gauge:

  • Sortiert nach Dauer (absteigend)

  • Top 10 Gründe

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:

  1. Variablen:

    • Standort-Dropdown (Maschinen filtern)

    • Maschinen-Dropdown (Mehrfachauswahl)

  2. Übersicht:

    • Kreisdiagramm nach Kategorie

    • Drei Stat-Panels (Gesamtdauer, Anzahl, ungeplant)

  3. Zeitverlauf:

    • State Timeline mit allen Stillständen

  4. Analyse:

    • Bar Gauge nach Kategorie

    • Top-10-Gründe als Pareto-Diagramm

  5. 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:


Kurzreferenz

Downtimes-Query-URL

JSONata für null-Endzeiten

Transformationen zur Dauerberechnung

  1. Convert field type: start, end -> Time

  2. Add field: duration_ms = end - start

  3. Add field: duration = duration_ms / 1000

Value Mappings für Kategorien

API-Wert
Anzeige
Farbe

PLANNED

Geplanter Stillstand

dark-blue

UNPLANNED

Ungeplant (manuell)

orange

NOT_SCHEDULED

Nicht eingeplant

#b0b7af (gray)

(leer)

Kein Grund

yellow

Einheit für Dauer

Verwende dtdhms (Duration: days, hours, minutes, seconds) für Stillstandsdauern.

Group By zur Aggregation

Zweck
Group By
Aggregate

Summe nach Kategorie

category

duration -> Sum

Summe nach Grund

reason

duration -> Sum

Anzahl nach Kategorie

category

uuid -> Count

Zuletzt aktualisiert