Bosun HTTPGetJSON


Ejemplo

HTTPGetJSON realiza una solicitud HTTP a la URL especificada y devuelve un objeto jsonq.JsonQuery para su uso en la plantilla de alerta. Ejemplo:

template example {
    {{ $ip := 8.8.8.8 }} 
    {{ $whoisURL := printf "http://whois.arin.net/rest/ip/%s" $ip }}
    {{ $whoisJQ := $.HTTPGetJSON $whoisURL }}
    IP {{$ip}} owner from ARIN is {{ $whoisJQ.String "net" "orgRef" "@name" }}
}

En este caso, la dirección $ ip está codificada, pero en una alerta real generalmente provendrá de las etiquetas de alerta usando algo como {{ $ip := .Group.client_ip}} donde client_ip es una clave de etiqueta cuyo valor es una dirección IP .

Los resultados de jsonq son similares a los resultados generados por el procesador jq JSON , por lo que puede probar en un shell BASH usando:

$ curl -H "Accept: application/json" http://whois.arin.net/rest/ip/8.8.8.8 | jq  ".net.orgRef"
{
  "@handle": "GOGL",
  "@name": "Google Inc.",
  "$": "https://whois.arin.net/rest/org/GOGL"
}