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" }
}
}
}
}
}