2016-11-11 2 views
1

In ElasticSearch habe ich einige Beispieldaten, gegen die ich die Liniendiagramme in Kibana 4 visualisieren möchte. Beispiele in ElasticSearch sehen so aus:Wie erstellt man ein Liniendiagramm basierend auf Spaltenwert anstelle des Spaltennamens in Kibana

"_id": "AVhNy_dxcW7axK5BvIEO", 
    "timeStamp": "2016-11-11T05:39:10.5844951Z", 
    "analyticSource": [ 
         { 
         "analyticId": "A", 
         "analyticUnit": "sec", 
         "analyticValue": 0.22743704915046692 
         }, 
         { 
         "analyticId": "B", 
         "analyticUnit": "sec", 
         "analyticValue": 0.14946113526821136 
         }] 

und ein weiteres Beispiel:

"_id": "AVhNxnjscW7axK5Bu-Tl", 
    "timeStamp": "2016-11-11T05:40:10.5954951Z", 
    "analyticSource": [ 
         { 
         "analyticId": "A", 
         "analyticUnit": "sec", 
         "analyticValue": 0.20143736898899078 
         }, 
         { 
         "analyticId": "B", 
         "analyticUnit": "sec", 
         "analyticValue": 0.09747125953435898 
         }] 

Vorerst Kibana nur Handlung Handlung entsprechend dem Spalten-ID und in diesem Fall eine einzige Liniendiagramm für analyticValue aufgetragen ist. Was ich wirklich will, ist 2 Liniendiagramm in Kibana für A und B gegen timestamp zu plotten. Gibt es irgendeine Art von Skript (Abfrage) oder etwas, wo ich Kibana sagen kann, um die analyticValue nach analyticId zu segregieren?

Antwort

1

Objekt zu Array wird nicht auf Kibana 4 unterstützt. Also muss ich das flache Mapping mit analyticId, analyticValue, analyticUnit als Spalten erstellen. Dann aggregiere ich über analyticId und erstellt das Liniendiagramm mit Y-Achse als max analyticValue und in X-Achse ausgewählt Datum Histogramm mit time-stamp. Ich hoffe, dies hilft Nutzern, die hier landen.

Verwandte Themen