instrumental/instrumental_agent

此代理支持对PHP应用程序进行Instrumental自定义指标监控。它在高规模下提供高数据可靠性。

v1.0.2 2018-04-05 21:14 UTC

README

Instrumental是一个为希望更好地了解其生产软件的开发者构建的应用程序监控平台。结合强大的工具,如Instrumental查询语言和一个以探索为重点的界面,您可以在实时中获取对复杂问题的真正答案。

此代理支持PHP应用程序的自定义指标监控。它在高规模下提供高数据可靠性。

Composer安装

composer require instrumental/instrumental_agent

访问instrumentalapp.com并创建一个帐户,然后使用在文档部分找到的API密钥初始化代理。

用法

$I = new \Instrumental\Agent();
$I->setApiKey("PROJECT_API_TOKEN");
$I->setEnabled($isProduction); // only send metrics in production

您可能需要像上面那样使用,使用您的项目API令牌,只启用生产模式,这样您就不会将开发和生产数据写入相同的值。或者,您可以设置两个项目,这样您可以在一个项目中验证统计数据,然后在另一个项目中发布它们。

现在您可以使用Instrumental来跟踪您的应用程序。

$I->gauge('load', 1.23);                                # value at a point in time

$I->increment('signups');                               # increasing value, think "events"

$post = $I->time('query_time', function(){              # time a block of code
  return Post->find(1);
});
$post = $I->time_ms('query_time_in_ms', function(){     # prefer milliseconds?
  return Post->find(1);
});

注意:如果无法连接到服务,当内存阈值达到低值时,它将丢弃数据。

想要跟踪一个事件(如应用程序部署或停机时间)?您可以捕获瞬时事件,或者在一定时间内发生的事件。

$I->notice('Jeffy deployed rev ef3d6a'); # instantaneous event
$I->notice('Testing socket buffer increase', time() - (3*24*60*60), 20*60); # an event (three days ago) with a duration (20 minutes)

代理控制

需要快速禁用代理?在初始化时使用$I->setEnabled(FALSE);,您不需要更改任何应用程序代码。

Symfony

对于与Symfony应用程序的用法,我们建议将代理注册为Symfony服务

故障排除和帮助

我们在这里帮助。通过support@instrumentalapp.com给我们发邮件。

发布流程

  1. 拉取最新master分支
  2. 将功能分支合并到master分支
  3. 运行测试脚本/script/test
  4. 在代码中增加版本号
  • lib/Agent.php
  1. 更新CHANGELOG.md
  2. 提交"发布版本 vX.Y.Z"
  3. 推送到GitHub
  4. 标记版本:git tag 'vX.Y.Z' && git push --tags(GitHub webhook会通知packagist并发布新版本)
  5. https://packagist.org.cn/packages/instrumental/instrumental_agent上验证更新
  6. 刷新instrumentalapp.com上的文档

版本策略

此库遵循语义版本化2.0.0