Monitorizar ciudades inteligentes con Grafana, Timescale y Sentilo

Monitoritzar ciutats intel·ligents amb Grafana, Timescale i Sentilo

connected devices & IoT

Miquel Asensio és Project Manager a SEIDOR Opentrends i està enfocat en projectes de smart cities (ciutats intel·ligents), analítica de dades i IoT (Internet of Things).

A la companyia, construïm i mantenim Sentilo, una plataforma de sensors i actuadors de codi obert per a ciutats intel·ligents. Com a part d'aquest projecte, sempre estem buscant maneres d'integrar eines de codi obert que puguin estalviar temps i diners alhora que augmenten l'eficiència de les smart cities.

Com si fos un puzle, procurem incorporar l'eina “Open source” que encaixi millor per a cada cas d'ús a mesura que sorgeixen noves necessitats. Inicialment, vam desenvolupar Sentilo el 2012 com un petit projecte d'IoT en col·laboració amb l'Ajuntament de Barcelona i avui comptem amb un producte madur recolzat per una comunitat diversa d'entitats públiques i privades. Com a referència, la instància de Barcelona Sentilo gestiona més de 7,5 milions de missatges al dia. SEIDOR Opentrends manté Sentilo per a diversos clients, tant mitjançant desplegaments “on premises” així com servei SaaS a través del seu spin-off Thingtia. Per acabar, però no menys important, liderem la Comunitat Sentilo mitjançant el suport econòmic de l'Ajuntament de Barcelona.

Com a part d'aquest creixement, i amb l'objectiu d'expandir el conjunt de mòduls que sustenta la plataforma, recentment incorporem Grafana i TimescaleDB, les quals han esdevingut peces importants a la nostra solució de ciutat intel·ligent. En aquest article, explicaré per què la sol·licitud d'un client ens va portar a crear noves visualitzacions personalitzables amb Grafana que van ajudar a millorar una varietat de processos a les ciutats intel·ligents.

Integració de Grafana i TimescaleDB

Un dels principals objectius de Sentilo és lliurar informació als seus mòduls subscrits el més ràpid possible, aquests mòduls solen ser altres sistemes externs o fonts de dades, com ara un sistema de monitorització d'energia o un data lake corporatiu. Per aconseguir això, les dades recopilades pels sensors de la ciutat intel·ligent (de vehicles, panells elèctrics i més) s'emmagatzemen en memòria, cosa que ens brinda un alt rendiment… però cal tenir en compte que la memòria és cara. Aquest repositori de dades és només temporal; necessitàvem emmagatzematge a llarg termini per a les dades històriques.

Per a algunes de les nostres implementacions de Sentilo, els usuaris tenen els seus propis data lakes (llacs de dades), per la qual cosa tenim un conjunt de connectors per a diferents repositoris de destinació, com Kafka, Elasticsearch i les bases de dades relacionals més comunes del mercat. Però aquest tipus de configuració no funciona per a tots els escenaris a causa de la seva volumetria i/o cost. Per aquest motiu, quan un dels nostres clients ens va demanar que creéssim el seu repositori històric des de zero i l'integréssim a la plataforma Sentilo, vam haver d'avaluar diverses solucions per brindar la solució adequada per al cas d'ús.

Necessitàvem alguna cosa que ens ajudés a processar la informació en temps real i ens permetés explorar i descobrir dades històriques mitjançant una eina visual interactiva basada en web. Teníem certa experiència prèvia en l'ús de Grafana per a la monitorització del sistema i coneixíem les seves excel·lents característiques i les múltiples fonts de dades integrables. Per tant, després d'analitzar altres opcions del mercat i fer diversos PoC, decidim optar per la combinació següent:

  • Timescale. Aquesta base de dades de sèries temporals de codi obert, que es basa en PostgreSQL, proporciona un alt rendiment i escalabilitat tot treballant amb grans volums de dades. També ens brinda un conegut llenguatge de consulta com a SQL.
  • Grafana. Aquesta eina de visualització de codi obert té un gran conjunt de potents panells. A més, proporciona característiques interessants per als nostres casos d'ús com permetre incrustar contingut, suport multiusuari i ús compartit de taulers.

Com es pot apreciar al diagrama d'arquitectura, la nostra plataforma de ciutat intel·ligent es basa en una combinació de bases de dades, sensors, connectors i eines. Aquí hi ha una breu descripció de com aquestes peces interactuen:

  • Sentilo emmagatzema dades de sensors en dues bases de dades diferents: Redis per a dades en temps real i MongoDB per a les metadades del catàleg del sensor.
  • L'API de Sentilo proporciona serveis per interactuar amb el catàleg i per publicar les dades en temps real (1). A continuació, les dades s'emmagatzemen al repositori corresponent (2).
  •  Un connector Sentilo personalitzat, basat en una arquitectura d'agent comú que rep el flux de dades de Redis, rep la informació i l'emmagatzema a TimescaleDB (3).
  • Les metadades del sensor se sincronitzen periòdicament amb la base de dades Timescale utilitzant un altre mòdul a mida (4).
  • Sentilo proporciona una interfície web per a diferents propòsits d'administració (5). Els administradors poden administrar el seu catàleg i visualitzar les dades en temps real. I mitjançant Grafana, els usuaris poden explorar la base de dades històrica i crear quadres de comandaments específics (6).
  • Sentilo també inclou una interfície web enfocada a la ciutadania, on qualsevol ciutadà pot explorar el mapa de la ciutat, visualitzar els sensors i les dades d'accés públic.

A través de Grafana, podem oferir visualitzacions més riques i interactives adaptades al sector o tipologia específica que es poden integrar sense problemes al lloc web públic de la plataforma.

Aquesta solució ha estat implementada per a les instàncies Sentilo de la Barcelona Smart Region i per a l'Ajuntament d'Eivissa (Espanya) a través de Thingtia. Ens proporciona un marc interactiu de cerca i descobriment sobre grans volums de dades (milions) i amplis marcs temporals (anys) amb un rendiment i temps de resposta òptim.

Els panells Grafana estan integrats al visualitzador públic Sentilo estàndard i estan vinculats a diferents sectors: monitoratge de soroll, qualitat de l'aire, reg, fonts d'aigua i monitoratge d'energia. Els nostres clients poden crear els seus propis taulers potents de manera autònoma i compartir-los amb altres membres de la comunitat de Sentilo.

Ús de Grafana per obtenir valor de big data

Sens dubte, sempre cal tenir en compte que quan treballes amb grans volums de dades i aplicar filtres, has d'optimitzar les consultes, afegir índexs o limitar les dades que el panell pot administrar, especialment si aquestes funcions estan obertes al públic. Això és important si vols mantenir baixos els costos i brindar resultats ràpids en executar les teves consultes.

Tot i així, la solució ha demostrat ser un bon enfocament per treballar amb grans quantitats de dades. Ens ha ajudat a explorar i descobrir dades, i en podem extreure informació valuosa en combinar diferents fonts. També és una bona manera de crear quadres de comandament potents que es poden integrar fàcilment a altres llocs web de la ciutat.

Si vols obtenir més informació sobre com funciona Sentilo o com pots incorporar-lo als teus propis plans de ciutat intel·ligent, pots consultar la comunitat de Sentilo. Pots descarregar-te el codi gratuït, fer-lo servir com SaaS o podem contactar-nos per construir una solució a mida.

Miquel Ángel Asensio

Miquel Ángel Asensio és Project Manager a SEIDOR Opentrends. Està enfocat en projectes de smart cities (ciutats intel·ligents), analítica de dades i IoT (Internet of Things).