Sondas Atlas

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Dic 10 00:21:53 CLST 2014


Hugo Salgado escribió:

> Por ejemplo, acabo de lanzar un ping desde todas las sondas en Chile
> hacia listas.inf.utfsm.cl. El resultado es:
>   https://atlas.ripe.net/api/v1/measurement/1806172/result/
> Hay bibliotecas de parseo en distintos lenguajes.

Parseo!  Meh.  Subí el JSON de ese ejemplo a una BD Postgres, y luego le
di

  WITH arridx (i) AS (
                      SELECT i
                        FROM ping, generate_series(0, jsonb_array_length(ping.a)) i
                     )
SELECT * FROM (
               SELECT i, (jsonb_each(j)).*
                 FROM (
                       SELECT arridx.i, jsonb_array_element(a, arridx.i) j
                         FROM arridx, ping)
           elt) q
 WHERE key IN ('from', 'result', 'min', 'max');

con lo cual me da los valores que le pido, como

  4 | max    | 9.307
  4 | min    | 6.386
  4 | from   | "190.215.177.26"
  4 | result | [{"rtt": 8.239}, {"rtt": 6.386}, {"rtt": 9.307}]
  5 | max    | 73.41
  5 | min    | 72.958
  5 | from   | "181.73.104.156"
  5 | result | [{"rtt": 73.261}, {"rtt": 73.41}, {"rtt": 72.958}]
  6 | max    | 15.554
  6 | min    | 13.548
  6 | from   | "190.47.47.18"
  6 | result | [{"rtt": 13.936}, {"rtt": 13.548, "ttl": 51}, {"rtt": 15.554, "ttl": 52}]

Si uno tiene más de 10 minutos que dedicarle al problema puede dejarlo
mucho más bonito, claro ...

-- 
Álvaro Herrera                         http://www.flickr.com/photos/alvherre/
"But static content is just dynamic content that isn't moving!"
                http://smylers.hates-software.com/2007/08/15/fe244d0c.html


Más información sobre la lista de distribución Linux