TypistTech.trellis-newrelic-php
Trellis New Relic PHP Agent
在 Trellis 服务器上安装 New Relic PHP agent。
角色变量
# group_vars/<environment>/vault.yml
# 此文件应加密。见: https://roots.io/trellis/docs/vault/
##########################################################################
# New Relic 许可证密钥
## 见: https://docs.newrelic.com/docs/accounts-partnerships/accounts/account-setup/license-key
vault_newrelic_license: xxxxxxxxxxx
# group_vars/<environment>/main.yml
###################################
# 表示所需的包状态。
# `latest` 确保安装最新版本。
# `present` 如果已安装则不更新。
# 选项: present | latest
# 默认: latest
newrelic_package_state: present
# 在此检查默认值:https://github.com/TypistTech/trellis-newrelic-php/blob/master/defaults/main.yml
# 另见: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration
newrelic_config:
appname: "我的精彩应用 {{ env }}"
framework: no_framework
transaction_tracer.detail: 1
datastore_tracer.database_name_reporting.enabled: true
改造 Trellis 的剧本
将此角色添加到 dev.yml
和 server.yml
紧接着 role: php
:
# `dev.yml` & `server.yml`
roles:
# 其他 Trellis 角色 ...
- { role: php, tags: [php] }
+ - { role: TypistTech.trellis-newrelic-php, tags: [php, newrelic-php] }
# 其他 Trellis 角色 ...
要求
安装
将此角色添加到 galaxy.yml
:
- src: TypistTech.trellis-newrelic-php # 区分大小写!
version: XXX.YYY.ZZZ # 检查最新版本!
运行 $ trellis galaxy install
以安装此新角色。
常见错误
vault_newrelic_license
未定义
在 group_vars/<environment>/vault.yml
中加密您的 New Relic 许可证密钥。请参阅 角色变量。
New Relic 将多个环境合并成单个应用程序
解决方案:为不同环境定义不同的 appname
。
提示:
# group_vars/all/main.yml
#########################
newrelic_config:
appname: "我的精彩应用 {{ env }}"
升级 PHP 版本后的错误
在升级 PHP 大版本或小版本时(例如:从 7.4 到 8.0,或从 8.0 到 8.1),New Relic 可能会失败并导致配置错误。
非零返回代码
PHP 警告: PHP 启动: 无法加载动态库 'newrelic.so'
(尝试:/usr/lib/php/20180731/newrelic.so(/usr/lib/php/20180731/newrelic.so:
无法打开共享对象文件:没有此类文件或目录),
/usr/lib/php/20180731/newrelic.so.so(/usr/lib/php/20180731/newrelic.so.so:
无法打开共享对象文件:没有此类文件或目录))在未知位置
在每次 PHP 大版本或小版本升级后(即:当您看到上述错误时):
# 对于多服务器设置,在每台服务器上执行以下步骤。
ssh [email protected]
sudo newrelic-install install
sudo reboot
# 等待服务器重启,然后重新配置
# 对于多服务器设置,只需重新配置一次
trellis provision production
限制
- 默认情况下,每台服务器只能有一个 New Relic APM 应用程序。
扩展
fastcgi_basic
块,以在 include fastcgi_params;
之后包含 fastcgi_param PHP_VALUE "newrelic.appname={{ item.key }} ({{ env }})";
以解决此限制。
欢迎提交 Pull 请求。
常见问题
看起来很棒。我在哪里可以找到更多类似的资源?
- Typist Tech 的 博客 文章
- Tang Rufus 的 WordPress 插件 在 wp.org 上
- 更多项目见 Typist Tech 的 GitHub 资料
- 订阅 Typist Tech 的新闻通讯
- 关注 Tang Rufus 的 Twitter 账号
- 聘请 Tang Rufus 来构建您下一个精彩的网站
这个包不在 wp.org 上。我可以哪里给个 :star::star::star::star::star: 评论?
谢谢!很高兴你喜欢它。让我们知道有人在使用这个项目是很重要的。由于它不托管在 wordpress.org,请考虑:
- :heart: 赞助 这个项目
- :star: 给这个 GitHub 仓库 点赞
- :eyes: 关注 这个 GitHub 仓库
- 在 Twitter 上发一些好评,提到 @TangRufus
- 写博客文章
- 提交 Pull 请求
- 雇佣我
赞助 :heart:
喜欢 trellis-newrelic-php
吗?帮助我维护它, 这里赞助 可以对此有所帮助。
GitHub 赞助匹配基金
您知道 GitHub 将匹配您的赞助 吗?
立即通过 GitHub 赞助 双倍您的赞助。
为什么不雇我?
随时准备接受自由职业的 WordPress 工作。通过 这里 的联系表单或电子邮件 [email protected] 联系我。
想以其他方式帮助吗?想成为赞助商?
联系: Tang Rufus
反馈
请提供反馈! 我们希望让这个库在尽可能多的项目中有用。 请提交 问题,指出您喜欢和不喜欢的地方,或者分叉项目并提出建议。 没有问题是太小的。
安全性
如果您发现任何安全相关的问题,请发送电子邮件至 [email protected],而不是使用问题追踪器。
感谢
Trellis New Relic PHP Agent 是一个 Typist Tech 项目,由 Tang Rufus 维护,提供自由职业开发服务。
完整的贡献者列表请见 这里。
特别感谢 Roots 团队,他们的 Trellis 使这个项目成为可能。
贡献
请参见 CODE_OF_CONDUCT 以获取详情。
许可证
Install New Relic PHP agent on Trellis servers
ansible-galaxy install TypistTech.trellis-newrelic-php