Sensor Troubleshooting

If a particular sensor is not running or appears to not be working (e.g. triggers are not emitted) follow these steps to debug it:

1. Verify Sensor is Registered

The first step is verifying that the sensor is registered in the database. You can do that by inspecting the output of the CLI command below and making sure that your sensor is present:

st2 sensor list

If your sensor is not listed, this means it is not registered. You can register it by running the st2ctl script:

sudo st2ctl reload --register-sensors --register-fail-on-failure --verbose

This will register sensors for all the packs which are available on the file system. As you can see, we also use --register-fail-on-failure and --verbose flags.

This will cause the register script to exit with a non-zero exit code, and print a failure in case registration of a particular sensor fails (e.g. typo in sensor metadata file, invalid YAML, etc).

2. Verify Virtual Environment Exists

After confirming that the sensor has been registered, you should check that a virtual environment has been created for that sensor’s pack.

You can check this by confirming the existence of the /opt/stackstorm/virtualenvs/<pack name> directory. If the directory and virtual environment does not exist, you can create it using this command:

st2 run packs.setup_virtualenv packs=<pack name>

3. Checking st2sensorcontainer Logs

If the sensor still does not appear to be running or working, you should run the sensor container service in the foreground in debug and single sensor mode. In this mode the sensor container will only run the sensor you specified and all log messages with level DEBUG and higher will be printed directly to the console.

/opt/stackstorm/st2/bin/st2sensorcontainer --config-file=/etc/st2/st2.conf --debug --sensor-ref=pack.SensorClassName

The log output will usually give you a clue as to what is going on. Common issues include typos and syntax errors in the sensor class code, uncaught exceptions being thrown that causes the sensor to exit, etc.