Consultas com Intervalo de Tempo no ElasticSearch via Kibana

Exemplos de consultas no ElasticSearch usando o console do Kibana

Consultas com filtro por intevralo temporal e agregações estatísticas.

Definição de Índice com Campo de Data


PUT logs_eventos
{
  "mappings": {
    "properties": {
      "timestamp_evento": {
        "type": "date",
        "format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ||epoch_millis",
        "doc_values": true
      }
    }
  }
}

Consulta com Filtro Temporal e Agregações


GET logs_eventos/_search
{
  "query": {
    "bool": {
      "filter": [
        { "term": { "codigo_operacao": "OP-789A" } },
        {
          "range": {
            "timestamp_evento": {
              "gte": "2023-05-20T10:00:00",
              "lte": "2023-05-20T10:30:00",
              "time_zone": "Europe/Lisbon"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "estatisticas_tempo": {
      "stats": { "field": "duracao_ms" }
    }
  }
}

Agregação por Termo com Múltiplas Métricas


GET logs_eventos/_search
{
  "size": 0,
  "query": {
    "bool": {
      "filter": {
        "range": {
          "timestamp_evento": {
            "gte": "now-1h",
            "lte": "now"
          }
        }
      }
    }
  },
  "aggs": {
    "por_codigo": {
      "terms": {
        "field": "codigo_operacao.keyword",
        "size": 20
      },
      "aggs": {
        "max_duracao": { "max": { "field": "duracao_ms" } },
        "min_duracao": { "min": { "field": "duracao_ms" } },
        "media_duracao": { "avg": { "field": "duracao_ms" } }
      }
    }
  }
}

Ordenação de Agregações por Métrica


GET logs_eventos/_search
{
  "size": 0,
  "query": {
    "bool": {
      "must": { "term": { "sucesso": true } },
      "filter": {
        "range": {
          "timestamp_evento": {
            "gte": "2023-05-20T00:00:00",
            "lt": "2023-05-21T00:00:00"
          }
        }
      }
    }
  },
  "aggs": {
    "operacoes_ordenadas": {
      "terms": {
        "field": "codigo_operacao.keyword",
        "order": { "tempo_medio": "desc" },
        "size": 10
      },
      "aggs": {
        "tempo_medio": { "avg": { "field": "duracao_ms" } }
      }
    }
  }
}

Ordenação por Chave e Contagem


GET logs_eventos/_search
{
  "size": 0,
  "aggs": {
    "periodo_historico": {
      "date_histogram": {
        "field": "timestamp_evento",
        "calendar_interval": "hour",
        "format": "yyyy-MM-dd HH:mm",
        "min_doc_count": 1,
        "order": { "_key": "asc" }
      },
      "aggs": {
        "volume_operacoes": {
          "value_count": { "field": "codigo_operacao.keyword" }
        }
      }
    }
  }
}

Tags: elasticsearch Kibana DSL de Consulta Agregações Intervalo de Tempo

Publicado em 6-10 18:00 por Thomas