作为服务,我们的遥测数据平台允许您存储和分析度量、事件、日志和跟踪,无论它们来自新的Relic代理还是第三方来源,例如普罗米修斯。传统上,新的遗物用户已使用数据查询新的遗物查询语言(NRQL)。当我们与用户交谈有关Prometheus的说法,我们了解到了PromQL支持将允许他们使用现有的Grafana仪表板,并使新用户无需学习NRQL就可以采用我们的平台。

Prometheus是监测Myriad基础设施和其他系统的指标的绝佳工具,但它缺乏长期,耐用,可靠的存储解决方案呈现出挑战。这一挑战是为什么我们为普罗米修斯建造了支持远程写能力,给你的能力发送您的Prometheus指标到遥测数据平台。

当我们建立我们的普罗米修斯支持,我们很幸运的合作伙伴朱利叶斯中场他是普罗米修斯计划的联合创始人。而他最近的博客(跨供应商的proql兼容性)向我们提供31%的兼容性得分,我们知道我们的PROGQL实施支持99.5%的Top Grafana仪表板查询,我们认为它将支持您的大部分用例。此博客文章讨论了我们对Promql支持的方法,何时以及为什么我们的实现与Promlabs的实施不同,以及最重要的是,新的遗物如何支持您的ProMQL需求。

为支持最常见的查询而构建

在开发PROMQL解决方案时,我们优先考虑支持客户最多的查询。由于Grafana作为探索和可视化Prometheus度量的工具的普及,我们确定了最常用的社区仪表板和他们构建的ProMQL查询。该集合超过600个PROMQL查询涵盖了780万格拉新仪表板下载。我们知道支持这些查询将涵盖绝大多数客户的用例。结果,当我们在2020年8月推出对ProMQL的支持时,我们的PROGQL引擎能够解析,翻译和正确执行99.5%的查询在上述的集合。巧合的是,在取得这些成果的第二天,PromLabs的Promql-Compliance-Tester是开源的工具。

Promlabs的博客使得一个重要的观点应该将新的遗物31%的分数放入角度:“......单独的数字分数绘制有限的图片。他们不一定告诉你有影响力的实现错误,也没有有多少不同的行为差异。“实施差异不一定会影响用户体验。要在它上缩小到较好的点:如果我们的ProMQL实现返回结果几乎与Promlabs测试套件的预期相同,结果将失败Promlabs的测试套件,即使结果对于您的真实故障排除需求也是有用的。

指标很重要,但可扩展的长期存储也很重要

虽然Prometheus和Telemetry数据平台有相似之处(支持特殊模式和没有用户指定索引的灵活查询),但它们遵循不同的设计原则,需要不同的权衡。查询语言、查询执行模型、数据模型和存储格式通常通过设计约束内在地联系在一起。

PromLabs遵从性测试突出了一个微妙而又基本的要点:对PromQL的支持与Prometheus数据模型和存储实现紧密耦合。由于不同的战略目标,我们选择了不同于PromLabs的设计权衡;值得注意的是,我们关注的是:

  1. 遥测数据类型:遥测数据平台支持度量标准,事件,日志和痕迹,而Prometheus仅支持指标。
  2. 存储系统:遥测数据平台提供了可扩展的、经济有效的长期存储,而普罗米修斯没有。
  3. 计算Deltas.:遥测数据平台计算delta摄取的时间而不是at.查询时间,在更大的数据集上提供更快的结果。这种方法的另一个优点是,它在查询时避免了某些函数出现不希望看到的结果(见下文)。

严格遵守PromQL协议的结果迫使供应商做出上述相同的权衡,需要一个支持准确数据模型的存储接口。然而,匹配查询执行模型和存储接口会限制平台的灵活性制作不同的设计权衡,最终限制了其向用户提供额外福利的能力。一个这样的权衡涉及在查询时间的绝对与累积计数器上计算速率,这是一个受试者激烈的辩论在开源社区中。具体来说,rate()和increase函数计算不相交值对之间的增量,但在这样做时,它们丢弃部分数据并推断其余的数据,返回意外的结果。遥测数据平台没有这样的问题,因为它计算的delta在摄取的时间而不是查询时间,利用相关时间范围的每个数据点。

普罗米修斯的特点是基于模型这不提供分布式可扩展的存储空间。结果,Prometheus使用累积柜台,在类似速率的查询中计算查询时的增量,以提供度量分辨率的优雅降低,并避免在交付失败时丢失数据。考虑到Prometheus在单个节点上的单线程执行,这是一个适当的权衡。

相比之下,遥测数据平台使用基于推送的交付模型作为高可用性和可伸缩平台的一部分,并使用跨多个节点的多线程查询执行模型。此外,Telemetry数据平台的数据模型针对增量计数器进行了优化,以提供具有成本效益和可扩展的存储,并为类似费率的操作提供更直观的查询体验。

在其他地方,Prometheus和遥测数据平台之间的差异不太明显。我们建立了一个指南将promql查询转换为nrql,所以当普罗米修斯度量标准存储在遥测数据平台上时,您可以继续问同样类型的问题。

一个地方的所有遥测数据

除了普罗米修斯之外,遥测数据平台可以从几乎任何来源获取维度度量数据,并且可以对这些数据进行分析、可视化,并与事件、日志和跟踪相关联。这种灵活的、无模式的数据模型使您能够快速诊断和解决问题,无论系统或应用程序是什么。用于与遥测数据交互的语言是故障排除经验的重要组成部分——nrql提供了一种易于学习和熟悉的类似sql的语法。但是,如果您只是想查询Prometheus度量,那么proql语法也可以正常工作。

即使您只关注普罗米修斯度量标准,组织也很难做到联邦Prometheus服务器,缺乏统一存储来查询和分析其系统性能。相比之下,遥测数据平台可以在一个地方访问所有ProMetheus服务器的所有数据,无论您的ProMetheus服务器是否正在分类配置或副本中运行高可用性使用重复保证结果。此功能允许您在所有Prometheus实例上查询,可视化和警报度量数据。维护比联邦的普通普通配置更容易。

查询新遗物寄生虫和Grafana

遥测数据平台使您能够直接在New Relic One和Grafana中使用PromQL语法查询您的普罗米修斯度量。为了实现这一点,我们将您的PromQL查询转换为NRQL查询。

要可视化数据,您有两种选择:

  1. 新遗迹一号内: 采用PromQL-Style模式或NRQL在图表建设者,以及仪表板和自定义应用程序
  2. 在Grafana:在Grafana中将数据平台配置为Prometheus数据源

我们正在不断改进我们对PromQL的支持,所以期待将来对更多功能的支持。如果您想要看到一些特定的内容,请联系您的账户团队(付费账户)或在New Relic中输入请求探险家的枢纽(免费)。如果您想了解更多我们支持的PromQL特性,请查看我们的文档,包括详细信息将PromQL转换为NRQL

约翰·威瑟斯(John Withers)是新遗迹公司(New relic)的高级产品营销经理,也是一位狂热的狗爱好者。查看贴子

对新遗物博客的写作有兴趣吗?188博彩体育网址给我们发一份建议书!