Widgetkonfiguration
Eine Widget-Konfiguration besteht ebenfalls aus drei unterschiedlichen Teilen.
Durch die widgetId
wird das Widget auf dem Dashboard platziert.
Der Bereich itemView/chart
bestimmt den Titel und Widgettyp.
Im Bereich item_query/aggregation_query
wird die Query definiert, die anschließend für die Anfrage der Daten an Elasticsearch gesendet wird.
Required Bundles
Um in der Konfiguration eines Dashboards auf die Standard Widgets zugreifen zu können, die Teil der Auslieferung sind, ist es notwendig, in der manifest.json
Wenn Custom Widgets genutzt werden sollen, so sind deren Bundles hier ebenfalls einzubinden. |
Beispiel für eine Widget Konfiguration:
"config": {
"dashboards": [
{
...
}
],
"widgets": [
{
"widgetId": "myAppStartsWidget",
"itemView": {
"title": "App starts in last hour",
"type": "Counter"
},
"item_query": {
"refresh": true,
"query": "event_name:App AND event_action:Started AND app_id:analyticssampleapp",
"time": {
"rangetype": "relative",
"relative": 60
}
}
}
]
}
Die folgenden Eigenschaften können sich in zukünftigen Produktversionen ändern. |
Item query widgets
Diese Widgets stellen das Ergebnis von Anfragen zu unmodifizierter Einträgen dar. Die Ergebnisse können in einer Tabelle oder in Form eines Counter dargestellt werden.
item_query
Definiert die Query für die Anfrage an den Elasticsearch-Index.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
refresh |
Boolean | Number |
no |
|
Bestimmt, ob das Widget automatisch aktualisiert werden soll. Ist der Wert auf true gesetzt, so wird das Widget alle 60 Sekunden neu geladen. Alternativ kann ein numerischer Wert in Millisekunden angegeben werden. |
query |
String |
yes |
Definiert die Elasticsearch-Query.
Für weitere Information über die Syntax, siehe Elastic Docu . |
|
time |
JSON Object |
no |
Definiert ein Zeitintervall in Millisekunden für den Betrachtungszeitraum der angeforderten Daten.
|
|
ignorePreProcessor |
Boolean |
no |
|
Wenn So kann gesteuert werden, ob beispielsweise eine auf dem Dashboard gesetzte Einschränkung der Daten für dieses Widget/diese Query greift |
itemView
Definiert die Darstellung der angeforderten Daten.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
title |
String |
yes |
Definiert einen Titel der über dem Widget angezeigt wird |
|
subtitle |
String |
no |
Kann für die fachliche Beschreibung einer Abfrage eines Widgets verwendet werden. |
|
type |
String |
yes |
Definiert die Darstellung der Daten. Mögliche Werte sind:
|
Aggregierterte Query Widgets
Diese Widgets stellen das Ergebnis einer aggregierten Anfrage dar. Die Ergebnisse können als Balken- oder Tortendiagramm dargestellt werden. Eine aggregierte Anfrage ist eine Anfrage der distinkten Werte eines bestimmten Feldes.
aggregation_query
Definiert die Query für die Anfrage an den Elasticsearch-Index.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
refresh |
Boolean | Number |
no |
|
Bestimmt, ob das Widget automatisch aktualisiert werden soll.
Ist der Wert auf Alternativ kann ein numerischer Wert in Millisekunden angegeben werden. |
query |
String |
yes |
Definiert die Elasticsearch-Query.
Für weitere Information über die Syntax, siehe Elastic Docu |
|
queryField |
String |
no |
Das Indexfeld für die Aggregation. |
|
distinctValues |
Number |
no |
Die Anzahl der unterschiedlich dargestellten Werte. Alle anderen Werte werden unter "others" gruppiert. |
|
order |
JSON Object |
no |
Erlaubt eine aufsteigende oder absteigende Sortierung über ein bestimmtes Feld.
|
|
time |
JSON Object |
no |
Definiert ein Zeitintervall in Millisekunden für den Betrachtungszeitraum der angeforderten Daten.
|
|
ignorePreProcessor |
Boolean |
no |
|
Wenn So kann gesteuert werden, ob beispielsweise eine auf dem Dashboard gesetzte Einschränkung der Daten für dieses Widget/diese Query greift. |
chart
Definiert die Darstellung der angeforderten Daten.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
title |
String |
yes |
Definiert einen Titel der über dem Widget angezeigt wird |
|
subtitle |
String |
no |
Kann für die fachliche Beschreibung einer Abfrage eines Widgets verwendet werden. Text wird über das Info-Icon im Widget-Header eingeblendet (Pie Chart und Column Chart). |
|
type |
String |
yes |
"Pie", "Columns", "Histogram" |
|
openTableOnStartup |
Boolean |
no |
|
Bestimmt, ob eine Tabelle der Werte initial unter dem Charting Widget dargestellt werden soll. |
fillColor |
String |
no |
|
Bestimmt die Hintergrund-Farbe einzelner Balken des Histogram Charts |
borderColor |
String |
no |
|
Bestimmt die Rand-Farbe einzelner Balken des Histogram Charts |
Separator Widget
Das Separator Widget ist ein Widget ohne Query. Es kann genutzt werden um andere Widgets zu gruppieren oder zu trennen.
QueryParamSelector Widget
Das QueryParamSelector Widget wird genutzt, um für ein Dashboard die abgesetzten Queries um bestimmte Parameter zu erweitern und so die dargestellten Daten einzuschränken (z.B. um die Daten eines Dashboards auf bestimmte App-Ids einzugrenzen).
selector_value_query
Über diese Query werden die möglichen Daten für eine Einschränkung auf einem Feld bestimmt,
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
distinctValues |
Number |
yes |
|
Die Anzahl der unterschiedlichen, auswählbaren Werte für ein Feld. |
sort |
String |
no |
|
Default sorting of entries is alphabetically ascending. Add "sort":"count" to have a sorting by count descending. |
queryField |
String |
yes |
Name of the field to get aggregated values from, I.E. app_id.raw |
TimeRangeSelector
Das TimeRangeSelector Widget wird genutzt um für ein Dashboard die dargestellten Daten entweder auf relative Zeiträume (z.B. die letzten 7 Tage) oder auf absolute Zeiträume mit einem Start- und Enddatum (z.B. von 01.01.2015 bis 01.04.2015) einzugrenzen.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
type |
String |
yes |
"TimeRangeSelector" |
|
title |
String |
no |
Definiert ob ein Titel dargestellt werden soll |
|
showRelative |
Boolean |
no |
|
Zeigt oder versteckt die relative Zeitauswahl. |
showAbsolute |
Boolean |
no |
|
Zeigt oder versteckt die absolute Zeitauswahl. |
preSelectedRelativeTime |
String |
no |
|
Definiert welcher Wert der relativen Zeitauswahl vorausgewählt ist.
Diese Eigenschaft wird ignoriert, wenn die Eigenschaft Auswählbare Werte sind: |
Heatmap Widget
Das Heatmap Widget stellt eine räumliche Karte dar, welche die angefragten Positionen als Hot Spots darstellt.
Bitte beachten Sie, dass das Widget keine Koordinatentransformation durchführt.
Dies bedeutet, dass die definierte Anfrage das Raumbezugssystem der Karte vorgibt.
Die karten-spezifische Konfiguration wie center und extent müssen das Raumbezugssystem berücksichtigen.
|
{
"widgetId": "myheatmap",
"itemView": {
"title": "My Heat Map",
"subtitle": "Shows a map of all map extents",
"type": "heatmap"
},
"item_query": {
// Karten-Aktualisierung findet alle 60 Sekunden statt.
// Wenn man eine Nummer angibt, so wird die Zeit in Millisekunden definiert.
Der Wert "false" definiert keine Updates.
"refresh": true,
// Die räumliche Daten-Anfrage
"query": "event_name:\"Map Extent\" AND event_action:Changed AND extent.lod:[6 TO *]",
// Das Raumbezugssystem der Anfrage und Karte
"srs": 3857,
// Dies wird benötigt da es zusammen mit "itemCount" definiert, das die neuesten 2000 Elemente dargestellt werden
"sort": {
"sortField": "event_timestamp",
"order": "desc"
},
// Nur 2000 Elemente sollen durch die Anfrage geliefert werden
"itemCount": 2000
}
}
Über den itemView
Abschnitt kann auch eine andere Hintergrundkarte definiert werden:
{
"itemView": {
...
"type": "heatmap",
"map" : {
// Der Name einer bekannten Basemap.
// Diese Variante benötigt das Raumbezugssystem 3857 (Webmercator).
// Siehe: https://developers.arcgis.com/javascript/3/jsapi/esri.basemaps-amd.html
// für eine Liste von Namen.
// Der Standard ist "dark-grey".
"basemap": "ocean",
// Der Wert kann auch eine URL auf einen MapServer sein
"basemap": "https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer"
// Wenn basemap als URL definiert ist und es sich um einen gekachelten Dienst handelt, so muss dies hier extra definiert werden.
// Ansonsten wird der Dienst immer als dynamischer Kartendienst eingeladen.
"basemapIsTiled": true
}
}
}
Über den itemView
Abschnitt kann auch der automatische Zoom, sowie die initiale Ausdehnung verändert werden:
{
"itemView": {
...
"type": "heatmap",
// Deaktivierung des automatischen Zooms auf die Elemente.
"zoomToExtent": false,
"map" : {
// Um die initialen Ausschnitt zu definieren kann eine Kombination aus "center" und "zoom" oder "scale" verwendet werden
"center": {
"x": 1100000,
"y": 6600000
},
// Der Zoom-Level, dies benötigt einen gekachelten Hintergrund-Dienst
"zoom": 5,
// Dies definiert den Kartenmaßstab.
// Bitte immer nur "zoom" oder "scale" verwenden!
"scale" : 50000,
// Alternativ zu "center" kann explizit ein Ausschnitt definiert werden
"extent" : {
"xmax": 1494955.3992009945,
"xmin": 0,
"ymax": 7252478.179392477,
"ymin": 5685740.342497744
}
}
}
}
Eventstream Widget
Das Eventstream Widget ermöglicht die Darstellung von Interaktionsabfolgen eines Nutzers in einer Art Fluss-Diagram.
Es wird empfohlen, dieses Widget in Kombination mit einem oder mehreren QueryParamSelector
Widgets zu verwenden, um eine sinnvolle Darstellung zu ermöglichen.
itemView
Definiert die Darstellung der angeforderten Daten.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
type |
String |
yes |
"Eventstream" |
|
title |
String |
no |
Definiert ob ein Titel dargestellt werden soll |
|
subtitle |
String |
no |
Kann für die fachliche Beschreibung einer Abfrage eines Widgets verwendet werden. Text wird über das Info-Icon im Widget-Header eingeblendet |
|
streamWidth |
Number |
no |
|
Definiert die Breite der Anzeigegrafik innerhalb des Widgets |
streamHeight |
Number |
no |
|
Definiert die Höhe der Anzeigegrafik innerhalb des Widgets |
widgetWidth |
Number |
no |
|
Definiert die eigentliche Breite des Widgets |
widgetHeight |
Number |
no |
|
Definiert die eigentliche Höhe des Widgets |
session_query
Definiert die Query für die Anfrage an den Elasticsearch-Index.
Property | Type | Mandatory | Default | Description |
---|---|---|---|---|
refresh |
Boolean | Number |
no |
|
Bestimmt, ob das Widget automatisch aktualisiert werden soll. Ist der Wert auf true gesetzt, so wird das Widget alle 60 Sekunden neu geladen. Alternativ kann ein numerischer Wert in Millisekunden angegeben werden. |
query |
String |
yes |
|
Definiert die Elasticsearch-Query.
Für weitere Information über die Syntax, siehe Elastic Doku |
returnFields |
String Array |
yes |
|
Die Rückgabefelder der Abfrage |
displayFields |
String Array |
yes |
|
Die Anzeigefelder der Abfrage |
eventMapping |
Array of JSON Objects |
no |
|
Ordnet unbekannten Events eine "sprechende" Beschreibung zu. |
user_key |
String |
yes |
|
Index-Feld zur Zuordnung des Nutzeridentifikators |
session_key |
String |
yes |
|
Index-Feld zur Zuordnung des Sessionidentifikators |
max_users |
Number |
no |
|
Filter-Attribut zur Dateneinschränkung |
max_usersessions |
Number |
no |
|
Filter-Attribut zur Dateneinschränkung |
max_sessionevents |
Number |
no |
|
Filter-Attribut zur Dateneinschränkung |
sort |
JSON Object |
no |
|
Erlaubt eine aufsteigende oder absteigende Sortierung über ein bestimmtes Feld. |