更新时间:2026-03-20 GMT+08:00
分享

Php语言接入APM

接入环境准备

  1. PHP 8.0+。
  2. PECL。
  3. composer。

安装好以后需在 shell 脚本下验证 PHP、composer 版本。

操作步骤

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

    表1 参数说明

    参数

    说明

    是否必填

    Endpoint

    上报地址,请参见探针接入地址

    必填

    Authentication

    鉴权信息,获取信息方式参见的应用管理的“APPKEY”参数。

    必填

    • 非侵入式接入
      1. 安装 OpenTelemetry 扩展组件。
        1. 安装必须构建工具,命令如下:
          sudo apt-get install gcc make autoconf
        2. 使用构建安装扩展组件,命令如下:
          sudo apt-get install php-dev
          pecl install opentelemetry
          pecl install grpc
          pecl install protobuf-3.21.12
        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. 上述步骤也可用框架源码来安装,就无须安装基础包,因为在其他框架你可能无法识别需要安装哪些基础包。倘若执行8.b.i中步骤,可直接执行8.b.iii下载代码后,将代码包上传到对接应用的服务器上,解压之后,执行如下命令:
          composer config allow-plugins.php-http/discovery false
          composer require open-telemetry/opentelemetry-auto-slim
          composer update
        3. 将对接服务的配置在环境变量或者 php.ini 中,配置如下:
          OTEL_EXPORTER_OTLP_ENDPOINT=http://100.79.29.106:4317 // 对接服务上报数据的 ip 以及端口
          OTEL_EXPORTER_OTLP_HEADERS=Authentication= ****** // 对接服务 token 信息
          OTEL_EXPORTER_OTLP_PROTOCOL=grpc // 数据的 OTLP 传输协议
          OTEL_PHP_AUTOLOAD_ENABLED=true
          OTEL_SERVICE_NAME=应用名称.组件名称.环境名称 // 对接服务的服务名
    • 侵入式接入

      参考官网:官网网站

相关文档