anexia / neos-monitoring
一个用于监控运行时版本、Composer 包版本和Composer 包许可证的Neos插件
Requires
- php: >=7.0
- composer/semver: ~1.4.2
- neos/flow: >=4.0
This package is auto-updated.
Last update: 2024-09-28 19:58:24 UTC
README
这是一个用于监控活动Composer包更新的Neos插件。它也可以用来检查网站是否正常运行。
安装和配置
通过composer安装模块,因此请修改您的composer.json
中的require
部分
"require": {
"anexia/neos-monitoring": "1.0.1"
}
在您的站点包中添加以下内容 /app/Packages/Sites/[SITE_NAME]/Configuration/Settings.yaml
Anexia:
Neos:
Monitoring:
queryParameter: 'access_token'
accessToken: 'YOUR_CUSTOM_ACCESS_TOKEN'
status:
checks:
class: Anexia\Neos\Monitoring\Check\DatabaseCheck
现在运行
composer update [-o]
要启用插件,请运行
php ./flow neos.flow:package:rescan
php ./flow package:activate Anexia.Neos.Monitoring
用法
该包注册了一些自定义REST端点,可用于监控。请确保已定义anexia/Neos/Monitoring/accessToken,因为这将用于授权。如果未配置令牌,端点将返回503 HTTP_STATUS代码;如果缺少令牌,则返回403 HTTP_STATUS代码;如果令牌无效,则返回401 HTTP_STATUS代码。如果一切正常,将返回200 HTTP_STATUS代码。
核心和Composer包的版本监控
返回包含平台和Composer包信息的列表。
URL: /anxapi/v1/modules?access_token=custom_access_token
响应头
Status Code: 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Allow: GET
Content-Type: application/json
响应体
{
"runtime":{
"platform":"php",
"platform_version":"7.0.0",
"framework":"neos",
"framework_installed_version":"3.0.0",
"framework_newest_version":"5.0.0"
},
"modules":[
{
"name":"package-1",
"installed_version":"3.1.10",
"installed_version_licences":[
"BSD-2-Clause"
],
"newest_version":"3.3.2",
"newest_version_licences":[
"BSD-3-Clause"
]
},
{
"name":"package-2",
"installed_version":"1.4",
"installed_version_licences":[
"MIT"
],
"newest_version":"1.4",
"newest_version_licences":[
"MIT"
]
},
...
]
}
实时监控
此端点可用于验证应用程序是否正常运行。它检查数据库连接是否正常。它允许通过简单地将类添加到配置中来注册自定义检查。
URL: /anxapi/v1/up?access_token=custom_access_token
响应头
Status Code: 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Credentials: true
Content-Type: text/plain
响应体
OK
自定义up检查失败(无自定义错误消息)
响应头(自定义检查失败,无附加错误消息)
Status Code: 500 Internal Server Error
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Allow: GET
Content-Type: text/plain
响应体(包含默认错误消息)
CLASS didn't pass the check.
自定义up检查失败(含自定义错误消息)
响应头(自定义检查失败,无附加错误消息)
Status Code: 500 Internal Server Error
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Credentials: true
Content-Type: text/plain
响应体(包含自定义错误消息)
This is an example for a custom db check error message!
自定义实时监控钩子
anexia/neos-monitoring仅检查数据库连接。要添加更多up检查,可以定义一个自定义类。该类必须实现Anexia\Neos\Monitoring\Check\CheckInterface
。
将新类添加到项目源代码树中,例如 /app/Packages/Sites/[SITE_NAME]/Classes/Check/CustomCheck.php
,例如
<?php namespace Anexia\Neos\Monitoring\Check; use Neos\Flow\Annotations as Flow; use Neos\Flow\Persistence\Doctrine\Exception\DatabaseConnectionException; use Neos\Flow\Persistence\PersistenceManagerInterface; class DatabaseCheck implements CheckInterface { /** * @Flow\Inject * @var PersistenceManagerInterface */ protected $persistenceManager; /** * Check if a specific function works correctly. * Return false for a generic error message, otherwise throw an exception with a custom message * * @return bool * @throws DatabaseConnectionException */ public function run(): bool { if ($this->persistenceManager->isConnected()) { return true; } throw new DatabaseConnectionException('Could not connect to the database.'); } }
run
方法将由anexia/neos-monitoring插件up检查自动调用。如果run
方法返回false
或抛出异常,anexia/neos-monitoring up检查将失败。如果run
方法返回false
,将显示通用错误。要自定义错误消息,只需抛出自定义消息的异常。
开发者名单
- Nikita Bernthaker NBernthaler@anexia-it.com,首席开发者