Seidor
Grafana, Timescale y Sentilo

14 de maio de 2024

Monitorar cidades inteligentes com Grafana, Timescale e Sentilo

Integrando open source no Sentilo: Melhorias para cidades inteligentes

Na empresa, construímos e mantemos o Sentilo, uma plataforma de sensores e atuadores de código aberto para cidades inteligentes. Como parte desse projeto, estamos sempre buscando formas de integrar ferramentas de código aberto que possam economizar tempo e dinheiro, ao mesmo tempo que aumentam a eficiência das smart cities.

Como se fosse um quebra-cabeça, procuramos incorporar a ferramenta "Open source" que melhor se encaixe para cada caso de uso à medida que surgem novas necessidades. Inicialmente, desenvolvemos o Sentilo em 2012 como um pequeno projeto de IoT em colaboração com a Prefeitura de Barcelona e hoje, contamos com um produto maduro respaldado por uma comunidade diversa de entidades públicas e privadas. Como referência, a instância de Barcelona Sentilo gerencia mais de 7,5 milhões de mensagens por dia. A SEIDOR mantém o Sentilo para vários clientes, tanto por meio de implantações "on premises" quanto como serviço SaaS através de sua spin-off Thingtia. Por último, mas não menos importante, lideramos a Comunidade Sentilo com o apoio econômico da Prefeitura de Barcelona.

Como parte desse crescimento, e com o objetivo de expandir o conjunto de módulos que sustenta a plataforma, recentemente, incorporamos Grafana e TimescaleDB, as quais se tornaram peças importantes em nossa solução de cidade inteligente. Neste artigo, explicarei por que a solicitação de um cliente nos levou a criar novas visualizações personalizáveis com Grafana que ajudaram a melhorar uma variedade de processos nas cidades inteligentes.

Integração de Grafana e Timescale

Um dos principais objetivos do Sentilo é entregar informações aos seus módulos assinados o mais rápido possível. Esses módulos geralmente são outros sistemas externos ou fontes de dados, como um sistema de monitoramento de energia ou um data lake corporativo. Para alcançar isso, os dados coletados pelos sensores da cidade inteligente (de veículos, painéis elétricos e mais) são armazenados na memória, o que nos proporciona um alto desempenho... mas é preciso ter em mente que a memória é cara. Esse repositório de dados é apenas temporário; precisávamos de armazenamento a longo prazo para os dados históricos.

Para algumas de nossas implementações do Sentilo, os usuários têm seus próprios data lakes (lagos de dados), por isso temos um conjunto de conectores para diferentes repositórios de destino, como Kafka, Elasticsearch e os bancos de dados relacionais mais comuns do mercado. Mas esse tipo de configuração não funciona para todos os cenários devido à sua volumetria e/ou custo. Por esse motivo, quando um de nossos clientes nos pediu para criar seu repositório histórico do zero e integrá-lo à sua plataforma Sentilo, tivemos que avaliar várias soluções para fornecer a solução adequada para o caso de uso.

Precisávamos de algo que nos ajudasse a processar as informações em tempo real e nos permitisse explorar e descobrir dados históricos através de uma ferramenta visual interativa baseada na web. Tínhamos alguma experiência prévia no uso do Grafana para o monitoramento do sistema e conhecíamos suas excelentes características e as múltiplas fontes de dados integráveis. Portanto, após analisar outras opções do mercado e fazer vários PoC, decidimos optar pela seguinte combinação:

  • Timescale. Este banco de dados de séries temporais de código aberto, que se baseia em PostgreSQL, proporciona alto desempenho e escalabilidade mesmo trabalhando com grandes volumes de dados. Também nos oferece uma linguagem de consulta conhecida como SQL.
  • Grafana. Esta ferramenta de visualização de código aberto possui um grande conjunto de painéis poderosos. Além disso, fornece recursos interessantes para nossos casos de uso, como permitir a incorporação de conteúdo, suporte multiusuário e compartilhamento de painéis.
Sentilo

Como pode ser visto no diagrama de arquitetura, nossa plataforma de cidade inteligente é baseada em uma combinação de bancos de dados, sensores, conectores e ferramentas. Aqui está uma breve descrição de como essas peças interagem:

  • Sentilo armazena dados de sensores em dois bancos de dados diferentes: Redis para dados em tempo real e MongoDB para os metadados do catálogo do sensor.
  • A API do Sentilo fornece serviços para interagir com o catálogo e para publicar os dados em tempo real (1). Em seguida, os dados são armazenados no repositório correspondente (2).
  • Um conector Sentilo personalizado, baseado em uma arquitetura de agente comum que recebe o fluxo de dados do Redis, recebe a informação e a armazena no TimescaleDB (3).
  • Os metadados do sensor são sincronizados periodicamente com o banco de dados Timescale utilizando outro módulo personalizado (4).
  • Sentilo fornece uma interface web para diferentes propósitos de administração (5). Os administradores podem gerenciar seu catálogo e visualizar os dados em tempo real. E através do Grafana, os usuários podem explorar o banco de dados histórico e criar painéis específicos (6).
  • Sentilo também inclui uma interface web focada na cidadania, onde qualquer cidadão pode explorar o mapa da cidade, visualizar os sensores e seus dados de acesso público.

Através do Grafana, podemos oferecer visualizações mais ricas e interativas adaptadas ao setor ou tipologia específicos que podem ser integradas sem problemas no site público da plataforma.

Esta solução foi implementada para as instâncias Sentilo da Barcelona Smart Region e para a Prefeitura de Eivissa (Espanha) através do Thingtia. Nos proporciona um quadro interativo de busca e descoberta sobre grandes volumes de dados (milhões) e amplos marcos temporais (anos) com um desempenho e tempo de resposta ótimo.

CESVA

Os painéis Grafana estão integrados no visualizador público padrão do Sentilo e estão vinculados a diferentes setores: monitoramento de ruído, qualidade do ar, irrigação, fontes de água e monitoramento de energia. Nossos clientes podem criar seus próprios painéis poderosos de forma autônoma e compartilhá-los com outros membros da comunidade Sentilo.

Grafana

Uso do Grafana para obter valor de Big Data

Claro, sempre é importante ter em mente que, ao trabalhar com grandes volumes de dados e aplicar filtros, você deve otimizar as consultas, adicionar índices ou limitar os dados que o painel pode gerenciar, especialmente se essas funções estiverem abertas ao público. Isso é importante se você deseja manter os custos baixos e fornecer resultados rápidos ao executar suas consultas.

Ainda assim, a solução tem se mostrado uma boa abordagem para trabalhar com grandes quantidades de dados. Nos ajudou a explorar e descobrir dados, e podemos extrair informações valiosas ao combinar diferentes fontes. Também é uma boa maneira de criar painéis poderosos que podem ser facilmente integrados em outros sites da cidade.

Se você deseja obter mais informações sobre como o Sentilo funciona ou como pode incorporá-lo em seus próprios planos de cidade inteligente, você pode consultar a comunidade do Sentilo. Você pode baixar o código gratuitamente, usá-lo como SaaS ou nos contatar para construir uma solução personalizada.

Talvez te interesse

14 de maio de 2024

O equipamento necessário para o seu projeto de Inteligência Artificial

Descubra os três papéis essenciais para o sucesso de qualquer projeto de inteligência artificial: o cientista de dados, o técnico de TI e o especialista de domínio, e como sua colaboração impulsiona a inovação.

AI
14 de maio de 2024

Os desafios de aplicar Inteligência Artificial

Descubra os desafios de implementar inteligência artificial nas empresas e como superar as barreiras de dados e pessoal especializado. Aprenda sobre o conceito de J Curve e as soluções AI off-the-shelf.

AI
14 de maio de 2024

A importância das arquiteturas modulares em aplicativos móveis

Edge Technologies