本文使用UpTrace作为可视化工具,如果使用其他的需要自行调整ENDPOINT等。
为PHP配置OpenTelemetry组件
首先安装需要的依赖库
|
|
然后修改/etc/php/<version>/fpm/php.ini
文件,添加下面的内容
|
|
检查配置文件是否正确,并重启fpm服务
|
|
安装对应的composer包
接下来导航到解压后的DomJudge release包下,然后添加instrument-installer,注意要–no-scripts因为默认会加载数据库相关的程序,我们不需要那些
|
|
接下来要对lib/vendor/open-telemetry/opentelemetry-instrumentation-installer/installer_internals.php
做一些修改
修改github.com
的到镜像加速地址,比如
|
|
之后按需修改make_advanced_setup
中的指令执行,建议是把所有的2>&1
都去掉,这样可以避免看不到错误信息,再修改require
指令,添加-vvv
参数
|
|
再把composer update
指令给去掉,我们可不像搞坏DomJudge的其他依赖
|
|
之后便可以执行安装了,这里建议使用advanced
模式安装,可以自由选择。
注意这里安装的并不全,要想监控数据库数据的话还需要open-telemetry/opentelemetry-auto-doctrine
但这个包目前版本要求有问题,我发了PR等等看,后续我会更新的。
安装完成后我们需要手动更新需要的依赖,注意symfony-client需要手动修版本使其和DomJudge的匹配,不然update过不去。
|
|
|
|
- 对于
http-provider
建议选择symfony/http-client
- 其他的必选项建议都使用stable的而不要使用dev的
- 接下来会询问是否安装
open-telemetry/opentelemetry-auto-symfony
,选择是 pdo
的部分需要php版本高于8.2才可以laravel
,wordpress
,slim
这些都不需要
非全新安装添加
如果并非是全新安装的话,需要进行cache清理和相关权限设置,按照如下的步骤
- 进入
/opt/domjudge/domserver/webapp
,然后删除var
目录 - 接下来重建
var
并更改所有者mkdir var && chown www-data var
- 使用正确的权限进行cache清理和目录重建
sudo -u www-data php bin/console cache:clear --env=prod