Blog

Vorstellung freies Modul "GenericDashboardStats"

09.07.2020 // Renée Bäcker

Ein Bild sagt mehr als tausend Worte. Das gleiche gilt für die Statistiken auf dem Dashboard in der ((OTRS)) Community Edition. Allerdings gibt es bei der 7-Tage-Statistik im Standard ein paar Probleme: Wie der Name schon sagt, zeigt es fest nur die Werte der letzten 7 Tage an. Und es gibt genau zwei fest eingestellte Kurven in der Statistik. Mit GenericDashboardStats lässt sich das ändern. Zum einen kann man die Anzahl der betrachteten Tage verändern als auch die angezeigten Kurven.

Nach der Installation des Moduls gibt es ein paar zusätzliche Konfigurationseinstellungen. Die wichtigste Einstellung des Moduls ist die Aktivierung des Dashboard-Widgets:

SysConfig-Einstellung zur Aktivierung des Dashboardwidgets

Hier wiederum ist der Wert zum Schlüssel SysConfigBase entscheidend. Standardmäßig ist hier GenericDashboardStats eingetragen. Die Erweiterung sucht sich für die Darstellung alle Konfigurationsparameter zusammen, die mit eben diesem Wert anfangen.

Das sind z.B. diese hier:

Aber es gibt noch mehr Einstellungen in dem Konfigurationsparameter. Hier nur die wichtigsten kurz erklärt.

UseDate

Im Standard werden nur die Wochentage abgekürzt dargestellt, also z.B. Mo, Di und so weiter. Werden größere Zeiträume in der Statistik dargestellt, ist das mit dem Wochentag vielleicht nicht mehr ganz so praktisch. In diesem Fall kann man UseDate auf 1 setzen. Dann wird das Datum angezeigt.

DateFormat

Das komplette Datum ist aber vielleicht unnötig. Vielmehr könnte man nur am Tag und Monat interessiert sein. Dann kann man einfach %d.%m. eintragen. Die Platzhalter, die hier genutzt werden können, sind in der Dokumentation von strftime nachzulesen.

ReduceXTicks

Hat man viele Tage in der Statistik, kann es schnell unübersichtlich bei der Beschriftung der x-Achse werden. Sollen nur weniger Punkte angezeigt werden, kann man ReduceXTicks auf 1 setzen.

Block

Um eine bessere Übersichtlichkeit zu bekommen - gerade wenn man einen längeren Zeitraum in der Statistik betrachtet - kann man die Widgets auch von der rechten Seitenleiste in den Hauptteil verschieben. Dazu muss bei Block einfach ContentLarge eingetragen werden.

Eigene Kurven definieren

Das Addon kommt mit der Definition von zwei Beispiel-Kurven. Eine Kurve zeigt die Anzahl der erstellten Tickets an und die zweite die Anzahl der erstellten Tickets in der Queue Junk:

Das Standard-Widget und die generische Statistik

Um diese Widget zu erweitern - sprich zusätzliche Kurven hinzufügen - muss die Systemkonfiguration angepasst werden. Klingt schwieriger als es ist...

Einfach eine eigene Konfigurationsdatei in Kernel/Config/Files/XML/ anlegen. z.B. MyDashboardStats.xml.

Dort das Grundgerüst ablegen:

<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="2.0" init="Application">
    <!-- Hier folgen die Settings-Blöcke -->
</otrs_config>

Steht dieses Grundgerüst, kann für jede Kurve mindestens ein Settingsblock angelegt werden. Als Beispiel dient eine Kurve, mit der ich erkennen kann, wie viele Demosysteme in den letzten 14 Tagen angefordert wurden.

<Setting Name="GenericDashboardStats###001-demos-created" Required="0" Valid="1">
    <Description Translatable="1">Demos</Description>
    <Navigation>Stats</Navigation>
    <Value>
        <Hash>
            <Item Key="OptionKey">DemosCreated</Item>
            <Item Key="type">TicketCreate</Item>
            <Item Key="label">Demosysteme</Item>
        </Hash>
    </Value>
</Setting>

Dieser definiert die Basisinformationen der Kurve:

type

Definiert, welches Zeitkriterium bei der Ticketsuche genutzt wird. In der Standard 7-Tage-Statistik wird z.B. die Ticketerstell- bzw. Ticketschließzeit genutzt. Folgende Zeitkriterien werden unterstützt:

  • TicketCreate - Zeitpunkt der Ticketerstellung
  • TicketClose - Zeitpunkt des Schließens eines Tickets
  • TicketChange - Zeitpunkt einer Änderung des Tickets
  • TicketEscalation - Zeitpunkt der Ticketeskalation

Weitere Kriterien sind auf OPAR aufgeführt.

label

Ist die Beschriftung der Kurve im Widget. Dieser Text wird übersetzt, sollte eine Übersetzung in der jeweiligen Sprache existieren. Wenn der nicht existiert, können Sie die Übersetzung erstellen.

color

Die Farbe, die die Kurve haben soll. Wenn nichts angegeben wird, wird eine Standardfarbe genommen.

Die Stärke dieses Addons liegt aber darin, dass nicht nur die Zeitpunkte für die Ticketsuche herangezogen werden kann, sondern beliebige Parameter aus der Ticket-Suche.

Um diese nutzen zu können muss in dem Settings-Block der Kurve ein OptionKey gesetzt werden. Zur Erinnerung: Wir wollen eine Kurve haben, bei der wir die Anzahl der angeforderten Demosysteme ablesen können. Uns interessieren also erstellte Tickets (deswegen TicketCreate bei der Option type) der letzten 14 Tage.

Es sind aber nicht alle erstellten Tickets in unserem OTRS. Sondern nur die in der Queue FeatureAddons::Demosystem. Aus diesem Grund müssen wir die Suche etwas verfeinern. Das geschieht in einem weiteren Settings-Block.

<Setting Name="DemosCreated###Queues" Required="0" Valid="1">
    <Description Translatable="1">Tickets for demo instances are in these queues</Description>
    <Navigation>DemosCreated</Navigation>
    <Value>
        <Array>
            <Item>FeatureAddons::Demosystem</Item>
        </Array>
    </Value>
</Setting>

Im Namen diese Einstellungen finden sich zwei Sachen wieder: Der oben definierte OptionKey (hier: DemosCreated), dann die drei # und anschließend der Suchparameter (hier: Queues). Da man laut Dokumentation mehrere Queues bei der Suche angeben kann, kommt hier ein Systemkonfigurationsparameter mit einem Array zum Einsatz.

Wäre das Suchkriterium eine ganz bestimmte Kundennummer, dann würde die Option so aussehen:

<Setting Name="DemosCreated###CustomerID" Required="0" Valid="1">
    <Description Translatable="1">Tickets for demo instances are in these queues</Description>
    <Navigation>DemosCreated</Navigation>
    <Value>
        <String Regex="">die_kundennummer</String>
    </Value>
</Setting>

Ist die Datei gespeichert, darf man nicht vergessen, die Konfiguration neu zu bauen:

perl bin/otrs.Console.pl Maint::Config::Rebuild

Eigene Statistik-Widgets erstellen

Irgendwann wird aber auch jede Statistik unübersichtlich. Wenn zu viele Kurven dargestellt werden, kann man nicht mehr erkennen, was was bedeutet. Dann wird es Zeit, die Kurven in verschiedene Widgets aufzuteilen.

Eigene Statistik-Widgets zu erstellen ist ziemlich einfach. Legen Sie einfach eine eigene Konfigurationsdatei in Kernel/Config/Files/XML/ an. z.B. MyDashboardStats.xml.

<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="2.0" init="Application">
    <Setting Name="DashboardBackend###257-MyDashboardStats" Required="0" Valid="1">
        <Description Translatable="1">...</Description>
        <Navigation>Frontend::Agent::View::Dashboard</Navigation>
        <Value>
            <Hash>
                <Item Key="Module">Kernel::Output::HTML::Dashboard::TicketStatsGeneric</Item>
                <Item Key="SysConfigBase">MyStats</Item>
                <Item Key="Title">KPI Stats</Item>
                <Item Key="Created">0</Item>
                <Item Key="Closed">0</Item>
                <Item Key="Permission">rw</Item>
                <Item Key="Block">ContentSmall</Item>
                <Item Key="Group"></Item>
                <Item Key="Default">1</Item>
                <Item Key="CacheTTL">30</Item>
                <Item Key="Mandatory">0</Item>
            </Hash>
        </Value>
    </Setting>
    <!--
        Hier die Settingsblöcke für die Kurven
        wie oben beschrieben
    --> 
</otrs_config>

Ist die Datei gespeichert, darf man nicht vergessen, die Konfiguration neu zu bauen:

perl bin/otrs.Console.pl Maint::Config::Rebuild

Im nächsten Artikel werden wir ein Plugin für dieses Addon vorstellen, mit dem CSV-Daten in den Graphen dargestellt werden können.

Haben Sie noch Fragen, Wünsche oder Anregungen? Die können Sie gerne an uns schicken.

Permalink:

Archiv