Differentiating Messages from aws.greengrass.telemetry.NucleusEmitter in a multi-core deployment

0

We have multiple greengrass core devices that each have their own deploment. In each deployment, the 'aws.greengrass.telemetry.NucleusEmitter' is configured as follows: { "reset": [], "merge": { "pubSubPublish": "false", "mqttTopic": "<IOT-THING-NAME>", "telemetryPublishIntervalMs": <interval> } } .

This allows us to distinguish between the different MQTT messages returned by the edge devices as they each arrive on a different topic. If we were to place all gg cores under the same deployment, is there a way of distinguishing between the messages that will be published on that topic ? Our requirement is to identify individual gg core devices that have memory/component issues, using the 'aws.greengrass.telemetry.NucleusEmitter' component, while having all devices under one deployment.

asked 2 years ago316 views
2 Answers
1
Accepted Answer

Nucleus 2.6 will support interpolation in component configuration (currently it is only supported in the component recipe Lifecycle section). That will enable you to use the {iot:thingName} variable in the mqttTopic config. Unfortunately, this hasn't been released yet and I can't share a release date. But once that happens, this will definitely be the easiest way.

https://docs.aws.amazon.com/greengrass/v2/developerguide/component-recipe-reference.html#recipe-variables

In the interim, you can either create individual Thing deployments containing only the aws.greengrass.telemetry.NucleusEmitter component. Or, you can write your own custom bridge component that forwards messages from $local/greengrass/telemetry to an MQTT topic of your choice. This component can read Nucleus ThingName information from environment variables.

AWS
answered 2 years ago
0

This does not appear to be working yet as far as I can tell. I have a deployment that includes the NucleusEmitter component, as well as Nucleus 2.6.0. I have the configuration for mqttTopic set to device/{iot:ThingName}/telemetry. However using the MQTT test client subscribed to device/+/#, I can see that the thing name is not being interpolated.

answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions