好的,事实是我不是一个实际的向导。但我仍然可以向你展示你可能从未见过的东西。从伪装和无形的函数到时间,空间和数学的复杂操纵,我将通过一个新的可能性领导你新的遗物查询语言(NRQL)

我们在新遗物中的主要创新之一,NRQL(发音为“Nerkel”)是您可以用来查询新的遗物数据库(NRDB)关于您使用新的遗物来收集应用程序的数据的查询语言。然后,您可以将这些查询结果转换为新的遗物见解图表可以让你快速轻松地解释数据,并采取行动。

作为NRDB团队的主要软件工程师,我已经了解了NRQL有多强大。这七个提示和用于查询数据的高级巫区技巧将帮助您升级NRQL查询。但要小心!虽然此信息对任何新的遗物客户有用,但该帖子假定对其的一般理解nrql语法,组件和函数。

# 1:伪装数据

当我说“伪装数据”时,我的意思是简化它。

让我们说你想看到Terabytes中大量文件的总大小。您可以编写以下查询:

SELECT sum(fileSize) / 1e12

如果文件是,例如,188tb, Insights图表将显示总文件大小如下:

不是很有用。到底有多少个0 ?

但是,如果您添加AS语句,则可以给出测量一个名称,这些名称总是有助于人们了解他们正在查看的内容。所以,对于相同的文件,如果您查询:

SELECT sum(fileSize) / 1e12作为'tb'

洞察图表将显示:

188 TB.

你也可以使用速度()函数将结果缩放到特定的时间段。因此,如果您查询每天在TB中的存储系统中添加到存储系统的文件大小:

选择速度(总和(文件大小),1天)

洞察会显示:

27.02 TB /天

# 2:忽略数据

在某些情况下,您可能希望运行查询,但在不同部分中使用数据的不同子集选择条款。下面的查询使用筛选命令用来比较查询的数据卷帐户1用户,与完整用户群体查询的平均数据卷:

选择平均(dataVolume),筛选(平均(DataVolume),WHERE account = 1)

正如你在结果图表中看到的,那些帐户1用户真的喜欢他们的数据,他们倾向于将两到三倍查询的数据比普通用户多。

百分比功能也需要一个在哪里条款作为论点之一。事实上,它真的只是两个结果的比例就像那些筛选例子:

选择百分比(总和(文件大小),WHERE account = 1)

查询结果表明,近2%的收集数据来自帐户1

# 3:转换数据

NRDB是一个不可变的数据库更新语句 - 但NRQL Power用户可以转换未初始化的数据。

例如,这里有一个很好的,虽然有点无意义的查询:

从查询中选择平均值(WallclockTime),其中帐户<1000

它恰好返回0,但是为什么呢?账户id是字符串,不是数字。但是,您可以使用numeric函数将这些字符串转换为数字,Insights将提供预期的结果:

SELECT average(wallClockTime) FROM Query WHERE数字(账户)< 1000

另一个Pro-Level建议:您可以将布尔值发送到洞察力。一切都经常,新的遗物客户写了一个真/假字符串:

从交易中选择count(*),其中chunked ='true'

但是,使用布尔函数,可以将这些值转换为真值或假值并进行匹配是真的:

SELECT count(*) FROM Transaction WHERE布尔(Chunked)是真的

#4:方面数据

在对数据进行刻面处理时,将事件按组进行排序,每个组产生一个结果。facet是NRQL最流行的特性之一,但是很少有客户知道您可以用它做的所有事情。事实上,不到1%的facet查询使用了我将要向您介绍的特性。

在属性上方面时,通常根据具有查询结果的最大结果的值为您选择各个方面。所以以下查询将面朝上全部账户:

SELECT count(*) FROM filecreatedfacet account

但是,如果你想看看几个帐户,你可以通过提供明确指定您感兴趣的方面小平面的条款。客户经常用一个在哪里条款,但实际上用这种方式会更快

SELECT count(*) FROM filecreatedfacet account在(313870)

NRQL还具有根据时间的刻面的许多功能。例如,此查询突破了一周日期的结果:

SELECT count(*) FROM Query SINCE 1 month ago FACET平日(时间戳)

有趣的旁注:New Relic足够聪明,能够意识到你可能想要根据一周中的天数来排序结果,而不是哪一天有最大的结果。

有一系列这些类型的功能,您可以方向于了解数据的周期性:

  • HOUROF.
  • dateOf
  • 平时
  • Dayofmonthof.
  • weekOf
  • 一个月
  • 四分之一季度
  • 多年来

面位不必在属性的单个值上完成。您还可以面朝上方面的值获得更强大的直方图,因为New Relic可以计算你想要的任何值,而不仅仅是计数。例如:

从亚填充方框中选择SUM(FILESIZE)铲斗(持续时间/ 60)

而且,对于最终的灵活性,有面套案件。在这里,您可以使用a精确地指定每个方面的条件NRQL哪里条款。请注意,订单重要:将根据匹配的第一个条件进行比较。

例如,下面的查询查看处理速率与查询持续时间:

SELECT average(datvolume /wallClockTime) FROM Query FACET案例(在潮和子<= 1为“1小时”的地方,潮流<= 24为'1天',WHERE durationHours <= 168 AS '1 week')

#5:在NRQL中使用意料之外的(非自然的)组合

在下一个例子中,我将展示如何在意外(以及甚至不自然)方式中结合NRQL功能。

过滤器和事件类型

这是一种常见的情况:您构建一个仪表板,其中每个小部件查询不同类型的事件,然后当有事情发生时,您眯着眼睛尝试确定一个更改是否与另一个更改相匹配。如果您可以将它们合并到一个图表中会怎么样呢?嗯,通过一个巧妙的组合筛选事件类型函数,您可以完全做到这一点。

下面的查询可以帮助您探索一个假设垃圾收集时间会影响应用的整体性能。

选择筛选(总和(吉力),在哪里事件类型()= ' NodeStatus '),筛选(平均(MEP),在哪里EventType()='查询')从查询,NodeStatus

事件类型()功能允许您将每个数据系列限制为您查询的两种类型之一。这让您可以在同一图表上绘制它们,并确定假设似乎是假的。他们并没有强烈相关。

即使在两个事件中的属性名称是相同的,这也有效。的事件类型()函数允许你只匹配单一类型的事件:

选择过滤器(SUM(文件大小),其中eventType()='filecreated') - 过滤器(总和(文件大小),来自菲氏体的,eventtype()='filedeted')fileceted

这个查询告诉您,我们每天向系统添加2.7 TB的数据,即使新数据和删除数据记录在不同的事件中。

时间序列直方图

直方图也很受欢迎,因为它们让您看到立即设置的整个数据的形状。但如果这种形状随时间变化怎么办?有没有办法可视化它?嗯,通过NRQL功能的巧妙组合有:

选择直方图(期间)面部圣人(时间戳)


通过使用基于时间的分面函数应用分面直方图的热图可视化,可以看到直方图是如何随时间变化的。在9点和下午晚些时候,这个应用程序会变慢。

6 .在数据周围设置障碍

有时你需要在你的数据周围设置一个“栅栏”。让我们来看看几种方法。

让我们说你只关心一个值是多大的,而不是它是否是积极的或负面的。使用绝对值函数,您可以沿0行镜像值,以便只获得正效结果:

选择腹肌(平均数(…))

现在,让我们说你想强迫十进制数字到整数;有三种方法可以这样做:

  1. 你可以跳起来地面,以黄色显示。
  2. 你可以跳起来天花板,以红色显示。
  3. 您可以使用最接近的整数圆形的,这是绿线,这些线在蓝色的原始原始值周围跳舞。

如果你想把曲线限制在某个最大值或最小值内。夹紧功能,CLAMP_MIN.CLAMP_MAX.,提供这种能力。在这个例子中,我把最小值设置为10,最大值为12:

#7:在NRQL中应用高级数学

最后,让我们看看在NRQL查询中使用高级数学和统计的一些技术。让我们从百分位数开始。每个人都喜欢百分位数。但也许,在这个现代软件时代,第99百分位还不够好。

如果是这种情况,您会很高兴知道您现在可以在任何十进制阈值下计算百分比。在这里,我以99到99.9的步骤运行百分位数:

选择百分位数(持续时间,99,99.1,99.2,...,99.9)

如你所见,2个9和3个9的表现有很大的不同。

NRQL还提供了用于计算的数学函数。例如,您现在可以使用平方根sqrt (n),剩下的使用mod,两种类型的指数战俘(N,2)EXP(n)和对数log2(n)以及其他基地。

对数函数特别有趣。例如,选择百分位数(持续时间,5,95)的查询导致两次测量如此不同,您真的无法判断下线发生的事情:

它真的是平坦的,还是只是被占据了上行吹灭的后果?通过记录它们,您可以看到第5个百分位真的是平的:

选择百分位(log10(期间),5,95)

或者,如果您尝试过长尾分布的直方图,则可能会遇到这样的图表:

那只尾巴有很多事件,但它实际上有多远?再次,日志缩放允许您立即查看所有内容:

选择直方图(log10(期间))


现在,您可以看到尾巴爪左右10 ^ 4,或10,000。

下面是另一个用例:如果您曾经看过如下所示的查询和图表,您可能会问,“它增长得有多快?””:

选择平均(diskUsed)

微积分粉丝将认识到该功能的衍生物的公式 - 或其增长率:

您可以使用NQRL的同样计算最新的最早功能。这些返回该时间窗口属性的第一个或最后一个值:

选择最新的(Diskused) -最早(DISKUSED)

所以现在您可以看到磁盘使用量的增加以及如何在日常内变化:

说到微积分,这是你们可能在统计学课本上遇到的东西Pearson相关系数:

系数是两次序列之间的相关性的量度。做XY倾向于上下,或者他们完全无关吗?这里的所有作品都在NRQL中提供,您可以将它们整合在一起:

我略微体验上面的可读性,但它是一个有效的NRQL查询。以防万一你不相信我:

拥抱魔法

此帖子涵盖了在NRQL中查询的数据 - 从如何重塑它的显示方式,如何将其沿各种轴分组,以如何将高级统计功能应用于它。这不是靠近您可以应用的所有新颖组合的最终列表的任何地方。

要了解更多,请给出这些技巧试用自己,并看看您还了解您的数据。然后一定要分享自己的巫术新的遗物探险家枢纽

Kevin Scaldeferri是新的遗物数据库系统的主要软件工程师和架构师。他喜欢数学和分布式系统,并且可能说“长盖”太多了。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网送我们一个球场!