Seidor
Grafana, Timescale y Sentilo

14 de maig de 2024

Monitoritzar ciutats intel·ligents amb Grafana, Timescale i Sentilo

Integrant open source en Sentilo: Millores per a ciutats intel·ligents

A l'empresa, 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 manté Sentilo per a diversos clients, tant mitjançant implementacions "on premises" com a servei SaaS a través del seu spin-off Thingtia. Per últim, 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, vam incorporar 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 en les ciutats intel·ligents.

Integració de Grafana i Timecale

Un dels principals objectius de Sentilo és entregar 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-ho, les dades recopilades pels sensors de la ciutat intel·ligent (de vehicles, panells elèctrics i més) es emmagatzemen en memòria, la qual cosa ens proporciona 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 (lagos de datos), per la qual cosa tenim un conjunt de connectors per a diferents repositoris de destí, com ara 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 conegut llenguatge de consulta 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 taulells.
Sentilo

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 als 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).
  • Els 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 al lloc web públic de la plataforma.

Aquesta solució s'ha implementat per a les instàncies Sentilo de la Regió Intel·ligent de Barcelona i per a l'Ajuntament d'Eivissa (Espanya) a través de Thingtia. Ens ofereix 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.

CESVA

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 quadres de comandament de forma autònoma i compartir-los amb altres membres de la comunitat de Sentilo.

Grafana

Ú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 apliques filtres, has d'optimitzar les consultes, afegir índexs o limitar les dades que el panell pot gestionar, especialment si aquestes funcions estan obertes al públic. Això és important si desitges mantenir baixos els costos i proporcionar resultats ràpids en executar les teves consultes.

No obstant 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 gratuïtament, usar-lo com a SaaS o contactar-nos per construir una solució a mida.

Potser et pot interessar

14 de maig de 2024

L'equip necessari per al teu projecte d'Intel·ligència Artificial

Descobreix els tres rols essencials per a l'èxit de qualsevol projecte d'intel·ligència artificial: el científic de dades, el tècnic IT i l'expert de domini, i com la seva col·laboració impulsa la innovació.

14 de maig de 2024

Els reptes d'aplicar Intel·ligència Artificial

Descobreix els reptes d'implementar intel·ligència artificial a les empreses i com superar les barreres de dades i personal especialitzat. Aprèn sobre el concepte de J Curve i les solucions AI off-the-shelf.

14 de maig de 2024

La importància de les arquitectures modulars en les aplicacions mòbils