upscale / newrelic-query-builder
New Relic 查询语言 (NRQL) 查询构建器
1.0.0
2015-03-08 11:32 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-18 07:44:23 UTC
README
NRQL 查询构建器
新 relic 查询语言 (NRQL) 是一种类似于 SQL 的查询语言,用于对 Insights 事件数据库进行调用。
此项目是一个 PHP 库,用于在面向对象的应用程序中组装 NRQL 查询。库实现了官方的 NRQL 规范。它提供了一个 "流畅" 的接口,可以以任意顺序指定查询部分。这允许应用程序的不同部分影响查询,而无需担心查询组装顺序。在渲染时执行查询完整性验证。库为 NRQL 语法中的复杂元素提供面向对象的表示。这使代码补全成为可能,并避免了纯文本查询中的错误。
安装
库应通过 Composer 在 composer.json
中作为项目依赖项进行安装
{ "require": { "upscale/newrelic-query-builder": "*" } }
用法
以下示例演示了一个包含所有可用子句的查询
use Upscale\Nrql\QueryBuilder; use Upscale\Nrql\TimePeriod; use Upscale\Nrql\Moment\TimeAgo; use Upscale\Nrql\Moment\ExactTime; use Upscale\Nrql\Moment\Yesterday; $nrql = new QueryBuilder(); $nrql->select([ 'userAgentName', ]) ->from([ 'PageView', ]) ->where('userAgentOS = "Windows"') ->facet('countryCode') ->limit(20) ->since(new TimeAgo(new TimePeriod(4, TimePeriod::UNIT_DAYS))) ->until(new Yesterday()) ->compareWith(new ExactTime(new \DateTime('2015-01-01 00:00:00'))) ->timeSeries(new TimePeriod(1, TimePeriod::UNIT_HOURS)) ; echo $nrql;
限制
NRQL 语法的某些复杂方面尚未以面向对象的方式实现。这包括 聚合函数、数学运算符和逻辑运算符(AND
、OR
、分组)。然而,库允许在字符串参数的替代方案中使用所需复杂程度的表达式。
自由格式字符串参数
SELECT
语句的属性,包括可选的AS
子句WHERE
子句的条件FACET
子句的属性
许可证
根据 Apache License, Version 2.0 许可。