customergauge / logstash
由 Logstash 提供的 Laravel APM & 日志
4.0.0
2024-06-24 13:49 UTC
Requires
- php: >=8.2
- ext-json: *
- illuminate/config: >=10.0
- illuminate/contracts: >=10.0
- illuminate/http: >=10.0
- illuminate/support: >=10.0
- monolog/monolog: >=3.0
Requires (Dev)
- aws/aws-sdk-php: ^3.164
- guzzlehttp/guzzle: ^7.2
- orchestra/testbench: >=7.0
Suggests
- bref/bref: Required when using LambdaProcessor
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
数组。处理器属性接受 http
或 queue
的值。
指标
此库还允许通过 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
的机会。