pkerrigan / xray
一个基本的AWS X-Ray PHP性能分析库
v1.4.0
2022-01-09 12:20 UTC
Requires
- php: >=7.1
- ext-json: *
- ext-sockets: *
Requires (Dev)
- phpunit/phpunit: ^9|^8|^7
This package is auto-updated.
Last update: 2024-09-06 23:36:25 UTC
README
pkerrigan\xray
一个基本的AWS X-Ray PHP性能分析库
在亚马逊发布官方PHP SDK for AWS X-Ray之前,此库允许您为PHP应用程序添加基本性能分析,并通过AWS X-Ray守护进程报告跟踪。
请注意,没有提供对流行库的自动性能分析。为了对SQL查询、HTTP请求和其他服务进行性能分析,您需要创建自己的包装器,以适当的方式启动和结束跟踪段。
安装
推荐使用Composer安装此库
$ composer require pkerrigan/xray ^1
使用方法
开始跟踪
Trace
类表示AWS X-Ray跟踪的最高级别,可以作为单例在代码的任何地方轻松访问,包括在框架和依赖注入器初始化之前。
您应该在请求的早期开始跟踪
use Pkerrigan\Xray\Trace; Trace::getInstance() ->setTraceHeader($_SERVER['HTTP_X_AMZN_TRACE_ID'] ?? null) ->setName('app.example.com') ->setUrl($_SERVER['REQUEST_URI']) ->setMethod($_SERVER['REQUEST_METHOD']) ->begin();
向跟踪中添加段
您可以根据需要向跟踪中添加任意数量的段,包括嵌套段。要将SQL查询添加到跟踪中,您将执行以下操作
Trace::getInstance() ->getCurrentSegment() ->addSubsegment( (new SqlSegment()) ->setName('db.example.com') ->setDatabaseType('PostgreSQL') ->setQuery($mySanitisedQuery) // Make sure to remove sensitive data before passing in a query ->begin() ); // Run your query here Trace::getInstance() ->getCurrentSegment() ->end();
getCurrentSegment()
方法始终返回最近打开的段,允许您根据需要嵌套到足够的深度。
结束跟踪
在请求结束时,您将想要结束并提交您的跟踪。默认情况下,只支持通过AWS X-Ray守护进程提交。
Trace::getInstance() ->end() ->setResponseCode(http_response_code()) ->submit(new DaemonSegmentSubmitter());
尚未实现的功能
- 异常和堆栈跟踪支持
- 提交不完整的段