customergauge / logstash

由 Logstash 提供的 Laravel APM & 日志

4.0.0 2024-06-24 13:49 UTC

README

此库将 Monolog 集成到 Laravel 中,以便与 Logstash 进行日志和指标通信。

安装

composer require customergauge/logstash

使用方法

日志

logging.php 中,为 Laravel 定义一个自定义通道

'http' => [
    'driver' => 'custom',
    'via' => LogstashLoggerFactory::class,
    'address' => sprintf('tcp://%s:9601', env('LOGSTASH_ADDRESS')),
    'processor' => env('LOGSTASH_PROCESSOR'),
],

这将指示 Laravel 使用端口 9601 上的 TCP 连接将任何日志写入 Logstash。TCP 将保证日志交付。处理器允许通过 Monolog 提供的 ProcessorInterface 系统操纵发送到 Logstash 的 JSON 格式的 $record 数组。处理器属性接受 httpqueue 的值。

指标

此库还允许通过 logging.php 文件中的 apm 配置收集应用程序指标。

    'apm' => [
        'enable' => env('LOGSTASH_APM_ENABLE', true),
        'address' => sprintf('udp://%s:9602', env('LOGSTASH_ADDRESS')),
    ],

对于指标,上述配置将指示 Laravel 使用 UDP 连接作为触发和遗忘的方式。交付不可保证,但代码执行不会被确认指标交付所延迟。

处理器

您可以配置 Http 和 Queue 处理器。处理器必须实现 \CustomerGauge\Logstash\Processors\HttpProcessorInterface\CustomerGauge\Logstash\Processors\QueueProcessorInterface。它们提供了使用 Monolog 提供的 ProcessorInterface 系统修改将要流式传输到 Logstash 的 $record 的机会。