O presente artigo tem como objetivo apresentar uma um tutorial para realizar o export do trace através de uma chamada para API do Metrics. O export do trace através da API em questão se torna uma alternativa mais atraente visto que, pela interface do manager existe o limite de 50 MB no tamanho do arquivo que será exportado.
Será necessário realizar sua busca pelo discover do kibana aplicando o filtro que você deseja exportar (Datas, API, APPs...). Em nosso exemplo realizamos uma busca pelas calls realizadas entre o dia 15 e 22 de abril.
Abaixo, segue o passo a passo para realizar essa busca:
1) No discover, após aplicar os filtros, deixe o índice de calls habilitado. Segue a imagem abaixo:
Uma observação importante é que, o índice de calls está disponível apenas por 7 dias ou limitado à 100 GB.
2) Clique no botão indicado na imagem abaixo:
>> Acesse a aba request e copie o json (query) presente.
Note que será exibido um body. Este será o body da requisição que iremos executar, porém teremos que fazer alguns ajustes antes. Veja abaixo:
O campo size (quantidade de calls que serão retornadas na consulta), contém o valor 500. iremos alterar o valor do mesmo para 2000. Veja a imagem abaixo:
Imagem do body original
Imagem do body alterado e inserido no postman
Body alterado que será usado nesse teste
{
"version": true,
"size": 2000,
"sort": [
{
"receivedOnDate": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"_source": {
"excludes": []
},
"aggs": {
"2": {
"date_histogram": {
"field": "receivedOnDate",
"interval": "3h",
"time_zone": "America/Argentina/Buenos_Aires",
"min_doc_count": 1
}
}
},
"stored_fields": [
"*"
],
"script_fields": {},
"docvalue_fields": [
"@timestamp",
"insertedOnDate",
"receivedOnDate"
],
"query": {
"bool": {
"must": [
{
"match_all": {}
},
{
"range": {
"receivedOnDate": {
"gte": 1586919600000,
"lte": 1587610799999,
"format": "epoch_millis"
}
}
}
],
"filter": [],
"should": [],
"must_not": []
}
},
"highlight": {
"pre_tags": [
"@kibana-highlighted-field@"
],
"post_tags": [
"@/kibana-highlighted-field@"
],
"fields": {
"*": {}
},
"fragment_size": 2147483647
}
}
OBS: Alteramos o código para que traga até 2000 chamadas, caso queira aumentar a quantidade de requisições é só altear nesse campo. E se a busca retornar timeout é necessário diminuir a quantidade deste mesmo campo.
Para realizar mais buscas alterando somente a data, modifique o período no kibana e depois atualize no código de acordo com o body exibido (somente o range de data).
3) Feito isso, basta executar a seguinte chamada via postman:
POST para o endereço: https://manager-support.sensedia.com/api-metrics/api/v3/trace/search
Obs: No header da requisição vamos enviar o Content-type: application/json e o sensedia auth.
Segue o curl de exemplo:
curl --location --request POST 'https://manager-support.sensedia.com/api-metrics/api/v3/trace/search' \
--header 'sensedia-auth: XXXXXXXXXXXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"version": true,
"size": 2000,
"sort": [
{
"receivedOnDate": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"_source": {
"excludes": []
},
"aggs": {
"2": {
"date_histogram": {
"field": "receivedOnDate",
"interval": "3h",
"time_zone": "America/Argentina/Buenos_Aires",
"min_doc_count": 1
}
}
},
"stored_fields": [
"*"
],
"script_fields": {},
"docvalue_fields": [
"@timestamp",
"insertedOnDate",
"receivedOnDate"
],
"query": {
"bool": {
"must": [
{
"match_all": {}
},
{
"range": {
"receivedOnDate": {
"gte": 1586919600000,
"lte": 1587610799999,
"format": "epoch_millis"
}
}
}
],
"filter": [],
"should": [],
"must_not": []
}
},
"highlight": {
"pre_tags": [
"@kibana-highlighted-field@"
],
"post_tags": [
"@/kibana-highlighted-field@"
],
"fields": {
"*": {}
},
"fragment_size": 2147483647
}
}'
Realizando a chamada:
Após realizar a chamada, é possível salvar este retorno em um arquivo json. Para isso clique em SAVE RESPONSE > SAVE TO FILE.
É importante salientar que todo o procedimento acima foi realizado em um ambiente apartado (ambiente de suporte). Ao realizar o mesmo procedimento, será necessário substituir https://manager-support.sensedia.com pelo host do cliente.
Por fim, uma observação importante é que Através da API do metrics é possível realizar essa extração, porém nela existe uma limitação para os dados onde só é executado até 10 mil chamadas. Caso a informação que deseja exportar seja maior que isso é necessário diminuir o período da busca.
Comentários
0 comentário
Por favor, entre para comentar.