更新时间:2025-10-27 GMT+08:00
分享

Php语言接入

限制条件

非侵入式接入,需使用PHP 8.0以及以上版本。

环境准备

  1. 准备插件/工具:PHP 8.0+、PECL、composer。
  2. 安装,命令如下:
    apt update 
    apt install -y php-pear 
    apt install composer
  3. 环境验证,命令如下:
    pecl version 
    composer --version

示例demo

  1. 初始化demo应用。
    在空白的项目目录中,初始化一个简单的composer.json文件。
    composer init \   
    --no-interaction \   
    --require slim/slim:"^4" \   
    --require slim/psr7:"^1"  
    
    composer update
  2. 编写应用代码。创建index.php文件,内容如下:
    <?php 
    use Psr\Http\Message\ResponseInterface as Response; 
    use Psr\Http\Message\ServerRequestInterface as Request; 
    use Slim\Factory\AppFactory;  
    require __DIR__ . '/vendor/autoload.php';  
    
    $app = AppFactory::create();  
    
    $app->get('/rolldice', function (Request $request, Response $response) { 
        $result = random_int(1,6); 
        $response->getBody()->write(strval($result)); 
        return $response; });  
    
    $app->run();
  3. 运行程序,命令如下:
    php -S localhost:8080 & 
    curl http://localhost:8080/rolldice

操作步骤

  1. 登录APM控制台
  2. 单击左侧,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。
  3. 在左侧导航栏中选择“应用监控 > 应用列表”。
  4. 单击“接入应用”,进入接入应用页面。
  5. 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用
  6. “接入方式”选择OpenTelemetry。
  7. “服务端语言”选择Php。
  8. 数据接入,相关参数与操作步骤如下。

    表1 参数说明

    参数

    说明

    是否必填

    应用名称

    应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。

    必填

    组件名称

    组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。

    必填

    环境名称

    环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。

    选填

    • 非侵入式接入
      1. 安装OpenTelemetry扩展组件。
        1. 安装必须构建工具,命令如下:
          sudo apt-get install gcc make autoconf
        2. 使用构建安装扩展组件,命令如下:
          pecl install opentelemetry-beta
          pecl install grpc
          pecl install protobuf-3.8.0
        3. .将扩展名添加到您的php.ini文件中,内容如下:
          [opentelemetry]
          extension=opentelemetry.so
          [PHP]
          extension=grpc.so
          extension=protobuf.so
        4. 验证扩展是否已安装并启用,内容如下:
          php --ri opentelemetry
          php --ri grpc
          php --ri protobuf
      2. 安装服务框架所需opentelemetry依赖包。
        1. 安装服务框架所依赖的opentelemetry自动插件包,比如slim框架需安装open-telemetry/opentelemetry-auto-slim,命令如下:
          composer config allow-plugins.php-http/discovery false
          composer require open-telemetry/sdk
          composer require open-telemetry/exporter-otlp
          composer require open-telemetry/transport-grpc
          composer require open-telemetry/opentelemetry-auto-slim
          composer update
        2. 添加云服务配置参数到环境中并启动,命令如下:
          env OTEL_EXPORTER_OTLP_ENDPOINT=http://xxx.xxx.xx.xxx:4317 \
          OTEL_EXPORTER_OTLP_HEADERS=Authentication=LV***9l \
          OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
          OTEL_PHP_AUTOLOAD_ENABLED=true \
          OTEL_SERVICE_NAME=应用名称.组件名称.环境名称 \
          php -S localhost:8080 &
          
          curl http://localhost:8080/rolldice
      3. 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标
    • 侵入式接入

      参考官网:官网网站

相关文档