Seidor
OpenTrend

25 de juliol de 2023

Monitoratge de ciutats intel·ligents amb Grafana, Timescale i Sentilo

Miquel Asensio és gestor de projectes a SEIDOR Opentrends i està centrat en projectes de smart cities (ciutats intel·ligents), analítica de dades i IoT (internet de les coses).

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 cerquem maneres d'integrar eines de codi obert que puguin estalviar temps i diners alhora que augmenten l'eficiència de les ciutats intel·ligents.

Com si es tractés d'un trencaclosques, procurem incorporar l'eina open source que millor encaixa per a cada cas d'ús a mesura que sorgeixen noves necessitats. Inicialment, vam desenvolupar Sentilo el 2012 com un petit projecte de IoT en col·laboració amb l'Ajuntament de Barcelona. Avui, comptem amb un producte madur amb el suport d'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 en local com un servei SaaS amb el seu spin-off Thingtia. Finalment, 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, fa poc vam incorporar-hi Grafana i TimescaleDB, que s'han convertit en peces importants en 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 acostumen a ser altres sistemes externs o fonts de dades, com un sistema de monitoratge d'energia o una data lake corporatiu. Per aconseguir-ho, les dades que recopilen els sensors de la ciutat intel·ligent (de vehicles, comandaments elèctrics i més) s'emmagatzemen en memòria, cosa que ens ofereix 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 diversos 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 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 seva plataforma Sentilo, vam haver d'avaluar diverses solucions per oferir 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 amb una eina visual interactiva basada al web. Teníem certa experiència prèvia en l'ús de Grafana per al monitoratge del sistema i en coneixíem les 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, vam decidir 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 fins i tot treballant amb grans volums de dades. També ens proporciona un llenguatge de consulta conegut, SQL.

  • Grafana. Aquesta eina de visualització de codi obert té un gran conjunt de quadres de comandament potents. A més, proporciona característiques interessants per als nostres casos d'ús, com ara permetre incrustar contingut, suport multiusuari i ús compartit de quadres de comandament.

Sentilo

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 en el 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 diversos 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 centrada en la ciutadania, en què qualsevol ciutadà pot explorar el mapa de la ciutat, visualitzar els sensors i les seves dades d'accés públic.

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

Aquesta solució s'ha implementat 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 aporta 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.

Sentilo 2

Els quadres de comandament de Grafana estan integrats al visualitzador públic Sentilo estàndard i estan vinculats a diversos 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.

Sentilo 3

Ús de Grafana per obtenir valor de dades massives

Per descomptat, 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 quadre de comandament pugui administrar, especialment si aquestes funcions estan obertes al públic. Això és important si vols mantenir els costos baixos i oferir 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 podem extreure informació valuosa en combinar diverses fonts. També és una bona manera de crear quadres de comandament potents que es poden integrar fàcilment en 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 Sentilo. Pots baixar el codi gratis, utilitzar-lo com a SaaS o posar-te en contacte amb nosaltres per construir una solució a mida.