umanit/life-page-bundle

一个检查网站各种服务状态的生存页面。

安装数: 1,622

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 5

分支: 0

开放性问题: 0

类型:symfony-bundle

1.0.1 2023-03-03 15:31 UTC

This package is auto-updated.

Last update: 2024-08-30 01:44:07 UTC


README

此包允许您在您的网站上设置生存页面。有一些预定义的检查器可用,并会根据您实际的工程配置自动配置。

安装

使用包管理器 composer 安装此扩展。

composer require umanit/life-page-bundle

将包加载到您的Symfony项目中。

<?php

# config/bundles.php
return [
    // ...
    Umanit\LifePageBundle\UmanitLifePageBundle::class => ['all' => true],
];

导入路由文件

umanit_life_page:
    resource: '@UmanitLifePageBundle/Resources/config/routing.yaml'

或者,如果您想自定义它,则调整默认声明

umanit_life_page:
    path: /_life/{type}
    controller: umanit_life_page.controller_life_page
    methods: [GET]
    requirements:
        type: '[a-zAZ0-9]+'
    defaults:
        type: all

这就完成了!您的生存页面现在应该可以通过路径 /_life 访问,并且如果您的配置满足要求,一些检查已经完成。

可用的检查器

以下检查器可用。如果可能的话,每个检查器都会自动配置,但您也可以在需要时手动使用它们。

  1. DoctrineChecker
  2. PommChecker
  3. FosElasticaChecker
  4. SmtpMailerChecker
  5. SwiftmailerChecker
  6. MessengerChecker

DoctrineChecker

使用实体管理器,尝试连接到数据库。

自动配置

如果存在服务 doctrine.orm.default_entity_manager,则使用它添加检查器。

PommChecker

使用Pomm检索默认会话并尝试获取客户端编码。

自动配置

如果存在服务 pomm.default_session,则使用它添加检查器。

FosElasticaChecker

使用客户端,尝试获取服务器版本。

自动配置

如果存在服务 fos_elastica.client.default,则使用它添加检查器。

SmtpMailerChecker

使用邮件发送传输,并且只有当它是 SmtpTransport 的实例时,才在SMTP服务器上执行 NOOP 命令。

自动配置

如果存在服务 mailer.default_transport,则使用它添加检查器。

⚠️ 如果服务不是 SmtpTransport 的实例,则检查器将被忽略。

SwiftmailerChecker

使用SwiftMailer实例,尝试ping传输。

自动配置

如果存在服务 swiftmailer.mailer.default,则使用它添加检查器。

MessengerChecker

使用消息传递传输,并且只有当它是 MessageCountAwareInterface 的实例时,才尝试计算可用消息的数量。

自动配置

对于每个带有 messenger.receiver 标签的服务,将添加一个检查器。

⚠️ 如果服务不是 MessageCountAwareInterface 的实例,则检查器将被忽略。

添加自定义检查器

创建一个扩展 CheckerInterface 的服务并将其标记为 umanit_life_page.service_checker。您的检查器现在应该显示在生存页面上。

使用 getName 方法在页面上命名检查器,而使用 check 方法确定要显示的状态。如果是 true 则显示 OK,如果是 false 则显示 KO,如果是 null 则忽略检查器。

仅检查特定服务

通过添加您自己的服务检查器服务,如果需要,您可以仅检查特定服务。您需要遵循以下步骤

  1. 为一些服务检查器添加自定义标签;
  2. 使用类 Umanit\LifePageBundle\Checker\ServiceChecker 声明一个新服务
    • 服务 必须 使用 tagged_iterator 作为参数,使用您在上一步中创建的自定义标签。
    • 服务 必须 标记为 umanit_life_page.service_checker_collection 并具有唯一的 type 值。

示例

<service id="umanit_life_page.critical_services_checker" class="Umanit\LifePageBundle\Checker\ServiceChecker">
   <argument type="tagged_iterator" tag="umanit_life_page.critical_service_checker" />
   <tag name="umanit_life_page.service_checker_collection" type="critical" />
</service>

完成之后,您可以通过路径 /_life/{type} 访问检查,例如在我们的例子中为 /_life/critical

该包已经提供了 critical 类型及其所有检查器都使用它。

贡献

欢迎提交拉取请求。对于重大更改,请先打开一个问题来讨论您希望进行哪些更改。

许可证

MIT