Ferramentas utilizadas:
- Zabbix
- JavaScript
- JSON
Situação:
O Zabbix é uma ferramenta de monitoração que podemos utilizar JavaScript para ajudar nas coletas de dados. Eu tenho uma necessidade de montar um JSON baseado nas informações que vem de um outro JSON que pego de uma API, o Zabbix precisa montar esse JSON para poder montar o sistema de coletas dele, então estou usando o JavaScript para pegar os dados do JSON que vem da API e montar um JSON do Zabbix para utilizar em suas 'features'. Mas o seguinte erro anda ocorrendo:
TypeError: cannot read property 'steps' of undefined
at [anon] (duktape.c:59386) internal
at [anon] (function:4) preventsyield
JSON da API
[
{
"execution":{
"id":"ac06e441-h6t4-24j4-db59-1j26c5c6b82k",
"link":"https://link.generico.teste/api/36798?executionId=ac06e441-h6t4-24j4-db59-1j26c5c6b82k&endDate=2022-08-10",
"steps":[
{
"status":"SUCCESS",
"order":5,
"duration":1520,
"setup_times":{
"frustration":90133,
"warning":82376,
"timeout":23035
},
"name":"Carrega Me Ajuda",
"pwxi":72.14209775283789,
"category":"C",
"type":"system",
"slug":"carrega-me-ajuda"
},
{
"status":"SUCCESS",
"order":3,
"duration":5851,
"setup_times":{
"frustration":29751,
"warning":22501,
"timeout":33751
},
"name":"Carrega Teste do JSON",
"pwxi":95.74179775280899,
"category":"D",
"type":"system",
"slug":"carrega-teste-json"
}
],
"status":"SUCCESS",
"score":{
"pwxi":72.14209775283789
},
"start_time":"2022-08-10T10:24:00.000-03:00",
"total_duration":{
"system":1520
}
},
"robot":{
"name":"Alura - Ajuda Ai",
"location":{
"lon":-12.6629,
"lat":-90.1234
},
"id":"VA-13K",
"type":"cloud",
"link":"link.generico.teste/api/robot/CA-03D"
},
"company":{
"name":"Alura",
"id":12345
},
"script":{
"name":"Web Alura",
"id":12345,
"type":"custom",
"link":"link.generico.teste/api/script/44298"
},
"install":{
"name":"Alura",
"id":12345,
"link":"link.generico.teste/api/install/47468"
}
}
]
JavaScript para criar o novo JSON
var source = JSON.parse(value),
data = [];
source.execution.steps.forEach(function(v){
data.push({
"{#NAME}": v.name,
"{#CATEGORY}": v.category,
"{#TYPE}": v.type,
"{#SLUG}": v.slug})
});
return JSON.stringify(data);
Meu conhecimento em JS é bem básico, tive que procurar em alguns fóruns para chegar até esse código, mas ele não esta funcionando, se alguém puder me dar uma ajuda. A ideia é através desse código, montar um JSON com as informações do JSON da API.