Currently, Indicium itself provides no way to check if the service (and its dependencies) is/are healthy. For our transition to a microservice architecture for internal systems, some of which connect to Indicium as a data source, such a health check would be great to have.
Here are some elements I would say are required for a meaningful health check:
- Service availability
- This is the most basic check, basically just tells us if Indicium is running at all.
- Database connectivity
- In the context of Thinkwise software probably the second most important check, it tells us whether the Indicium service layer is successfully connected to the database.
- Database responsiveness
- Probably the most important check for Thinkwise software, it tells us the responsiveness of the database, which is generally a good indication of overall performance.
- Available memory
- It tells us how much system memory is available to the Indicium application. A useful indicator for performance, caching and, for Universal specifically, availability for staging resources.
Some optional nice-to-haves include:
- Available disk storage
- Depending on if Indicium ever writes to disk, it is useful to get an indication how much disk storage is available to the application.
- Backup database connectivity
- If present, a check telling us whether Indicium can successfully connect to the back-up database in case something happens to the primary database is a useful indicator of continued availability.
- App version check
- Tells us which version of Indicium itself or the implemented application is running.
I think this would be a good addition to Indicium as part of the Thinkwise platform, as well as a step forward to allowing other software to integrate with Indicium as a service easier and securely.
Should anyone have any questions, concerns or additional requirements, do please leave them in the comments!
Thanks in advance.
PS: This idea was based on a Thinkwise Community question posted earlier about the existence of a health check.