ttree/health

Flow 框架和 Neos CMS 的健康检查器

安装: 6

依赖: 0

建议者: 0

安全: 0

星标: 7

关注者: 4

分支: 0

开放问题: 2

类型:neos-package

dev-master 2021-03-12 10:15 UTC

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 的实例。您可以使用内置的 ErrorResultWarningResultSuccessResult

目前提供的检查包含“占位符”代码。真正的实现将在包的架构完成后进行。

如何创建自定义指标端点?

待办事项

赞助商和贡献者

此包的开发由 ttree 赞助(https://ttree.ch)。