Zipkin PHP 项目使用教程
zipkin-phpZipkin instrumentation for PHP项目地址:https://gitcode.com/gh_mirrors/zi/zipkin-php
1. 项目的目录结构及介绍
Zipkin PHP 项目的目录结构如下:
zipkin-php/
├── src/
│ ├── Annotation.php
│ ├── HttpClient.php
│ ├── ...
│ └── Tracer.php
├── tests/
│ ├── AnnotationTest.php
│ ├── HttpClientTest.php
│ ├── ...
│ └── TracerTest.php
├── examples/
│ ├── example.php
│ └── ...
├── composer.json
├── README.md
└── ...
目录介绍
-
src/
:包含项目的核心源代码文件。Annotation.php
:定义了跟踪注解的类。HttpClient.php
:提供了与 Zipkin 服务器通信的 HTTP 客户端。Tracer.php
:核心跟踪类,用于创建和管理跟踪。
-
tests/
:包含项目的单元测试文件。AnnotationTest.php
:测试注解类的功能。HttpClientTest.php
:测试 HTTP 客户端的功能。TracerTest.php
:测试跟踪类的功能。
-
examples/
:包含示例代码,展示如何使用 Zipkin PHP。example.php
:一个简单的示例,演示如何初始化和使用跟踪。
-
composer.json
:Composer 配置文件,定义了项目的依赖关系。 -
README.md
:项目的说明文档,包含安装和使用指南。
2. 项目的启动文件介绍
Zipkin PHP 项目的启动文件通常是 examples/example.php
,它展示了如何初始化和使用跟踪。
示例代码
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Zipkin\Endpoint;
use Zipkin\Samplers\BinarySampler;
use Zipkin\TracingBuilder;
use Zipkin\Reporters\Http;
// 定义本地服务
$endpoint = Endpoint::create('my_service', '127.0.0.1', null, 80);
// 创建 reporter
$reporter = new Http();
// 创建 sampler
$sampler = BinarySampler::createAsAlwaysSample();
// 创建 tracing
$tracing = TracingBuilder::create()
->havingLocalEndpoint($endpoint)
->havingReporter($reporter)
->havingSampler($sampler)
->build();
// 创建 tracer
$tracer = $tracing->getTracer();
// 创建 span
$span = $tracer->newTrace()->setName('operation')->start();
// 添加注解
$span->annotate('start', microtime(true));
// 模拟操作
usleep(100 * 1000);
// 结束 span
$span->finish();
// 关闭 tracer
$tracer->close();
启动文件介绍
require_once __DIR__ . '/../vendor/autoload.php';
:加载 Composer 自动加载文件。Endpoint::create('my_service', '127.0.0.1', null, 80);
:定义本地服务端点。new Http();
:创建 HTTP reporter,用于将跟踪数据发送到 Zipkin 服务器。BinarySampler::createAsAlwaysSample();
:创建采样器,决定哪些跟踪数据需要被记录。TracingBuilder::create()->...->build();
:创建跟踪实例。$tracer->newTrace()->setName('operation')->start();
:创建并启动一个新的跟踪 span。$span->annotate('start', microtime(true));
:添加注解到 span。$span->finish();
:结束 span。$tracer->close();
:关闭 tracer,确保所有跟踪数据被发送。
3. 项目的配置文件介绍
Zipkin PHP 项目的配置文件主要是 composer.json
,它定义了项目的依赖关系和其他配置。
composer.json 文件内容
{
"name": "openzipkin/zipkin-php",
"description": "Zipkin PHP library",
"type": "library",
"require": {
"php": ">=7.2",
"guzzlehttp/guzzle": "^7.0"
zipkin-phpZipkin instrumentation for PHP项目地址:https://gitcode.com/gh_mirrors/zi/zipkin-php