Logging and Monitoring

The balena-prometheus-exporter utilizes basic logging to track API calls, errors, and performance metrics. The logging functionality is implemented using Python’s built-in print function, allowing for simple and straightforward logging output.

Basic Logging

The exporter uses the print function to log various information, such as:

  • Missing environment variables: If the required BALENA_TOKEN environment variable is not set, the script prints an error message and exits.
    if not BALENA_TOKEN:
                  print("Please set the BALENA_TOKEN environment variable")
                  sys.exit(1)
              
  • API errors: If an API call fails, the script prints the error message returned by the API.
    if not response.ok:
                  print("Error: {}".format(response.text))
                  sys.exit(1)
              

Example Usage

To view the logging output, you can run the exporter in a container with the -d flag, which detaches the container from the terminal and runs it in the background.

$ docker run -d \
          --name balena-exporter \
          -p 8000:8000 \
          -e BALENA_TOKEN= \
          balena-exporter
          

The logging output will be displayed in the container’s logs, which can be accessed using the docker logs command:

$ docker logs balena-exporter
          

Future Enhancements

For more robust logging and monitoring, consider using a dedicated logging library like logging and incorporating metrics reporting through libraries like prometheus-client. This would allow for better control over log levels, formatting, and routing, as well as the ability to expose metrics in a Prometheus-compatible format.

References