Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Plugin Telegraf para Connext DDS:Construa um Sistema de Monitoramento de Série Temporal com DDS e InfluxDB


Há alguns meses, escrevi um blog sobre como monitorar seus sistemas IIoT. O blog cobriu principalmente a visão geral de uma arquitetura de monitoramento com Connext DDS e um banco de dados de série temporal. Este blog é uma continuação dessa discussão, com novos detalhes de um elemento-chave da arquitetura.

Para demonstrar a arquitetura de monitoramento, o InfluxDB da InfluxData foi usado como um banco de dados de série temporal para monitoramento. Ao fazer este trabalho, descobri que um plug-in de entrada Telegraf para Connext DDS é um elemento crítico que faltava na realização da arquitetura. Então, desenvolvi um protótipo do plugin de entrada para Connext DDS. Hoje, tenho o prazer de compartilhá-lo com você como o projeto mais recente do RTI Labs - um programa gratuito que fornece aos clientes acesso antecipado a nova tecnologia RTI, incluindo projetos de software, downloads e ferramentas.

Neste blog, irei compartilhar os detalhes internos e exemplos do plugin do Telegraf. Mas, primeiro, vamos revisar os fundamentos do Telegraf.

O que é Telegraf?

O Telegraf, parte da plataforma de série temporal da InfluxData, é um agente para coletar, processar, agregar e escrever métricas. Ele oferece suporte a um sistema de plug-in para que os desenvolvedores possam adicionar facilmente um plug-in para métricas. Inclui quatro tipos distintos de plug-in:

Quais são os principais componentes do Telegraf?

O Telegraf usa o modelo de dados do InfluxDB para métricas como uma representação interna. O modelo de dados contém quatro componentes principais:

O Telegraf suporta vários formatos de dados de entrada para analisar métricas em diferentes formatos para sua representação interna. Depois que as métricas são analisadas, elas existem na memória e serão convertidas em uma representação concreta a ser transmitida por meio de um plugin de saída. Para isso, também suporta diversos formatos de serialização. Atualmente, o plug-in de entrada para Connext DDS funciona apenas com o formato de dados de entrada JSON.

O arquivo de configuração do Telegraf é escrito usando TOML e inclui configurações de agentes (por exemplo, intervalo de coleta de dados e intervalo de liberação) e plug-ins. Descrições detalhadas podem ser encontradas aqui. Para o plug-in para Connext DDS, ele requer um arquivo de configuração adicional para XML App Creation. Inclui configurações de tipos, tópicos e entidades DDS usadas pelo plug-in de entrada do Telegraf.



Como foi desenvolvido o plugin de entrada Telegraf para Connext DDS?

Conforme mencionado acima, o Telegraf fornece um sistema de plug-ins que pode permitir aos desenvolvedores adicionar plug-ins para métricas. Para desenvolver um plug-in de entrada, é necessário implementar as seguintes funções definidas na interface para o plug-in de entrada.

Se um plug-in de entrada for um plug-in de serviço, ele requer a implementação das seguintes funções definidas na interface para o plug-in de serviço de entrada. Um plug-in de serviço difere de um plug-in regular porque opera um serviço em segundo plano enquanto o Telegraf está em execução.

O plug-in de entrada para Connext DDS é um plug-in de serviço porque empurra métricas para o Telegraf quando recebe dados DDS em vez de puxar métricas em um intervalo configurado. Portanto, ele executa um thread em segundo plano que verifica a chegada de dados DDS por meio de WaitSets. Se você está interessado em como ele foi implementado, verifique aqui.

Demonstrações com configurações de exemplo

O melhor benefício de trabalhar com o Telegaf é que ele oferece vários plug-ins prontos para usar. Assim que tiver o plug-in de entrada para o Connext DDS, você pode escolher facilmente os plug-ins existentes para aplicá-los aos dados DDS recebidos. Passarei por exemplos de comandos e configurações do plug-in de entrada para Connext DDS e outros plug-ins. Você pode encontrar os arquivos de configuração de exemplo que usei aqui no GitHub.

Um arquivo de configuração padrão pode ser gerado pelo telegraf.
 $ telegraf config> telegraf.conf 

Para gerar um arquivo com entradas e saídas específicas, você pode usar o “--input-filter” e “--output-filter” bandeiras. O comando a seguir irá gerar um arquivo de configuração padrão com o plug-in de entrada para Connext DDS e o plug-in de saída para o arquivo.
 $ telegraf --input-filter dds_consumer --output-filter file config> dds_to_file.conf 

Depois disso, você pode executar o Telegraf com o arquivo de configuração gerado.
 $ telegraf -config dds_to_file.conf 

A configuração padrão do plug-in de entrada para Connext DDS é como a seguinte:
 [[inputs.dds_consumer]] 
## Caminho do arquivo de configuração XML
config_path ="example_configs / ShapeExample.xml"

## Nome da configuração para o participante DDS a partir de uma descrição em XML
participant_config ="MyParticipantLibrary ::Zero"

## Nome da configuração para DDS DataReader a partir de uma descrição em XML
reader_config ="MySubscriber ::MySquareReader"

## Tag key é um array de chaves que devem ser adicionadas como tags.
tag_keys =["cor"]

## Substituir o nome base da medição
name_override ="formas"

## Formato de dados a consumir.
data_format ="json"

A configuração padrão usará um arquivo de configuração XML para Connext DDS localizado em “example_configs / ShapeExample.xml” e crie um participante ( MyParticipantLibrary ::Zero ) e um leitor ( MySubscriber ::MySquareReader ) definido no arquivo de configuração. Atualmente, ele só funciona com o formato JSON, então o “data_format” a configuração deve ser definida como “json” .

O leitor definido em XML assina um tópico chamado “Square” e usa o tipo para demonstração de formas RTI. Como o tipo de demonstração de formas usa o atributo de cor como uma chave, o atributo de cor é adicionado como uma tag. Como padrão, o nome da medição torna-se o nome de um nome de entrada de serviço ( dds_consumer para o plugin). Se você quiser usar um nome de medição diferente, você pode defini-lo com o “name_override” config.

Para testar esta configuração, você pode executar a demonstração RTI Shapes e publicar um Square dados do tópico. Depois de publicar um Square dados do tópico, você pode ver as métricas DDS recebidas em “/tmp/metrics.out” , que é o caminho padrão para o plug-in de saída do arquivo.

Se quiser enviar os mesmos dados DDS para um plug-in de saída diferente, como o InfluxDB, você pode simplesmente executar o seguinte comando para gerar um arquivo de configuração para o InfluxDB:
 $ telegraf --input-filter dds_consumer --output-filter file config> dds_to_influx.conf 

$ telegraf -config dds_to_influx.conf

Existem vários plug-ins de agregação e processamento fornecidos pela Telegraf. Você pode adicionar as seguintes linhas em seu arquivo de configuração do Telegraf para agregar suas métricas com estatísticas básicas (por exemplo, min, max, mean, stdev). Ele agregará métricas com estatísticas básicas a cada 10 segundos.
 [[aggregators.basicstats]] 
## O período no qual liberar e limpar o agregador.
período ="10s"
## Se verdadeiro, a métrica original será descartada pelo agregador e não será enviada para os plug-ins de saída.
drop_original =false

Você pode renomear seus campos usando um plugin de processador. Este exemplo troca “x” e “y” coordenadas de formas.
 [[processors.rename]] 
[[processors.rename.replace]]
campo ="x"
dest ="y_trans"
[[processors.rename.replace]]
campo ="y"
dest ="x_trans"

Estes são alguns dos recursos interessantes e internos do Telegraf e do plugin para o Connext DDS. Espero que você os considere úteis para construir um sistema de monitoramento de série temporal com DDS e InfluxDB.

Leia o anúncio oficial sobre o primeiro plugin DDS para o agente Telegraf aqui.

Embora eu tenha apresentado alguns plug-ins específicos como exemplos, há muitos outros plug-ins que podem funcionar com seus sistemas DDS. Para brincar com o plug-in para Connext DDS, verifique o seguinte GitHub. https://github.com/rticommunity/telegraf

Por favor, deixe-me saber se você gostou do último produto do RTI Labs. Visite o fórum da comunidade RTI ou crie um problema diretamente no Gi

[1] [2] 下一页

Tecnologia da Internet das Coisas

  1. Connext DDS e a IoT industrial:as 5 principais coisas a saber
  2. DIY:Monitoramento e regulação de temperatura para HomeBrew
  3. Um sistema de monitoramento contínuo é adequado para você?
  4. Cisco apresenta soluções de monitoramento remoto de IoT para TI e OT
  5. Como um sistema de monitoramento de ambiente baseado em IoT é benéfico para o setor de saúde?
  6. Indústria 4.0 para monitoramento de condições de ativos:importância e benefícios
  7. Atendendo às necessidades industriais com a solução de monitoramento de gás alimentada por IoT
  8. Melhore o armazenamento de leite com uma pitada de IoT:sistema de monitoramento de nível de leite
  9. Solução de monitoramento de nível para líquidos corrosivos e explosivos
  10. Otimizando a eficiência energética com controladores centrais e monitoramento remoto