Monitoring

Healthcheck

The RetrieveHealthcheck API endpoint may be used to perform a basic healthcheck. This endpoint does not make any request to the database or to any services that the backend depends on, and does not verify authentication tokens. It only allows to check whether the backend can receive and respond to an API request.

Prometheus metrics

The arkindex gunicorn command used to start a production server for Arkindex listens for API requests on an additional port that is not meant to be exposed publicly. This port can be configured using the metrics_port setting.

Through this port, two additional endpoints are available that can output metrics in the Prometheus text format:

/metrics/views/

HTTP request statistics gathered by the django-prometheus project.

/metrics/

Arkindex-specific metrics computed only when this URL gets requested.

Arkindex metrics

The following metrics are returned by the /metrics/ endpoint:

arkindex_instance

An empty metric, only used to provide the common labels defined below.

arkindex_tasks

The number of tasks that are in a Pending or Unscheduled state, grouped by farm. The farm and state are provided as labels.

arkindex_agent_ping

POSIX timestamp representing the last time a Ponos agent has requested its next actions using the RetrieveAgentActions API endpoint. The farm and the agent’s hostname are provided as labels.

All metrics include the following labels:

hostname

the instance’s hostname as set in the public_hostname setting.

env

the instance’s environment as set in the arkindex_env setting.

Sentry

The Arkindex backend and frontend, as well as Ponos agents in Enterprise Edition, can report errors to Sentry. This can help in troubleshooting deployment issues as well as identifying bugs in Arkindex itself.

The Sentry settings for both the backend and frontend are managed in the sentry section of the backend configuration.

Ponos agents are configured using their own sentry section.