Ein Fünftel der Übersetzung der offiziellen Dokumentation zur Datenvisualisierung in Kibana.
Link zum Originalmaterial:
Kibana User Guide [6.6] »VisualisierenLink zu Teil 1:
Kibana Benutzerhandbuch. Visualisierung. Teil 1Link zu Teil 2:
Kibana Benutzerhandbuch. Visualisierung. Teil 2Link zu Teil 3:
Kibana Benutzerhandbuch. Visualisierung. Teil 3Link zu Teil 4:
Kibana Benutzerhandbuch. Visualisierung. Teil 4Link zu Teil 5:
Kibana Benutzerhandbuch. Visualisierung. Teil 5Inhalt:
1. Vega-Diagramme
2. Überprüfen von Visualisierungen
Zählt Vega
Warnung Diese Funktion ist experimentell und kann in einer zukünftigen Version geändert oder entfernt werden. Elastic wird sein Bestes tun, um Probleme zu beheben, aber experimentelle Funktionen werden von den offiziellen GA-Funktionen der SLA nicht unterstützt.
Sie können Visualisierungen von
Vega- und
VegaLite-Daten in Kibana sowohl offline als auch über der Karte
erstellen . Sehen Sie sich dieses
kurze Übersichtsvideo an , um Vega in Aktion zu sehen.
Beginnen Sie mit Vega
Befolgen Sie diese Schritte, um Ihre erste Vega-Visualisierung zu erstellen.
- Wählen Sie in Kibana Visualisieren und fügen Sie eine Vega-Visualisierung hinzu. Sie sollten das Standarddiagramm sehen.
- Versuchen Sie, die
mark
von line
zu point
, area
, bar
, circle
, square
usw. zu ändern (siehe Dokumentation ). - Probieren Sie den Rest der Vega- oder VegaLite-Visualisierungen aus. Möglicherweise müssen Sie die URLs absolut machen, z. B.
"url": "data/world-110m.json"
durch "url": "https://vega.imtqy.com/editor/data/world-110m.json"
ersetzen "url": "https://vega.imtqy.com/editor/data/world-110m.json"
(siehe Hinweis unten). - Erstellen Sie mit dem Dienstprogramm makelogs einige Logstash-Daten und probieren Sie die Logstash-Beispiele aus ( Verwenden Sie keine Makelogs in einem Produktionscluster).
Vega gegen VegaLite
VegaLite ist eine vereinfachte Version von Vega, die für einen schnellen Start nützlich ist, jedoch eine Reihe von Einschränkungen aufweist. VegaLite wird vor der Ausführung automatisch in Vega konvertiert. Vergleichen
Sie logstash-simple_line-vega und
logstash-simple_line-vegalite (beide verwenden einige Logstash-Daten von Elasticsearch). Mit
diesem Editor können Sie VegaLite in Vega konvertieren.
Elasticsearch-Abfragen
Standardmäßig kann ein Vega-
Datenelement interne und externe Daten mit dem Parameter
"url"
. Kibana bietet Unterstützung für direkte Elasticsearch-Abfragen, indem der
"url"
Wert neu
"url"
wird.
Hier ist ein Beispiel für eine Elasticsearch-Abfrage, bei der die Anzahl der Dokumente in allen Indizes gezählt wird. Die Abfrage verwendet das Feld
@timestamp
, um den
@timestamp
zu filtern und in Histogrammsegmente aufzuteilen.
// An object instead of a string for the url value // is treated as a context-aware Elasticsearch query. url: { // Filter the time picker (upper right corner) with this field %timefield%: @timestamp // Apply dashboard context filters when set %context%: true // Which indexes to search index: _all // The body element may contain "aggs" and "query" subfields body: { aggs: { time_buckets: { date_histogram: { // Use date histogram aggregation on @timestamp field field: @timestamp // interval value will depend on the daterange picker // Use an integer to set approximate bucket count interval: { %autointerval%: true } // Make sure we get an entire range, even if it has no data extended_bounds: { min: { %timefilter%: "min" } max: { %timefilter%: "max" } } // Use this for linear (eg line, area) graphs // Without it, empty buckets will not show up min_doc_count: 0 } } } // Speed up the response by only including aggregation results size: 0 } }
Das vollständige Ergebnis hat den folgenden Strukturtyp:
{ "aggregations": { "time_buckets": { "buckets": [{ "key_as_string": "2015-11-30T22:00:00.000Z", "key": 1448920800000, "doc_count": 28 }, { "key_as_string": "2015-11-30T23:00:00.000Z", "key": 1448924400000, "doc_count": 330 }, ...
Beachten Sie, dass
"key"
ein Unix-Zeitstempel ist und ohne Konvertierung durch Vega-Datumsausdrücke verwendet werden kann.
Für die meisten Diagramme benötigen wir nur eine Liste von Segmentwerten. Daher verwenden wir das Ausdrucksformat
format: {property: "aggregations.time_buckets.buckets"}
, um uns nur auf die Daten zu konzentrieren, die wir benötigen.
Die Anforderung kann mit einem individuellen Bereich und einem Kontextinformationsfeld angegeben werden. Diese Abfrage entspricht
"%context%": true, "%timefield%": "@timestamp"
, außer dass der Zeitbereich vor 10 Minuten verschoben wurde.
{ body: { query: { bool: { must: [ // This string will be replaced // with the auto-generated "MUST" clause "%dashboard_context-must_clause%" { range: { // apply timefilter (upper right corner) // to the @timestamp variable @timestamp: { // "%timefilter%" will be replaced with // the current values of the time filter // (from the upper right corner) "%timefilter%": true // Only work with %timefilter% // Shift current timefilter by 10 units back shift: 10 // week, day (default), hour, minute, second unit: minute } } } ] must_not: [ // This string will be replaced with // the auto-generated "MUST-NOT" clause "%dashboard_context-must_not_clause%" ] } } } }
"%timefilter%"
kann auch verwendet werden, um einen einzelnen Minimal- oder Maximalwert zu bestimmen. Wie oben gezeigt, können
extended_bounds
in Date_Histogram mit zwei Werten festgelegt werden - Minimum und Maximum. Anstatt den Wert fest zu codieren, können Sie
"min": {"%timefilter%": "min"}
, das zu Beginn des aktuellen Zeitbereichs überschrieben wird.
shift
und
unit
Werte werden ebenfalls unterstützt. Das "Intervall" kann abhängig vom aktuell ausgewählten Bereich dynamisch eingestellt werden:
"interval": {"%autointerval%": 10}
versucht, ungefähr 10-15 Datenpunkte (Segmente) zu erhalten.
Elastische Kartendateien
Dies ist die Möglichkeit, nach einem bestimmten Mechanismus auf Elastic Map Service-Dateien zuzugreifen.
url: { // "type" defaults to "elasticsearch" otherwise type: emsfile // Name of the file, exactly as in the Region map visualization name: World Countries } // The result is a geojson file, get its features to use // this data source with the "shape" marks // https://vega.imtqy.com/vega/docs/marks/shape/ format: {property: "features"}
Vega mit Karte
Die Kibana-Karte kann standardmäßig als Basis für das Vega-Diagramm verwendet werden. Zum Aktivieren muss das Diagramm in der Hostkonfiguration
type=map
definieren.
{ "config": { "kibana": { "type": "map", // Initial map position "latitude": 40.7, // default 0 "longitude": -74, // default 0 "zoom": 7, // default 2 // defaults to "default". Use false to disable base layer. "mapStyle": false, // default 0 "minZoom": 5, // defaults to the maximum for the given style, // or 25 when base is disabled "maxZoom": 13, // defaults to true, shows +/- buttons to zoom in/out "zoomControl": false, // defaults to true, disables mouse wheel zoom "scrollWheelZoom": false, // When false, repaints on each move frame. // Makes the graph slower when moving the map "delayRepaint": true, // default true } }, /* the rest of Vega JSON */ }
Diese Visualisierung bettet automatisch eine Projektion namens
"projection"
. Verwenden Sie diese Option, um die Position aller geoorientierten Tags zu berechnen. Zusätzlich können Sie Längen- und Breitengrad sowie Skalierung verwenden. Diese Signale können im Diagramm verwendet oder aktualisiert werden, um die Position der Karte zu ändern.
Debuggen
Browser-Debug-Konsole
Verwenden Sie die Browser-Tools zum Debuggen (z. B. F12 oder Strg + Umschalt + J in Chrome), um die Variable
VEGA_DEBUG
zu überprüfen: *
view
- Zugriff auf View the Vega object.
Informationen zum Überprüfen von Daten und Signalen zur Laufzeit finden Sie im
Vega-Debugging-Handbuch . Für VegaLite erhält
VEGA_DEBUG.view.data('source_0')
den Hauptdatensatz. Für Vega wird ein Datenname verwendet, der speziell in Ihrer Vega-Spezifikation enthalten ist. *
vega_spec
Spezifikation des Vega JSON-Diagramms nach einigen Änderungen von Kibana. Im Fall von VegaLite ist dies die Ausgabe des VegaLite-Compilers. *
vegalite_spec
- Wenn es sich um ein VegaLite-Diagramm handelt, die JSON-Spezifikation des Diagramms vor dem Kompilieren von VegaLite
Daten
Wenn Sie eine Elasticsearch-Abfrage verwenden, stellen Sie sicher, dass die empfangenen Daten Ihren Erwartungen entsprechen. Der einfachste Weg, dies zu sehen, ist die Verwendung der Registerkarte "Netzwerk" in den Debugging-Tools Ihres Browsers (z. B. F12). Ändern Sie das Diagramm ein wenig, sodass eine Suchabfrage durchgeführt und die Serverantwort angezeigt wird. Ein anderer Ansatz besteht darin, die Registerkarte
Kibana Dev Tools zu verwenden. Platzieren Sie den
GET <INDEX_NAME>/_search
in der ersten Zeile:
GET <INDEX_NAME>/_search
, und fügen Sie Ihre Abfrage in der nächsten Zeile hinzu (nur der Wert des Felds
"query"
).
Wenn Sie das Diagramm für jemanden
freigeben müssen , können Sie die Antwort der
Datenzeichenfolge auf
gist.github.com kopieren , möglicherweise mit der Erweiterung
.json , die Schaltfläche [raw] verwenden und diese URL direkt in Ihrem Diagramm verwenden.
Fügen Sie der Datei kibana.yml
vega.enableExternalUrls: false
hinzu, um zu verhindern, dass Vega Datenquellen verwendet, die nicht von ES stammen.
Nützliche Links
Verwenden von Vega- und VegaLite-Beispielen
Wenn
Sie die Beispiele Vega und
VegaLite verwenden , müssen Sie den Abschnitt "Daten" ändern, um eine absolute URL zu verwenden. Ersetzen Sie beispielsweise
"url": "data/world-110m.json"
durch
"url": "https://vega.imtqy.com/editor/data/world-110m.json"
. Außerdem verwenden sie in regulären Vega-Beispielen das
"autosize": "pad"
die
"autosize": "pad"
, und Kibana verwendet
fit
. Entfernen Sie alle Werte für
autosize
,
width
und
height
. Siehe unten Abmessungen und Positionierung.
Zusätzliche Konfigurationsoptionen
Diese Optionen sind spezifisch für Kibana. Die Kartenunterstützung bietet zusätzliche Konfigurationsoptionen.
{ config: { kibana: { // Placement of the Vega-defined signal bindings. // Can be `left`, `right`, `top`, or `bottom` (default). controlsLocation: top // Can be `vertical` or `horizontal` (default). controlsDirection: vertical // If true, hides most of Vega and VegaLite warnings hideWarnings: true // Vega renderer to use: `svg` or `canvas` (default) renderer: canvas } } /* the rest of Vega code */ }
Größe und Position
Vega und VegaLite.
Standardmäßig verwenden Vega-Diagramme in Kibana das
autosize = { type: 'fit', contains: 'padding' }
für Vega- und VegaLite-Diagramme. Das
fit
verwendet den gesamten verfügbaren Speicherplatz, ignoriert die Werte für
width
und
height
, berücksichtigt jedoch die Einrückungswerte. Sie können dieses Verhalten überschreiben, indem Sie einen anderen Wert für die
autosize
Größe
autosize
.
Vega auf der Karte.
Alle Vega-Diagramme ignorieren die
autosize
,
width
,
height
und
padding
Verwendung des Null-Einrückungs-
fit
.
Visualisierungsinspektion
Mit vielen Visualisierungen können Sie die der Visualisierung zugrunde liegenden Daten überprüfen.
Um die Visualisierung zu überprüfen, klicken Sie im
Editor auf die Schaltfläche
Überprüfen, oder wählen
Sie im Menü des Dashboard-Bedienfelds die
Option Überprüfen aus.
Der Einstiegsbildschirm zeigt die Basisdaten zur Visualisierung. Sie können Daten als CSV-Datei (
Comma Separated Value) im Format Format oder
Raw laden.
Formatiert lädt Daten im Tabellenformat.
Raw lädt die Daten wie dargestellt - Daten als Zeitstempel, Zahlen ohne tausendste Trennzeichen usw.
Um Anforderungen anzuzeigen, die Daten erfassen, wählen Sie oben rechts im Menü
Ansicht die Option
Anforderungen .
Welche Ansichten verfügbar sind, hängt von der überprüften Visualisierung ab.