Dashboardkonfiguration

Einführung

Der service.monitor Analytics wird standardmäßig mit einigen vorkonfigurierten Dashboards ausgeliefert, die bereits eine Vielzahl von Statistiken der analysierten map.apps Installation zeigen. Neben diesen Standard-Dashboards ist es möglich, eigene Alternativen zu konfigurieren. Die Dashboard-Konfiguration wird durch ein Bundle in map.apps bereitgestellt und kann durch die manifest.json angepasst werden.

Dashboard Configuration Component

Ein Dashboard-Konfigurations-Bundle hat eine Komponente, welche die Schnittstelle usagelog_management.DashboardConfig registriert:

manifest.json (excerpt)
{
    // Der Name des Bundles
    "Bundle-SymbolicName": "my-dashboard",
    // Die Version
    Bundle-Version": "0.0.1",

     // In dem Fall wird kein i18n benötigt
    "Bundle-Layer": "",
    "Bundle-Main": "",
    "Bundle-Localization": [],

    // Dies definiert, das das Dashboard die Standard-Widgets benötigt
    "Require-Bundle": [{
            "name": "usagelog_management_widgets"
        }],

    "Components": [{
            "name": "DashboardConfig",
            // Eine Konfiguration ist ein einfaches Objekt mit einer Eigenschaft "config".
            "impl": "ct/Stateful",

            // Dies identifiziert die Dashboard-Konfiguration im System
            "provides": ["usagelog_management.DashboardConfig"],

            "propertiesConstructor": true,
            "properties": {

                // Hier die eigentliche Dashboard-Konfiguration
                "config": {
                    "dashboards": [...],
                    "widgets": [...]
                }
            }
        }
    ]
}

Dashboards

Jedes Dashboard besteht aus drei unterschiedlichen Teilen.
Die ersten beiden (title und iconClass) werden für die Darstellung der Menü-Optionen im map.apps Manager benötigt. Der dritte Bereich ist eine einfache Liste der widgetIds, die in einem seperaten Bereich unterhalb definiert werden.

manifest.json (excerpt)
"config": {
  "dashboards": [
    {
      "title": "My custom dashboard",
      "iconClass": "icon-users",
      "widgetIds": [
        "myAppStartsWidget",
        "myAppsWidget",
        "myVisitorsWidget"
      ]
    }
  ],
  "widgets": [
    {
      ...
    }
  ]
}