Configuration overview
### Widgety
Příklad widgetu v konfiguračním souboru:
"Dashboard:widget:somewidget": {
"datasource": "Dashboard:datasource:elastic",
"type": "Value",
"field": "some.variable",
"title": "Nějaký název",
"layout:w": 2,
"layout:h": 1,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Widget s hodnotou¶
Běžně se používá k zobrazení jedné hodnoty, i když může také zobrazit datetime a filtrovaný widget hodnoty najednou. ``` { ...
"Dashboard:widget:valuewidget": {
// Základní nastavení
"datasource": "Dashboard:datasource:elastic",
"type": "Value", // Typ widgetu
"field": "some.variable", // Pole (hodnota) zobrazené ve widgetu
"title": "Nějaký název", // Název widgetu
// Pokročilé nastavení (volitelné)
"onlyDateResult": true, // Zobrazit pouze datum s časem
"units": "GB", // Jednotky hodnoty pole
"displayWidgetDateTime": true, // Zobrazit datum a čas ve widgetu pod hodnotou
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
// Zlidnění hodnoty (může být použito k transformaci hodnot do čitelné formy pro člověka, např. bajty na GB) (volitelné)
"humanize": true, // Povolit komponentu Humanize
"base": 1024, // Základ pro přepočet hodnoty pro komponentu Humanize
"decimals": 3, // Zaokrouhlit hodnotu na n číslic v komponentě Humanize
"displayUnits": true, // Zobrazit prefix jednotky velikosti (např. k, M, T,...) v komponentě Humanize
// Nastavení rozvržení
"layout:w": 2,
"layout:h": 1,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Widget s vícero hodnotami¶
Používá se k zobrazení více hodnot v jednom widgetu. ``` { ...
"Dashboard:widget:mutliplevaluewidget": {
// Základní nastavení
"datasource": "Dashboard:datasource:elastic",
"type": "MultipleValue", // Typ widgetu
"field:1": "some.variable1", // Pole (hodnoty) zobrazené ve widgetu
"field:2": "some.variable2", // Počet polí je neomezený
"field:3": "date.time",
"title": "Nějaký název", // Název widgetu
// Pokročilé nastavení (volitelné)
"units": "GB", // Jednotky hodnot polí
"displayWidgetDateTime": true, // Zobrazit datum a čas ve widgetu pod hodnotou
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
// Zlidnění hodnoty (může být použito k transformaci hodnot do čitelné formy pro člověka, např. bajty na GB) (volitelné)
"humanize": true, // Povolit komponentu Humanize
"base": 1024, // Základ pro přepočet hodnoty pro komponentu Humanize
"decimals": 3, // Zaokrouhlit hodnotu na n číslic v komponentě Humanize
"displayUnits": true, // Zobrazit prefix jednotky velikosti (např. k, M, T,...) v komponentě Humanize
// Nastavení rozvržení
"layout:w": 2,
"layout:h": 1,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Widget indikátoru stavu¶
Používá se k zobrazení hodnoty a barvy stavu na základě překročení / nedosažení limitních hodnot. Jeho jádro je podobné widgetu hodnoty. Existují 2 typy nastavení - jedno je pro zobrazení barev na základě rozsahu čísel, druhé je založeno na zobrazení hodnot na základě řetězce. Rozsah čísel ``` { ...
"Dashboard:widget:indicatorwidget": {
// Základní nastavení
"datasource": "Dashboard:datasource:elastic",
"type": "StatusIndicator", // Typ widgetu
"field": "some.variable", // Pole (hodnota) zobrazené ve widgetu
"title": "Nějaký název", // Název widgetu
"lowerBound": 4000, // Dolní limit
"upperBound": 5000, // Horní limit
// Pokročilé nastavení (volitelné)
"lowerBoundColor": "#a9f75f", // Barva dolního limitu
"betweenBoundColor": "#ffc433", // Barva mezi limity
"upperBoundColor": "#C70039 ", // Barva horního limitu
"nodataBoundColor": "#cfcfcf", // Barva bez dat
"units": "GB", // Jednotky hodnoty pole
"displayWidgetDateTime": true, // Zobrazit datum a čas ve widgetu pod hodnotou
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
// Nastavení rozvržení
"layout:w": 2,
"layout:h": 1,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Tabulkový widget¶
Používá se k zobrazení více hodnot ve formě tabulky. ``` { ...
"Dashboard:widget:tablewidget": {
// Základní nastavení
"datasource": "Dashboard:datasource:elastic",
"type": "Table", // Typ widgetu
"field:1": "@timestamp", // Pole (hodnoty) zobrazené ve widgetu
"field:2": "event.dataset", // Počet polí je neomezený
"field:3": "host.hostname", // Pole také ukazuje položky zobrazené v záhlaví tabulky
"title": "Nějaký název", // Název widgetu
// Pokročilé nastavení (volitelné)
"dataPerPage": 5, // Počet dat na stránku
"disablePagination": true, // Zakázat stránkování
"units": "GB", // Jednotky hodnoty pole
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
// Nastavení rozvržení
"layout:w": 3,
"layout:h": 3,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Widget nástrojů¶
Je podobný modulu Nástroje ASAB WebUI, ale transformovaný na widget pro použití v dashboardu. ``` { ...
"Dashboard:widget:toolswidget": {
// Základní nastavení
"type": "Tools", // Typ widgetu
"title": "BitSwan", // Název widgetu
"redirectUrl": "http://www.teskalabs.com", // URL pro přesměrování
"image": "tools/bitswan.svg", // Umístění obrázku Nástrojů (může být také base64 obrázkový řetězec místo cesty k umístění)
// Nastavení rozvržení
"layout:w": 1,
"layout:h": 1,
"layout:x": 0,
"layout:y": 0
},
...
} ```
Markdown widget¶
Běžně se používá k úpravě a zobrazení psaného popisu ve formátu Markdown. Tento widget umožňuje uživateli upravit a uložit popis např. konkrétního dashboardu pro širší vysvětlení.
Pro úpravy musí mít uživatel alespoň prostředek dashboards:admin
.
```
{
...
"Dashboard:widget:mdwidget": {
// Základní nastavení
"type": "Markdown", // Typ widgetu
"title": "Nějaký název", // Název widgetu
// Pokročilé nastavení (volitelné)
"description": "Nějaký popis", // Zobrazit popis v markdown
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
// Nastavení rozvržení
"layout:w": 2,
"layout:h": 1,
"layout:x": 0,
"layout:y": 1
},
...
} ```
Widgety grafů¶
Používají se k zobrazení hodnot ve formě grafu. Pro více informací o použité knihovně grafů, prosím, následujte tento odkaz
Přesměrování na obrazovku Objevit¶
Widgety PieChart a BarChart nabízejí možnost přesměrování na obrazovku Objevit jako výchozí.
Tato funkce filtruje na vybranou hodnotu v grafu a přesměrovává na obrazovku Objevit. Je dostupná pouze pro seskupená data (nastavení groupBy
v nastavení datasource). Může být zakázána nastavením "disableRedirection": true
ve widgetu.
Když se používá více konfigurací v Objevit, lze ve widgetu specifikovat název konfigurace, který bude použit při přesměrování pro filtrování na správnou konfiguraci. Pokud se v jedné aplikaci používá více konfigurací Objevit, doporučuje se specifikovat názvy konfigurací v rámci widgetů, aby se předešlo přesměrování na nesprávné konfigurace a datasourcy v Objevit. Lze to nastavit pomocí vlastnosti widgetu "configName": "<discover-config-name>"
>>> kde <discover-config-name>
je název souboru konfigurace Objevit bez přípony, např. some-config.json
>>> "configName": "some-config"
.
Poznámka: Přesměrování odstraní všechny předtím filtrované položky a upraví časový rozsah uložený v místním úložišti pro obrazovku Objevit podle vybraného v grafu dashboardu.
Barvy widgetu grafu¶
Všechny grafy nabízejí možnost být zobrazeny s jedním z předdefinovaných barevných schémat.
Barevné spektrum se liší na základě typu grafu.
Pokud není specifikována žádná nebo špatná barva, použije se default
barevné spektrum.
Barva je specifikována proměnnou color
v nastavení widgetu:
"Dashboard:widget:barchartwidget": {
"datasource": "Dashboard:datasource:elastic",
"type": "BarChart",
"title": "Nějaký název",
...
"color": "sunset",
...
},
- PieChart
- pro gradientní barevné spektrum - sunset
, secondary
, safe
, warning
, danger
, default
- pro smíšené barevné spektrum -
cold
, rainbow
, default
- BarChart a ostatní
- jednofarebné spektrum -
sunset
, safe
, warning
, danger
, default
Widget BarChart¶
``` { ...
"Dashboard:widget:barchartwidget": {
// Základní nastavení
"datasource": "Dashboard:datasource:elastic",
"type": "BarChart", // Typ widgetu
"title": "Nějaký název", // Název widgetu
"xaxis": "@timestamp", // Hodnoty zobrazené na ose x
"yaxis": "request.bytes", // Hodnoty zobrazené na ose y
// Pokročilé nastavení (volitelné)
"table": true, // Umožňuje zobrazit tabulku místo grafu (po kliknutí na tlačítko)
"xlabel": "časová značka", // popis osy x, výchozí je datetime
"ylabel": "bajty", // popis osy y
"xaxisUnit": "ts", // jednotky osy x
"yaxisUnit": "byte", // jednotky osy y
"xaxisDomain": ['auto', 'auto'], // Rozsah zobrazení na ose x (výchozí [0, 'auto'])
"yaxisDomain": ['auto', 'auto'], // Rozsah zobrazení na ose y (výchozí [0, 'auto'])
"horizontal": true, // Umožňuje zobrazení grafu horizontálně
"width": "50%", // Šířka grafu ve widgetu
"height": "50%", // Výška grafu ve widgetu
"convertBy": 1000, // Hodnoty grafu budou děleny tímto číslem. Slouží k přepočtu dat na např. MHz, GB atd.
"hint": "Nějaká nápověda", // Zobrazit nápovědu widgetu
"disableRedirection": true, // Zakázat přesměrování na obrazovku Objevit (pouze pro BarChart)
"configName": "config-name", // Název konkrétní konfigurace Objevit (pouze pro BarChart)
"color": "safe", // Specifikace barvy widgetu
// Nastavení rozvržení
"layout:w": 6,
"layout:h": 3,
"layout:x": 0,
"layout:y": 0
},
...
}
Chcete-li zobrazit agregaci v grafu, je třeba ji nastavit v nastavení zdroje dat:
{
...
"Dashboard:datasource:elastic": {
// Základní nastavení
"type": "elasticsearch",
"datetimeField": "@timestamp",
"specification": "es-pattern*",
"aggregateResult": true // Pouze pro grafy - bude žádat ES o agregované hodnoty (volitelné)
},
...
} ```
Widget ScatterChart¶
Nastavení tohoto widgetu je stejné jako u widgetu BarChart. ``` { ...
"Dashboard:widget:scatterchartwidget": {
// Základní nastavení
...
"type": "ScatterChart", // Typ widgetu
...
},
...
} ```
Widget AreaChart¶
Nastavení tohoto widgetu je stejné jako u widgetu BarChart. ``` { ...
"Dashboard:widget:areachartwidget": {
// Základní nastavení
...
"type": "AreaChart", // Typ widgetu
...
},
...
}
##### Widget LineChart
Nastavení tohoto widgetu je stejné jako u widgetu BarChart.
"Dashboard:widget:linechartwidget": {
// Základní nastavení
...
"type": "LineChart", // Typ widgetu
...
},
...
}
##### Widget Stacked BarChart
**Skupinový graf**
Nastavení zdroje dat:
"Dashboard:datasource:elastic-stacked": {
// Základní nastavení
"type": "elasticsearch",
"datetimeField": "@timestamp",
"specification": "pattern*",
"groupBy": [
"sender.address",
"recipient.address"
],
"size": 100, // Definujte maximální velikost skupiny (výchozí je top 20)
"stackSize": 100 // Definujte maximální velikost stohovaných událostí (výchozí je top 50)
// Pokročilé nastavení
"matchPhrase": "event.dataset