alessiosavi
alessiosavi

Reputation: 3055

Basic where clause with InfluxDB and Grafana

I'm struggling with a real simple task:
Make a SELECT property_a WHERE property_b == "my_value" using InfluxDB.

I have have the following datastruct:

type RegionsJsonData struct {
    Data                      string  `json:"data"`
    Stato                     string  `json:"stato"`
    CodiceRegione             int     `json:"codice_regione"`
    DenominazioneRegione      string  `json:"denominazione_regione"`
    Lat                       float64 `json:"lat"`
    Long                      float64 `json:"long"`
    RicoveratiConSintomi      int     `json:"ricoverati_con_sintomi"`
    TerapiaIntensiva          int     `json:"terapia_intensiva"`
    TotaleOspedalizzati       int     `json:"totale_ospedalizzati"`
    IsolamentoDomiciliare     int     `json:"isolamento_domiciliare"`
    TotaleAttualmentePositivi int     `json:"totale_attualmente_positivi"`
    NuoviAttualmentePositivi  int     `json:"nuovi_attualmente_positivi"`
    DimessiGuariti            int     `json:"dimessi_guariti"`
    Deceduti                  int     `json:"deceduti"`
    TotaleCasi                int     `json:"totale_casi"`
    Tamponi                   int     `json:"tamponi"`
    Datetime                  time.Time
}

This structure will be populated with some data, than i insert the struct into InfluxDB with the following statement:

var m map[string]interface{} = make(map[string]interface{})
m["codice_regione"] = provinceData[i].CodiceRegione
m["denominazione_regione"] = provinceData[i].DenominazioneRegione
m["lat"] = provinceData[i].Lat
m["long"] = provinceData[i].Long
m["ricoverati_con_sintomi"] = provinceData[i].RicoveratiConSintomi
m["terapia_intensiva"] = provinceData[i].TerapiaIntensiva
m["totale_ospedalizzati"] = provinceData[i].TotaleOspedalizzati
m["isolamento_domiciliare"] = provinceData[i].IsolamentoDomiciliare
m["totale_attualmente_positivi"] = provinceData[i].TotaleAttualmentePositivi
m["nuovi_attualmente_positivi"] = provinceData[i].NuoviAttualmentePositivi
m["dimessi_guariti"] = provinceData[i].DimessiGuariti
m["deceduti"] = provinceData[i].Deceduti
m["totale_casi"] = provinceData[i].TotaleCasi
m["tamponi"] = provinceData[i].Tamponi

pts[i] = client.Point{
    Measurement: "regions_data",
    Tags:        nil,
    Time:        provinceData[i].Datetime,
    Fields:      m}

The data are inserted into InfluxDB, I'm able to display some graph using Grafana. However, i need to create a graph for every "denominazione_regione" field.

So, from Grafana, I've made the following query:

Grafana query

But unfortunately no data are displayed, am i missing something?

How to make a WHERE clause from Grafana using InfluxDB?

Upvotes: 1

Views: 1623

Answers (1)

alessiosavi
alessiosavi

Reputation: 3055

As pointed by @JanGaraj, if you want to make some query you need to save the field as a tag as following:

var m map[string]interface{} = make(map[string]interface{})
m["total_deaths"] = worldData[i].TotalDeaths
m["total_cases"] = worldData[i].TotalCases
m["new_deaths"] = worldData[i].NewDeaths
m["new_cases"] = worldData[i].NewCases

pts[i] = client.Point{
    Measurement: "all_world_data",
    Tags:        map[string]string{"nation": worldData[i].State},
    Time:        worldData[i].Date,
    Fields:      m}

Than you can run a query as following: enter image description here

Upvotes: 1

Related Questions