Skip to main content

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.

NewOpen

Hello @Jeroen de Klerk 

We have implemented a health check endpoint some time ago, you can read more about it here. It already includes some of the capabilities mentioned in this idea, such as Service availability, Database connectivity and App version check.

In the upcoming sprint we will also add support for the Database responsiveness capability. This will be based on how long it took to open a connection to the database. Note that this will give an indication of network and connection availability, but not of database I/O availability. Keep an eye on our release notes for this feature.

It does not include Available memory, Available disk storage and Backup database connectivity and we currently have no plans to add these capabilities. These capabilities are much more limited in usefulness and involve much more complexity to implement. For monitoring to this extent, we'd recommend using Application Insights and/or tools at the Operating System level such as performance counters.


OpenCompleted