felix-lessoer / cakephp-elasticapm
此包最新版本(dev-master)没有可用的许可证信息。
使用 elastic APM 监控您的 cakephp 项目
dev-master
2020-03-17 20:13 UTC
Requires
- php: ^7.2
- cakephp/cakephp: 3.*
- philkra/elastic-apm-php-agent: ^7.0.0-rc3
This package is not auto-updated.
Last update: 2024-09-26 15:40:50 UTC
README
目前此插件支持收集 cake php 的常见事件。已在 cake php v3.8 上测试。此插件基于 Elastic APM php agent
安装
只需使用 composer 设置插件
composer require felix-lessoer/cakephp-elasticapm
配置
在 config/app.php
中包含此片段
'ElasticApm' => [ 'enabled' => true, 'rumEnabled' => true, 'appName' => '<app name>', 'appVersion' => "1.0", 'serverUrl' => '<apm server url>', 'secretToken' => '<apm server secret token>', 'environment' => "development" ]
enabled
: 如果为 false,则收集将被禁用
在您的 src/Application.php
中的 bootstrap()
函数中包含此片段
if (Configure::read('ElasticApm.enabled')) { $this->addPlugin(ElasticApmPlugin::class); }
添加 RUM 代理
RUM 代理是可选的,但可以提供关于页面速度的更深入见解。
在此 处 下载代理并将其添加到您的 webroot/js
目录
将此添加到您的页面的 <head>
区域 <?php echo $this->Html->script('elastic-apm-rum.umd.min.js'); ?>
将此片段直接添加到 <body>
的开头
<script>
var parts = window.location.pathname.split('?');
var pageName = window.location.pathname;
if (parts.length > 0) {
pageName = parts[0]
}
if (<?php echo Configure::read('ElasticApm.rumEnabled'); ?>) {
elasticApm.init({
serviceName: '<?php echo Configure::read('ElasticApm.appName'); ?> RUM',
serverUrl: '<?php echo Configure::read('ElasticApm.serverUrl'); ?>',
environment: '<?php echo Configure::read('ElasticApm.environment'); ?>',
serviceVersion: '<?php echo Configure::read('ElasticApm.appVersion'); ?>',
pageLoadTraceId: '<?= $traceId ?>',
pageLoadSpanId: '<?= $spanId ?>',
pageLoadSampled: true,
pageLoadTransactionName: pageName,
breakdownMetrics: true,
//monitorLongtasks: true,
});
//Optional adding user context
elasticApm.setUserContext({
id: <userid>,
username: <username>,
});
}
</script>