Package Data | |
---|---|
Maintainer Username: | murderxchip |
Maintainer Contact: | 7853151@qq.com (qinming) |
Package Create Date: | 2019-04-11 |
Package Last Update: | 2019-08-29 |
Home Page: | |
Language: | PHP |
License: | Unknown |
Last Refreshed: | 2025-02-06 15:02:33 |
Package Statistics | |
---|---|
Total Downloads: | 140 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 11 |
Total Watchers: | 0 |
Total Forks: | 0 |
Total Open Issues: | 1 |
###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进行传递