wy/neos-oh-dear

此包最新版本(v1.1.1)没有提供许可证信息。

使用 OhDear.app 跟踪您的应用程序关键指标

v1.1.1 2023-05-15 10:04 UTC

This package is auto-updated.

Last update: 2024-09-15 12:43:50 UTC


README

此包可轻松监控您的 Neos 应用程序关键指标,并为 Oh Dear 输出 JSON 格式。

安装

您可以通过 composer 轻松安装此插件

composer require wy/neos-oh-dear

设置

  1. 在网站根目录下创建一个文件,例如 health.php(请参阅下面的示例)
    1. 需要 ../Packages/Plugins/Wysiwyg.OhDear/autoload.php
    2. 使用 Composer 自动加载器初始化 \Wysiwyg\OhDear\Application 类(以下为示例)
    3. 使用正确的配置值初始化您的检查
    4. 执行步骤
  2. 在 Neos 中以下配置路径下配置您的 Oh Dear 秘密:Wysiwyg.OhDear.healthSecret(仅限生产环境)
  3. 在您的网页浏览器中打开文件,结果应该是一个 JSON 字符串(请参阅以下示例)

可用的检查

示例文件

<?php
use \Wysiwyg\OhDear\Checks;

$composerAutoloader = require_once '../Packages/Plugins/Wysiwyg.OhDear/autoload.php';
$app = new \Wysiwyg\OhDear\Application($composerAutoloader);

/** @var array<int, \Wysiwyg\OhDear\Checks\Check> $checks */
$checks = [
    new Checks\DiskSpaceCheck(),
    new Checks\CpuLoadCheck(),
    new Checks\DatabaseCheck(
        'mysql',
        $app->getNeosConfig('Neos.Flow.persistence.backendOptions.host'),
        $app->getNeosConfig('Neos.Flow.persistence.backendOptions.user'),
        $app->getNeosConfig('Neos.Flow.persistence.backendOptions.password'),
        $app->getNeosConfig('Neos.Flow.persistence.backendOptions.dbname')
    ),
    new Checks\RedisCheck(
        $app->getNeosConfig('Neos_Fusion_Content.backendOptions.hostname', 'Caches'),
        $app->getNeosConfig('Neos_Fusion_Content.backendOptions.password', 'Caches'),
        $app->getNeosConfig('Neos_Fusion_Content.backendOptions.database', 'Caches'),
        (int) $app->getNeosConfig('Neos_Fusion_Content.backendOptions.port', 'Caches')
    ),
    new Checks\SwiftSmtpCheck(
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.host'),
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.encryption'),
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.port'),
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.user'),
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.password'),
        $app->getNeosConfig('Neos.SwiftMailer.transport.options.streamOptions'),
    ),
];

$app->process($checks);

JSON 输出示例

{
    "finishedAt": 1639735170,
    "checkResults": [
        {
            "name": "Disk space",
            "label": "",
            "notificationMessage": "The disk is almost full (90% used).",
            "shortSummary": "90%",
            "status": "warning",
            "meta": {
                "disk_space_used_percentage": 90
            }
        },
        {
            "name": "CPU Load",
            "label": "",
            "notificationMessage": "",
            "shortSummary": "3.31982421875 2.98046875 2.98046875",
            "status": "ok",
            "meta": {
                "lastMinute": 3.31982421875,
                "last5Minutes": 2.98046875,
                "last15Minutes": 2.98046875
            }
        },
        {
            "name": "Database Connection",
            "label": "",
            "notificationMessage": "",
            "shortSummary": "Conntected",
            "status": "ok",
            "meta": []
        }
    ]
}