Tracking Device Joins

I want to know the best way to track:

  • when devices send join requests.
  • when devices get sent join accepts.

I also want to know when join requests fail to process because:

  • Device with matching EUI does not exist on the server.
  • Device with matching EUI exists but app_key is incorrect.

In a past version of chirpstack I was able to create a shell script to scrape the log files and use telegraf to dump this info into influxdb but the messages have changed in the latest version so that doesn’t work anymore.

What is the best method to keep track of these joins over all gateways over time?

You can create in application HTTP integration and set url path to push the Join notification, Device status notification, ACK notification etc.

I have done that but that only gives messages when:

  1. A device sends a join request and the server sends a join accept
  2. That device subsequently sends a data uplink

It does not help when trying to debug sensors that either fail to receive the join accept or sensors that have incorrect app_keys among other issues

suscribe to mqtt topic

1 Like

While technically possible, the uplink from the chirpstack-gateway-bridge for device join requests just has the raw payload which needs to be translated from base64 to hex and then get the eui from those bytes which is more complicated than I think it needs to be.

a “too complicated” hack i put together to process device joins and output in a format that influxdb can consume via telegraf MQTT: