25 de juliol de 2023
Monitoratge de ciutats intel·ligents amb Grafana, Timescale i Sentilo
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 formes d'integrar eines de codi obert que puguin estalviar temps i diners al mateix temps que augmenten l'eficiència de les smart cities.
Com si es tractés d'un trencaclosques, procurem incorporar l'eina “Open source” que millor encaixi 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. 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, recentment, hem incorporat Grafana i TimescaleDB, les quals 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 solen ser altres sistemes externs o fonts de dades, com un sistema de monitoratge 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 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 a través d'una eina visual interactiva basada en web. Teníem certa experiència prèvia en l'ús de Grafana per al monitoratge 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, vam decidir optar per la següent combinació:
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 ofereix un llenguatge de consulta conegut com 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 en el 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.
La 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 es 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 comandament específics (6).
Sentilo també inclou una interfície web enfocada en la ciutadania, on qualsevol ciutadà pot explorar el mapa de la ciutat, visualitzar els sensors i les seves 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ífics que es poden integrar sense problemes en el 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 brinda 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 en el 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 forma autònoma i compartir-los amb altres membres de la comunitat de Sentilo.
Ús de Grafana per obtenir valor de big data
Per descomptat, sempre cal tenir en compte que quan treballes amb grans volums de dades i aplicar filtres, has d'optimitzar les consultes, agregar índexs o limitar les dades que el panell pot administrar, especialment si aquestes funcions estan obertes al públic. Això és important si desitges 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 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 en altres llocs web de la ciutat.
Si desitges obtenir més informació sobre com funciona Sentilo o com pots incorporar-lo en els teus propis plans de ciutat intel·ligent, pots consultar la comunitat de Sentilo. Pots descarregar el codi gratis, usar-lo com a SaaS o contactar-nos per construir una solució a mida.
Share
Potser et pot interessar
Els 3 Tipus de CRM
Vols administrar els teus leads i millorar l'experiència amb els teus clients? Aleshores necessites un CRM. Per tal que incorporis a la teva empresa el que millor s'adapta a les teves necessitats, lògicament, primer has de conèixer quins tipus de CRM existeixen. Som-hi! Amb exemples inclosos!