anexia/neos-monitoring

一个用于监控运行时版本、Composer 包版本和Composer 包许可证的Neos插件

1.0.1 2018-10-09 07:29 UTC

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,将显示通用错误。要自定义错误消息,只需抛出自定义消息的异常。

开发者名单

项目相关的外部资源