Package in development, not ready for production
- Create endpoints to display your application health status
- API to create multiple health status endpoints
- API to create custom check
- Implement a health check for Database monitoring
- Implement a health check for ElasticSearch monitoring
- Implement a health check for Redis monitoring
- Create endpoints to display your application metrics (promotheus)
- API to create multiple metrics endpoints
- API to create custom metrics
- Implement a metrics for the number of node in the CR, for live workspace
- Implement a metrics for the number of node in the CR, for non live workspaces
- Implement a metrics for database size
- Implement a metrics for elasticsearch indexes size
- Implement a metrics for asset disk usage
In your Settings.yaml
:
Ttree:
Health:
presets:
default:
checks:
database:
class: Ttree\Health\Check\DatabaseCheck
elasticsearch:
class: Ttree\Health\Check\ElasticSearchCheck
newsletterSender:
class: Ttree\Health\Check\NewsletterSenderCheck
Then you can create your routing configuration, in your Routes.yaml
:
-
name: 'health - monitoring endpoint'
uriPattern: 'health'
defaults:
'@package': 'Ttree.Health'
'@controller': 'Monitoring'
'@action': 'index'
'@format': 'json'
'preset': 'default'
appendExceedingArguments: true
httpMethods: [GET]
The response should be something like this:
{
"endpoint": "default",
"success": {
"count": 1,
"message": {
"database": {
"status": "Success",
"message": "Database access works"
}
}
},
"warnings": {
"count": 1,
"message": {
"elasticsearch": {
"status": "Warning",
"message": "ElasticSearchCheck is not in green state"
}
}
},
"errors": {
"count": 1,
"message": {
"newsletterSender": {
"status": "Error",
"message": "Newsletter Sender is down"
}
}
}
}
The response status is 200
if there is not errors and warnings.
Your custom check must implement Ttree\Health\Check\CheckInterface
. The response of the run
method must return an
instance of Ttree\Health\Result\ResultInterface
. You can use the builtin ErrorResult
, WarningResult
and SuccessResult
.
Currently the provided check contains "dummy" code. Real implementation will be done later when the architecture of the package is finished.
TODO
The development of this package is sponsored by ttree (https://ttree.ch).