Coletando de dados de telemetria da integridade do sistema de dispositivos de núcleo do AWS IoT Greengrass. - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Coletando de dados de telemetria da integridade do sistema de dispositivos de núcleo do AWS IoT Greengrass.

Os dados de telemetria da integridade do sistema são dados de diagnóstico que podem ajudá-lo a monitorar o desempenho de operações críticas em seus dispositivos de núcleo do Greengrass. O atendente de telemetria do núcleo do Greengrass coleta dados de telemetria locais e os publica no Amazon EventBridge sem exigir nenhuma interação com o cliente. Os dispositivos de núcleo publicam dados de telemetria no EventBridge com base no melhor esforço. Por exemplo, os dispositivos de núcleo podem falhar em fornecer dados de telemetria quando estão off-line.

nota

O Amazon EventBridge é um serviço de barramento de eventos que você pode usar para facilitar a conexão de aplicações a dados de diversas origens, como os dispositivos de núcleo do Greengrass e as notificações de implantação. Para obter mais informações, consulte O que é o Amazon EventBridge? no Manual do usuário do Amazon EventBridge.

Você pode criar projetos e aplicativos para recuperar, analisar, transformar e relatar dados de telemetria de seus dispositivos periféricos. Especialistas em domínio, como engenheiros de processo, podem usar esses aplicativos para obter informações sobre a integridade da frota.

Para garantir que os componentes periféricos do Greengrass funcionem adequadamente, AWS IoT Greengrass usa os dados para fins de desenvolvimento e melhoria da qualidade. Esse atributo também ajuda a informar recursos periféricos novos e aprimorados. AWS IoT Greengrass só retém dados de telemetria por até sete dias.

Esse atributo está disponível no software AWS IoT Greengrass Core v1.11.0 e é ativado por padrão para todos os núcleos do Greengrass, incluindo os núcleos existentes. Você começa a receber dados automaticamente assim que atualiza para a v1.11.0 do software AWS IoT Greengrass Core ou posterior.

Para obter informações sobre como acessar ou gerenciar dados de telemetria publicados, consulte Fazendo a assinatura para receber dados de telemetria.

O atendente de telemetria coleta e publica as seguintes métricas do sistema.

Métricas de telemetria
Name (Nome) Descrição Origem

SystemMemUsage

A quantidade de memória atualmente em uso por todos os aplicativos no dispositivo de núcleo do Greengrass, incluindo o sistema operacional.

Sistema

CpuUsage

A quantidade de CPU atualmente em uso por todos os aplicativos no dispositivo de núcleo do Greengrass, incluindo o sistema operacional.

Sistema

TotalNumberOfFDs

O número de descritores de arquivo armazenados pelo sistema operacional do dispositivo de núcleo do Greengrass. Um descritor de arquivo identifica exclusivamente um arquivo aberto.

Sistema

LambdaOutOfMemory

O número de execuções que resultam na falta de memória da função do Lambda.

Sistema

DroppedMessageCount

O número de mensagens descartadas que são destinadas a AWS IoT Core.

Componente do sistema do GGCloudSpooler

LambdaTimeout

O número de tempos limite para execução da função do Lambda definida pelo usuário.

Função do Lambda definida pelo usuário, Nuvem AWS, e sistema

LambdaUngracefullyKilled

O número de execuções que a função do Lambda definida pelo usuário não consegue concluir.

Função do Lambda definida pelo usuário, Nuvem AWS, e sistema

LambdaError

O número de execuções que resultam na gravação de registros de erros da função do Lambda definida pelo usuário.

Função do Lambda definida pelo usuário, Nuvem AWS, e sistema

BytesAppended

O número de bytes de dados anexados ao gerenciador de fluxo.

Componente do sistema do GGStreamManager

BytesUploadedToIoTAnalytics

O número de bytes de dados que o gerenciador de fluxos exporta para canais em AWS IoT Analytics.

Componente do sistema do GGStreamManager

BytesUploadedToKinesis

O número de bytes de dados que o gerenciador de fluxos exporta para streams no Amazon Kinesis Data Streams.

Componente do sistema do GGStreamManager

BytesUploadedToIoTSiteWise

O número de bytes de dados que o gerenciador de fluxos exporta para as propriedades do ativo AWS IoT SiteWise.

Componente do sistema do GGStreamManager

BytesUploadedToS3ExportTaskExecutor

O número de bytes de dados que o gerenciador de fluxos exporta para objetos no Amazon S3.

Componente do sistema do GGStreamManager

BytesUploadedToHTTP

O número de bytes de dados que o gerenciador de fluxos exporta para HTTP.

Componente do sistema do GGStreamManager

Definindo configurações de telemetria

A telemetria do Greengrass usa as seguintes configurações:

  • O atendente de telemetria agrega dados de telemetria a cada hora.

  • O atendente de telemetria publica uma mensagem de telemetria a cada 24 horas.

nota

As configurações são imutáveis.

Você pode habilitar ou desabilitar o atributo de telemetria para um dispositivo de núcleo do Greengrass. AWS IoT Greengrass usa sombras para gerenciar a configuração de telemetria. Suas alterações entram em vigor imediatamente quando o núcleo tem uma conexão com o AWS IoT Core.

O atendente de telemetria publica dados usando o protocolo MQTT com um nível de qualidade de serviço (QoS) de 0. Isso significa que ele não confirma a entrega nem repete as tentativas de publicação. As mensagens de telemetria compartilham uma conexão MQTT com outras mensagens para assinatura destinadas a AWS IoT Core.

Além dos custos do link de dados, a transferência de dados do núcleo para o AWS IoT Core é gratuita. Isso ocorre porque o atendente publica em um tópico reservado AWS. No entanto, dependendo do seu caso de uso, você pode incorrer em custos ao receber ou processar os dados.

Requisitos

Os requisitos a seguir se aplicam quando você define as configurações de telemetria:

  • Você deve usar a versão v1.11.0 do software AWS IoT Greengrass Core ou posterior.

    nota

    Se você estiver executando uma versão anterior e não desejar usar telemetria, você não precisará executar ações nesse momento.

  • Você deve fornecer permissões do IAM para atualizar a sombra do núcleo (coisa) e chamar as APIs de configuração antes de atualizar as configurações de telemetria.

    O exemplo de política do IAM a seguir permite gerenciar a configuração de sombra e de runtime de um núcleo específico:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManageShadow", "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow", "iot:DescribeThing" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-name-*" ] }, { "Sid": "AllowManageRuntimeConfig", "Effect": "Allow", "Action": [ "greengrass:GetCoreRuntimeConfiguration", "greengrass:UpdateCoreRuntimeConfiguration" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-name" ] } ] }

    Você pode conceder acesso granular ou condicional aos recursos, por exemplo, usando um esquema de nomeação * curinga. Para obter mais informações, consulte Adicionando e removendo políticas do IAM no Guia do usuário do IAM.

Defina as configurações de telemetria (console)

A seguir, mostramos como atualizar as configurações de telemetria de um núcleo do Greengrass no console AWS IoT Greengrass.

  1. No painel de navegação do console de AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).

  2. Em Grupos do Greengrass, selecione seu grupo alvo.

  3. Na página de configuração do núcleo, na seção Visão geral, selecione seu Greengrass core.

  4. Na página de configuração do núcleo, selecione a guia Telemetria.

  5. Na seção Telemetria da integridade do sistema, selecione Configure.

  6. Em Configurar telemetria, selecione Telemetry para ativar ou desativar o status de telemetria.

    Importante

    Por padrão, o atributo de telemetria está habilitado para a v1.11.0 do software AWS IoT Greengrass Core ou posterior.

As alterações entram em vigor no runtime. Não é necessário implantar o grupo.

Defina as configurações de telemetria (CLI)

Na API AWS IoT Greengrass, o objeto TelemetryConfiguration representa as configurações de telemetria de um núcleo do Greengrass. Esse objeto faz parte do objeto RuntimeConfiguration associado ao núcleo. Você pode usar a API AWS IoT Greengrass, AWS CLI ou o SDK AWS para gerenciar a telemetria do Greengrass. Os exemplos desta seção usam a AWS CLI.

Para verificar as configurações de telemetria

O comando a seguir obtém as configurações de telemetria de um núcleo do Greengrass.

  • Substitua core-thing-name pelo nome do núcleo de destino.

    Para obter o nome da coisa, você usa o comando get-core-definition-version. O comando retorna o ARN da coisa que contém o nome da coisa.

aws greengrass get-thing-runtime-configuration --thing-name core-thing-name

O comando retorna um objeto GetCoreRuntimeConfigurationResponse na resposta JSON. Por exemplo:

{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "OutOfSync", "Telemetry": "On" } } }
Para definir as configurações de telemetria

O comando a seguir atualiza as configurações de telemetria para um núcleo do Greengrass.

  • Substitua core-thing-name pelo nome do núcleo de destino.

    Para obter o nome da coisa, você usa o comando get-core-definition-version. O comando retorna o ARN da coisa que contém o nome da coisa.

JSON expanded
aws greengrass update-thing-runtime-configuration --thing-name core-thing-name --telemetry-configuration '{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "InSync", "Telemetry": "Off" } } }
JSON single-line
aws greengrass update-thing-runtime-configuration --thing-name core-thing-name --telemetry-configuration "{\"TelemetryConfiguration\":{\"ConfigurationSyncStatus\":\"InSync\",\"Telemetry\":\"Off\"}}"

As alterações nas configurações de telemetria serão aplicadas, se ConfigurationSyncStatus for InSync. As alterações entram em vigor no runtime. Não é necessário implantar o grupo.

Objeto de configuração de telemetria

O objeto TelemetryConfiguration tem as seguintes propriedades:

ConfigurationSyncStatus

Verifica se as configurações de telemetria estão sincronizadas. Talvez você não faça alterações nessa propriedade.

Tipo: string

Valores válidos: InSync ou OutOfSync

Telemetry

Ativa ou desativa a telemetria. O padrão é On.

Tipo: string

Valores válidos: On ou Off

Fazendo a assinatura para receber dados de telemetria

Você pode criar regras no Amazon EventBridge que definem como processar dados de telemetria publicados a partir do dispositivo de núcleo do Greengrass. Quando o EventBridge recebe dados, invoca as ações alvo definidas em suas regras. Por exemplo, crie regras de eventos que enviem notificações, armazenem informações, tomem medidas corretivas ou invoquem outros eventos.

Evento de telemetria

O evento para uma alteração no estado da implantação, incluindo os dados de telemetria, usa o seguinte formato:

{ "version": "0", "id": "f70f943b-9ae2-e7a5-fec4-4c22178a3e6a", "detail-type": "Greengrass Telemetry Data", "source": "aws.greengrass", "account": "123456789012", "time": "2020-07-28T20:45:53Z", "region": "us-west-1", "resources": [], "detail": { "ThingName": "CoolThing", "Schema": "2020-06-30", "ADP": [ { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToKinesis", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToS3ExportTaskExecutor", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToHTTP", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToIoTAnalytics", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToIoTSiteWise", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "arn:aws:lambda:us-west-1:123456789012:function:my-function", "M": [ { "N": "LambdaTimeout", "Sum": 15, "U": "Count" } ] }, { "TS": 123231546, "NS": "CloudSpooler", "M": [ { "N": "DroppedMessageCount", "Sum": 15, "U": "Count" } ] }, { "TS": 1593727692, "NS": "SystemMetrics", "M": [ { "N": "SystemMemUsage", "Sum": 11.23, "U": "Megabytes" }, { "N": "CpuUsage", "Sum": 35.63, "U": "Percent" }, { "N": "TotalNumberOfFDs", "Sum": 416, "U": "Count" } ] }, { "TS": 1593727692, "NS": "arn:aws:lambda:us-west-1:123456789012:function:my-function", "M": [ { "N": "LambdaOutOfMemory", "Sum": 12, "U": "Count" }, { "N": "LambdaUngracefullyKilled", "Sum": 100, "U": "Count" }, { "N": "LambdaError", "Sum": 7, "U": "Count" } ] } ] } }

A matriz ADP contém uma lista de pontos de dados agregados que têm as seguintes propriedades:

TS

Obrigatório. O timestamp de quando os dados foram agregados.

NS

Obrigatório. O namespace do sistema.

M

Obrigatório. Lista de métricas. Uma métrica contém as seguintes propriedades:

N

O nome da métrica.

Sum

O valor agregado da métrica. Oatendente de telemetria adiciona novos valores ao total anterior, então a soma é um valor cada vez maior. Você pode usar o timestamp para encontrar o valor de uma agregação específica. Por exemplo, para encontrar o valor agregado mais recente, subtraia o valor com timestamp anterior do valor com timestamp mais recente.

U

A unidade do valor da métrica.

ThingName

Obrigatório. O nome da coisa que você tem como alvo.

Pré-requisitos para criar regras do EventBridge

Antes de criar uma regra no EventBridge para AWS IoT Greengrass, faça o seguinte:

  • Familiarize-se com os eventos, regras e destinos no EventBridge.

  • Crie e configure os destinos invocados por suas regras do EventBridge. As regras podem invocar vários tipos de destinos, como fluxos do Amazon Kinesis, perfis AWS Lambda, tópicos do Amazon SNS e filas do Amazon SQS.

    Sua regra do EventBridge e os destinos associados devem estar no Região da AWS em que você criou seus recursos do Greengrass. Para obter mais informações, consulte Endpoints e cotas do serviço na Referência geral da AWS.

Para obter mais informações, consulte O que é o Amazon EventBridge e Começar a usar o Amazon EventBridge no Manual do usuário do Amazon EventBridge.

Crie uma regra de evento para obter dados de telemetria (console)

Use as etapas a seguir para usar o AWS Management Console para criar uma regra do EventBridge que receba dados de telemetria publicados pelo núcleo do Greengrass. Isso permite que servidores web, endereços de e-mail e outros assinantes de tópicos respondam ao evento. Para obter mais informações, consulte Criando uma regra do EventBridge que aciona um evento de um recurso da AWS no Guia do usuário do Amazon EventBridge.

  1. Abra o console do Amazon EventBridge e, em seguida selecione Criar regra.

  2. Em Name and description (Nome e descrição), insira um nome e uma descrição para a regra.

  3. Selecione Barramento de eventos e ative a regra no barramento de eventos selecionado.

  4. Selecione o Tipo de regra e, em seguida selecione Rule with an event pattern (Regra com um padrão de eventos).

  5. Selecione Next (Próximo).

  6. Em Event source (Origem do evento), selecione Eventos da AWS ou eventos de parceiro do EventBridge.

  7. Em Exemplo de evento, selecione AWS events e, em seguida selecione Dados de telemetria do Greengrass.

  8. Para Padrão de eventos, faça as seguintes seleções:

    1. Em Event source (Origem do evento), selecione AWS services (Serviços da ).

    2. Em Serviço da AWS, selecione Greengrass.

    3. Em Tipo de evento, selecione Dados de telemetria do Greengrass.

  9. Selecione Next (Próximo).

  10. Em Destino 1, selecione serviço da AWS.

  11. Em Selecionar um destino, selecione Fila SQS.

  12. Em Fila, selecione seu perfil.

Crie uma regra de evento para obter dados de telemetria (CLI)

Use as etapas a seguir para usar o AWS CLI para criar uma regra do EventBridge que receba dados de telemetria publicados pelo núcleo do Greengrass. Isso permite que servidores web, endereços de e-mail e outros assinantes de tópicos respondam ao evento.

  1. Crie a regra.

    • Substitua thing-name pelo nome da coisa do núcleo.

      Para obter o nome da coisa, você usa o comando get-core-definition-version. O comando retorna o ARN da coisa que contém o nome da coisa.

    aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"

    As propriedades que são omitidas do padrão são ignoradas.

  2. Adicione o tópico como um destino de regra. O exemplo a seguir usa o Amazon SQS, mas você pode configurar outros tipos de destino.

    • Substitua queue-arn pelo ARN da sua fila do Amazon SQS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="queue-arn"
    nota

    Para permitir que o Amazon EventBridge invoque a fila de destino, você deve adicionar uma política baseada em recursos ao tópico. Para obter mais informações, consulte Permissões do Amazon SQS no Manual do usuário do Amazon EventBridge.

Para obter mais informações, consulte Eventos e padrões de eventos no EventBridge no Manual do usuário do Amazon EventBridge.

Solução de problemas de telemetria AWS IoT Greengrass

Use as informações a seguir para ajudar a solucionar os problemas de configuração de telemetria AWS IoT Greengrass.

Erro: a resposta contém "configurationStatus": "OutOfSync" depois de executar o comando get-thing-runtime-configuration

Soluções:

  • O serviço AWS IoT de sombra do dispositivo leva tempo para processar as atualizações de configuração de runtime e entregar as atualizações ao dispositivo de núcleo do Greengrass. Você pode esperar e verificar se as configurações de telemetria estão sincronizadas posteriormente.

  • Verifique se dispositivo de núcleo está online.

  • Habilite o Amazon CloudWatch Logs no AWS IoT Core para monitorar a sombra.

  • Use as métricas AWS IoT para monitorar sua coisa.