ttree / health
Flow 框架和 Neos CMS 的健康检查器
dev-master
2021-03-12 10:15 UTC
Requires
- neos/flow: ^7.0
This package is auto-updated.
Last update: 2024-09-12 20:29:05 UTC
README
该包处于开发状态,尚未准备用于生产
功能
- 创建端点以显示您的应用程序健康状态
- 创建多个健康状态端点的 API
- 创建自定义检查的 API
- 实现数据库监控的健康检查
- 实现 ElasticSearch 监控的健康检查
- 实现 Redis 监控的健康检查
- 创建端点以显示您的应用程序指标(Prometheus)
- 创建多个指标端点的 API
- 创建自定义指标的 API
- 实现 CR 中节点数量的指标,用于实时工作空间
- 实现 CR 中节点数量的指标,用于非实时工作空间
- 实现数据库大小的指标
- 实现 Elasticsearch 索引大小的指标
- 实现资产磁盘使用的指标
如何创建自定义状态端点?
在您的 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
路由配置
然后您可以在 Routes.yaml 中创建路由配置
- name: 'health - monitoring endpoint' uriPattern: 'health' defaults: '@package': 'Ttree.Health' '@controller': 'Monitoring' '@action': 'index' '@format': 'json' 'preset': 'default' appendExceedingArguments: true httpMethods: [GET]
响应应类似于这样
{
"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"
}
}
}
}
如果没有错误和警告,响应状态为 200
如何创建自定义检查?
您的自定义检查必须实现 Ttree\Health\Check\CheckInterface。方法 run 的响应必须返回一个 Ttree\Health\Result\ResultInterface 的实例。您可以使用内置的 ErrorResult、WarningResult 和 SuccessResult。
目前提供的检查包含“占位符”代码。真正的实现将在包的架构完成后进行。
如何创建自定义指标端点?
待办事项
赞助商和贡献者
此包的开发由 ttree 赞助(https://ttree.ch)。