Table Of Content
Overview
The CPS application monitoring and management using HTTP endpoints is implemented using Spring Boot Actuator.
The available features and endpoint paths are configured using application.yml configuration file.
Below is the list of endpoints configured with examples of usage (curl using localhost:8080 as host).
Endpoints
Info: /manage/info
The endpoint provides information about the application build (content of /META-INF/build-info.properties files)
$ curl http://localhost:8080/manage/info -i -X GET
Health: /manage/health
The set of endpoints providing the current status of various components and the application in general.
The status returned is one of below:
- UP - The component or subsystem is working as expected.
- DOWN - The component is not working.
- OUT_OF_SERVICE - The component is out of service temporarily.
- UNKNOWN - The component state is unknown.
The following separate components are configured for health status check
- /manage/health/db - provides information on database type and connectivity state
- /manage/health/diskSpace - provides information on current disk space usage and threshold configured
- /manage/health/ping - ability to be pinged (always UP)
$ curl http://localhost:8080/manage/health -i -X GET $ curl http://localhost:8080/manage/health/db -i -X GET $ curl http://localhost:8080/manage/health/diskSpace -i -X GET $ curl http://localhost:8080/manage/health/ping -i -X GET
The following endpoints are exposed to provide readiness and liveness probes for containerized application management
platforms like kubernetes
- /manage/health/readiness - indicates the application completed the initialization stage and ready to accept the requests
- /manage/health/liveness - indicates the application is up and running, no need to restart the container
$ curl http://localhost:8080/manage/health/readiness -i -X GET $ curl http://localhost:8080/manage/health/liveness -i -X GET
Logging: /manage/loggers
The endpoint allows to retrieve information about and update the log level setting on per logger identifier basis.
The following endpoints are exposed
- /manage/loggers - provides information about all the loggers configured
- /manage/loggers/{logger-id} GET - retrieves log level settings for requested logger identifier
- /manage/loggers/{logger-id} POST - updates or resets the log level settings for requested logger identifier
Getting log level information :
$ curl http://localhost:8080/manage/loggers -i -X GET $ curl http://localhost:8080/manage/loggers/org.onap.cps -i -X GET
Updating log level:
$ curl http://localhost:8080/manage/loggers/org.onap.cps -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "DEBUG"}'
Resetting log level:
$ curl http://localhost:8080/manage/loggers/org.onap.cps -i -X POST -H 'Content-Type: application/json' -d '{}'
Resources
Documentation:
Tutorials:
- https://spring.io/guides/gs/actuator-service/
- https://www.baeldung.com/spring-boot-actuators
- https://www.baeldung.com/spring-boot-changing-log-level-at-runtime