murderxchip / trace
There is no license information available for the latest version (1.2.2) of this package.
基于HTTP的链路日志跟踪Laravel/Lumen插件,A trace logger SDK for http request between Laravel/Lumen apps by supplying enhanced GuzzleClient implementation
1.2.2
2019-08-29 05:50 UTC
Requires
- guzzlehttp/guzzle: ~6.0
- illuminate/support: 5.5.*
- laravel/lumen-framework: 5.5.*
- monolog/monolog: ~1.24
This package is auto-updated.
Last update: 2025-01-29 06:19:05 UTC
README
###Lumen/Laravel 服务链路日志跟踪,采用header传递自定义trace信息方式聚合请求链路日志,本地json结构化存储方便elk采集。
使用方法:
-
安装 项目composer.json中引入
"repositories": [ { "type": "git", "url": "https://github.com/murderxchip/laravel-trace-log.git" } ],
"require" 字段增加
"cactus/tracelog": "v1.0.1"
composer update cactus/tracelog
-
注册provider
$app->register(\Cactus\TraceLog\TraceLogServiceProvider::class);
-
引入middleware 在bootstrap/app.php 增加
$app->middleware([ \Cactus\TraceLog\TraceLogMiddleWare::class ]);
-
日志路径 日志默认存储位置为 storage/logs 下 json 目录为json格式输出
-
微服务中 guzzle 默认 Client替换为 \Cactus\Trace\HttpClient 实例
$client = new HttpClient();
或者直接使用 app('rpcClient') 此为GuzzleClient扩展客户端,接口方法保持一直
-
输出示例
{ "message": "apilog", "context": { "apitrace": { "Host": "server.test", "Method": "GET", "Headers": "{\"connection\":[\"keep-alive\"],\"accept\":[\"*/*\"],\"accept-encoding\":[\"gzip, deflate\"],\"user-agent\":[\"python-requests/2.21.0\"],\"host\":[\"cactusserver-mall.test\"],\"content-length\":[\"\"],\"content-type\":[\"\"]}", "PathInfo": "/version", "QueryString": null, "Protocol": "HTTP/1.1", "IP": "127.0.0.1", "User-Agent": "python-requests/2.21.0", "Params": "[]", "RequestUri": "/version", "RequestTime": "2019-04-11 14:20:36", "Response": "{\"data\":{\"version\":\"Lumen (5.5.2) (Laravel Components 5.5.*)\"},\"meta\":{\"timestamp\":1554963636.89317,\"response_time\":0.0965871810913086}}", "Status": 200, "ResponseTime": "2019-04-11 14:20:36", "ElapseTime": "9ms" } }, "level": 200, "level_name": "INFO", "channel": "lumen", "datetime": { "date": "2019-04-11 14:20:36.917776", "timezone_type": 3, "timezone": "Asia/Shanghai" }, "extra": { "uid": "c36ea4f2386368c1bff60ed0" }, "Trace": { "TraceId": "trace:15549636365caedcb4de348", "TraceIndex": "0.1", "TracePath": "/Path" } }
Trace信息会通过header进行传递
####ChangeLog 1.2.1 版本变更
- trace id 精度提高
- 修复trace index无效问题
- response增加traceid返回