介绍NRQL:一种为分析而设计的查询语言

洞察力团队很高兴地宣布公共测试洞察力从今天开始,所有付费用户都可以使用。在过去的几个月里,我们一直在内部使用Insights,它被证明是一个非常宝贵的工具,可以帮助我们解开客户如何使用我们产品的谜题,并帮助我们挖掘最棘手的性能问题。

洞察力的主要创新之一是NRQL,它代表了新的遗物查询语言(我们称之为“Nerkel”)。NRQL是我们专门为分析创建的SQL的语言,该分析允许在明确的时间段内进行简单的聚合和过滤。在这篇文章中,我们将过度建立您的前几个NRQL查询。在完成这些例子后,您将在您成为NRQL专家的路上,并询问您的申请各种有趣的问题。

探索你的数据

你要做的第一件事就是观察收集到的数据。我们正在收集两种类型的事件:事务事件通过应用程序代理发送到Insights,而页面视图事件通过浏览器监控发送。让我们通过输入下面的查询来研究我们的页面视图数据。

从PageView中选择*

Insightsnrql_1.

这将为您提供过去一小时内的浏览器页面视图列表。您可以看到每个事件的详细信息以及所收集的属性。如果你只是想看最后一个页面浏览事件,你可以添加一个限制。

从PageView限制1中选择*

Insightsnrql_2.

计数和独特的计数

现在,让我们尝试向上面的PageView查询添加一个简单的聚合函数。下面的查询将计算过去一天的总页面浏览量:

自1天前以来从PageView中选择Count(*)

Insightsnrql3.

如果您想统计唯一会话的数量,您可以在会话属性上使用uniqueCount函数。

自1天前以来从PageView中选择Uniquecount(会话)

Insightsnrql_4.

更多聚合函数:百分位数,平均和直方图

您还可以尝试使用其他几个聚合函数,但这里是我最喜欢的两个。

在最后一天看到50和95百分位数:

从PageView中选择百分位数(持续时间,50,95)

Insightsnrql_5.

查看响应时间的直方图:

从1天前的页面视图中选择直方图(持续时间)

Insightsnrql_6.

控制时间窗口以来

您可以使用自从关键字来更改任何查询的时间窗口。在我们的公开测试中,每个人都可以访问一周的数据。您可以组合起来的关键字以获得特定的时间窗口。下面的查询为您提供了两天前的结果。

SELECT percentile(duration, 95) FROM PageView SINCE 2 days AGO UNTIL 1 day AGO

Insightsnrql_7.

您还可以使用SINCE关键字来查看特定的时间段。以下查询查看了3月15日上午9点到10点之间的数据。

从“2014-03-15 09:00”之前从PageView中选择百分位数(持续时间,95),直到2014-13-15 10:00'

Insightsnrql_8.

使用WHERE子句进行筛选

您可以使用与标准SQL相同的何种方式以不同方式过滤数据以不同的方式过滤数据。以下是使用WHERE子句向未使用SAFARI浏览器的人显示百分位数的百分点的示例:

从PageView中选择百分位数(持续时间,95),其中CountryCode ='US'和UserAgentName!='Safari'

InsightNRQL_9

您可以使用类似的字段搜索。以下为您提供匹配“部署”的所有事务的百分位数。

SELECT * FROM PageView WHERE name LIKE ' %deployment % ' WHERE百分数(持续时间,95)

Insightsnrql_11.

面位

另一种切片数据的有用方法是使用FACET命令,它对结果进行分组。这个查询提供了按国家划分的访问者的地理分布。

从PageView Facet CollureCode中选择百分位数(持续时间,95)

Insightsnrql_12.

比较

您还可以比较值。下面是一个比较今天和昨天会话数的例子。

从PageView选择平均值(持续时间)自2小时前与1天前比较

Insights__Home

T.imeseries

NRQL最强大的部分之一是TimeSeries关键字,它允许您随着时间的推移而导致的任何结果。这是逐渐绘制百分位查询的示例。您可以将TimeSeries关键字添加到NRQL中的大多数查询。

从PageView选择百分位数(持续时间,95)自1天前Timeeries

Insightsnrql_14

添加更多数据到见解

到目前为止,我们已经学会了如何聚合数据,选择时间窗口,以及带有小平面的切片和骰子。您可以将这些概念结合起来构建强大的查询。一旦你掌握了NRQL,就开始添加更多数据到洞察力。您添加了您可以询问的更丰富的问题​​的属性和事件越多。

添加自定义属性

您要做的第一件事是为发送到Insights的每个事务和PageView事件添加自定义属性。想要能够在任何你喜欢的属性上刻面吗?将这些有趣的属性添加到洞察力中。

这里有一些文档来开始使用自定义属性:https://docs.newrelic.com/docs/insights/custom-attributes.

添加自定义事件

在事务或页面浏览事件中是否有未被捕获的事件?使用我们的insert API添加更多你自己的事件:https://docs.newrelic.com/docs/insights/inserting-events.

向客户论坛中的洞察力背后的工程团队打招呼!

感谢您尝试这些见解!团队很高兴听到您用洞察力解决了各种问题,并帮助您开始使用产品。请到客户支持论坛问声好。

查看帖子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!!