Monitoring OPAL
There are multiple ways you can monitor your OPAL deployment:
- Logs - Using the structured logs outputted to stderr by both the OPAL-servers and OPAL-clients
- Health-checks - OPAL exposes HTTP health check endpoints (See below)
- Callbacks - Using the callback webhooks feature - having OPAL-clients report their updates
- Statistics - Using the built-in statistics feature in OPAL (See below)
Health checks
OPAL Server
opal-server exposes http health check endpoints on /
& /healthcheck
.
Currently it returns 200 OK
as long as server is up.
OPAL Client
opal-client exposes http health check endpoints on /
& /healthcheck
.
The health check returns 200 OK
when both policy and data were successfully loaded into OPA, otherwise 503 Unavailable
is returned
Notice: if you don't except your opal-client to load any data into OPA, set OPAL_DATA_UPDATER_ENABLED: False
, so opal-client could report being healthy.
You can also configure opal-client to store dynamic health status in OPA, Learn more here
OPAL Statistics
By enabling OPAL_STATISTICS_ENABLED=true
(on both servers and clients), the OPAL-Server would start maintaining a unified state of all the clients and which topics they've subscribed to.
The state can then be retrieved as a JSON object by calling the /statistics
api route on the server