waylandace / xray
适用于 AWS X-Ray 的基础 PHP 仪表库
v1.4.3
2022-05-12 10:58 UTC
This package is auto-updated.
Last update: 2024-09-12 16:14:29 UTC
README
waylandace\xray
适用于 AWS X-Ray 的基础 PHP 仪表库。它是 https://github.com/patrickkerrigan/php-xray 的分支
在亚马逊发布官方 AWS X-Ray PHP SDK 之前,此库允许您向 PHP 应用程序添加基本仪表,并通过 AWS X-Ray 守护进程报告跟踪。
请注意,此库不提供对流行库的自动仪表化。为了仪表化 SQL 查询、HTTP 请求和其他服务,您需要创建自己的包装器,以适当地开始和结束跟踪段。
安装
推荐使用 Composer 安装此库
$ composer require waylandace/xray ^1.2
使用
开始跟踪
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()
方法将始终返回最近打开的段,允许您根据需要深入嵌套。
向跟踪添加异常
您可以根据需要向跟踪添加任意数量的异常。嵌套异常将被展平并包含在跟踪中。添加异常 不会 设置错误/故障标志。
Trace::getInstance() ->getCurrentSegment() ->addException($exception) ->setError(true);
结束跟踪
在请求结束时,您将想要结束并提交您的跟踪。默认情况下,只支持通过 AWS X-Ray 守护进程提交。
Trace::getInstance() ->end() ->setResponseCode(http_response_code()) ->submit(new DaemonSegmentSubmitter());