maxfrerichs/typo3-prometheus

从TYPO3系统状态报告中生成Prometheus可读的指标

安装: 172

依赖: 0

建议者: 0

安全性: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:typo3-cms-extension

1.0.0-rc2 2024-06-07 12:11 UTC

This package is auto-updated.

Last update: 2024-09-17 19:32:21 UTC


README

关于此扩展

此扩展从系统状态信息生成Prometheus可读的指标(更多关于“如何工作”)并在端点公开。

需求

  • TYPO3 11.5或更高版本
  • PHP 8.0或更高版本

如何工作

  • TYPO3有一个名为"cms-reports"的系统扩展,提供有关您的TYPO3系统和环境的详细信息。虽然系统报告在后台模块中显示,但报告没有以任何方式导出。
  • "cms-reports"提供了一个API,可用于在您的安装中注册状态提供者。每个状态提供者可以提供一个或多个状态报告。
  • 每个状态报告由标题、严重性、消息和值组成。
  • 严重性是一个范围从-1(信息)到2(错误)的数字值,可用于生成仪表指标。"仪表"是Prometheus客户端库提供的核心指标类型之一。

如何使用

  • 使用composer req maxfrerichs/typo3-prometheus在您的首选TYPO3发行版中安装扩展
  • 配置您的Web服务器在非HTTP端口上提供服务TYPO3,默认为9090。请注意:不要将此端口暴露给Web,此扩展没有内置的认证机制来限制来自公共的访问。如果您想将端点公开给Web,应实现自己的安全手段。
  • 在同一个Web服务器上安装和配置Prometheus。有关此主题的更多信息,请参阅Prometheus文档

已知问题

  • 直接通过依赖注入使用StatusRegistry类会导致Extbase前端插件中断,因为ConfigurationManager在某些点被调用时,没有设置$GLOBALS['TYPO3_REQUEST'],导致它回退到BackendConfigurationManager,而我们在前端。这阻止了我们自动聚合所有注册的状态报告作为Prometheus指标,并且一些依赖Extbase功能的报告无法使用。

API

通过创建监听RegisterStatusProviderEvent的事件监听器并调用事件监听器中的$event->injectStatusProvider(),可以注册自定义StatusProvider类。注意:当使用TYPO3 11.5时,您可能需要在Configuration/Service.yaml文件中将实现StatusProviderInterface的类设置为public。

待办事项

  • 添加对其他指标类型的支持(可选)。
  • 添加对旧版TYPO3版本的支持。
  • 添加更多指标

贡献

只需这样做。打开问题,告诉我你的想法,请求特定功能,报告错误等等。您还可以给"typo3@maxfrerichs.dev"发邮件:-)