Consultar API REST des de Grafana

Si podem consumir les dades que necessitem via REST API (en format JSON), podrem per tant visualitzar-nos a Grafana! El món és marrec amb Grafana! Així que, com sabem, avui dia, gairebé qualsevol app ens permet realitzar consultes mitjançant API, No esperis més i a exprimir-les!

Bo, y antes de nada… diros que arrancamos tras un veranito de gozo y disfrute =) y trabajo, vagi… Que han estat uns mesos de desconnexió i esperem qui sap si 1 o millor 2 posts por week hasta fin de year… El temario más o menos lo tengo, pero els meus fills em chupan la vida :-), vingui, ¡al torró!

En aquest post haremos alguna cosa fàcil, un exemple de lo que requeriremos per tenerlo en marxa. Pongamos una app, en aquest cas particular usaremos Wekan, que és un organizador Kanban y es con el que gestiono entre otras, las Tareas pendientes a realizar (en mi vida, en el treball, con prioritats…). Com és una app que permet via REST API en format JSON consultar los datos, pues la intención será hacer un Dashboard en Grafana que me ordene las tasques pendientes, i clar, luego este pool rotatorio irá a la pantalla del helpdesk. Será una consulta directamente, que podremos cachear o no si queremos los valores durante un tiempo, no se almacenará en ninguna BD.

El primer, en Grafana instalaremos el datasource ‘JSON API’ & reiniciamos Grafana:

grafana-cli plugins install marcusolsson-json-datasource
systemctl restart grafana-server

Pongamos este ejemplo sencillo, tras leer la documentación de cada app podremos conocer cómo consultar los datos que necesitemos; el que s' ha dit, Wekan, y que liste las Cards, que en mi caso las uso como Tareas, con un curl lo haríamos así rápido para validar la salida de lo que veremos luego en Grafana:

curl -H "Authorization: Bearer XXXXXXXXXX" -X GET http://192.168.1.115:3001/api/boards/xxxxxx/lists/xxxxxx/cards

[{"_id":"MRodsfJo","title":"Tarea 1...","description":"","assignees":[]},{"_id":"dfgmh2","title":"Tarea 2...","description":"","assignees":[]},{"_id":"Rymt8","title":"Tarea 3...","description":"","assignees":[]}....

En aquest cas, requiere autenticación, y va en la cabecera, con su token, i després li fem un GET de la secció que ens interessi.

Ja podrem crear el Data Source a Grafana que apunti a la URL arrel de les API i en aquest cas l'autenticació la enviarem en un encapçalament personalitzat. És que Wekan és un exemple una mica particular, ja que tot el que va darrere dels ‘:’ de ‘Authorization’ ho posarem com ‘value’ en el ‘Header’ (no només el Token, però en aquest cas, insisteixo).

I ja en un Dashboard a Grafana podrem afegir un Panell nou, del tipus que necessitem, en el meu cas amb un de senzill en format taula em val, vull simplement veure les Tasques Urgents pendents. Indiquem el camp que volem extreure, en aquest cas en format JSONPath i en el meu cas particular si us hi fixeu bé en el curl anterior, seria ‘$.*.title’ para obtenir els títols de todas les Tarjetas.

En la pestaña 'Path’ podremos especificar la ruta de la consulta, en aquest cas de tipus GET y (en el meu cas) añadiendo el path: '/boards/xxxxxxxxxx/lists/xxxxxxxxxx/cards’

Y esto seria un exemple d'algunes de les Tareas Urgentes que tengo pendiente ahora mismo 🙂

El que s'ha dit, és un mero exemple de cómo consumir des de Grafana mitjançant APIs dades directes en format JSON que nos pueda escupir la app remota. Espero que le podáis sacar alguna utilitat, la verdad que tiene 1000 posibilidades y me quedo corto 😉

Que seáis felices, que ha estat un placer escriure estas pocas línies, però tinc que ir sacando el óxido, alguns documents que a lo millor os resultan interessants i altres no tant, pero con intención de que aporten algo. Un besazo!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Instal·lar Volumi en una MV

13 d'October de 2022