Grafana 的 New Relic 数据源
New Relic 数据源插件允许您在 Grafana 中查询和可视化 New Relic APM(应用程序性能监控)和 Insights。
要求
此插件具有以下要求
- 一个 New Relic 帐户
- 以下帐户类型之一
- 适用于拥有 Grafana Cloud 免费版、高级版或试用版帐户或 已激活的 Grafana Enterprise 许可证 的用户。
已知限制
- 目前不支持即席过滤器。
- 不支持包含多个
FACET
字段的 NRQL 查询。
安装 New Relic 数据源插件
要安装数据源,请参阅 安装。
从 New Relic 获取 API 密钥和帐户 ID
您需要您的个人 API 密钥/用户 API 密钥,请参阅 New Relic API 密钥。您还需要您的 New Relic 帐户 ID,请参阅 帐户 ID。
在 Grafana 中配置数据源
添加数据源,方法是填写以下字段
字段名称 | 描述 |
---|---|
名称 | 为该特定 New Relic 数据源输入一个名称。 |
个人 API 密钥/用户 API 密钥 | 要查找您的 New Relic API 密钥,请参阅 从 New Relic 获取 API 密钥和帐户 ID。为该特定 New Relic 数据源输入一个名称。 |
帐户 ID | 输入您的 New Relic 帐户 ID。要查找您的 New Relic 帐户 ID,请参阅 从 New Relic 获取 API 密钥和帐户 ID。 |
区域 | 输入托管您服务的区域。 |
使用配置来配置数据源
数据源可以使用 Grafana 的配置系统进行配置。您可以阅读有关其工作原理以及可以为数据源设置的所有设置的更多信息,请参阅 配置 Grafana。
以下是以配置此数据源为例的示例
apiVersion: 1
datasources:
- name: New Relic
type: grafana-newrelic-datasource
jsonData:
region: EU
secureJsonData:
accountId: 1111111
personalApiKey: Personal API Key
查询数据源
服务可以是 指标
、数据资源管理器
、NRQL 编辑器
、日志
或 跟踪
。要了解有关 NRQL 编辑器/Insights 的更多信息,请参阅 Insights。
指标
如果您在这些下拉框中找不到选项,您仍然可以通过选择 创建: (您的文本)
来选择该选项。
字段名称 | 描述 |
---|---|
应用程序 | 选择源应用程序。开始在下拉框中键入以查找您的源。 |
指标 | 从展开的列表中选择要查看的指标命名空间。 |
值 | 输入要返回的指标值。 |
按别名 | 您可以将纯文本与以下变量结合使用:$__nr_metric 是指标名称,例如 CPU/用户时间 。$__nr_metric_value 是指标值,例如 平均值 。 |
应用程序/指标选择器旁边有一个小搜索图标。当您有大量应用程序或指标时,可以使用它们来搜索这些指标。搜索图标将随时显示相关的 1000 个结果。如果您有超过 1000 个应用程序/指标,可以使用名称过滤器过滤结果。注意:搜索区分大小写。
数据资源管理器
数据资源管理器允许您查询 New Relic Insights 数据,而无需编写原始 NRQL。
切换到 **数据资源管理器** 模式后,查询编辑器将预先配置为具有默认查询。您可以通过自定义以下字段来创建自己的数据资源管理器查询
字段名称 | 描述 |
---|---|
从 | 使用此字段指定要查询的数据类型。如果更新此字段,查询的其余部分将重置为默认值。 |
选择 | 您可以在 SELECT 部分指定一个或多个聚合。这也可以用于对两个聚合字段执行算术运算。可选地,SELECT 中的每个项目都可以使用 NRQL FILTER 查询进行过滤。 |
在哪里 | (可选) 指定 NRQL 过滤器的原始条件。例如 appName = 'something' AND serverName in ('server1','server2') AND city in (${cities:singlequote}) 。此字段接受 Grafana 变量。 |
方面 | (可选) 使用此字段根据属性值对结果进行分隔和分组。使用 FACET BY CASES 根据比 FACET 更复杂条件对数据进行分类。 |
时间过滤器 | (可选) 配置此字段以根据时间范围筛选数据。选择 仪表盘时间 以根据 Grafana 选择的时间范围筛选数据。默认情况下,将使用 Grafana 的时间范围。 |
格式 | 这可以是 TimeSeries 或 Table 之一。默认值为 TimeSeries 。如果选择 TimeSeries,则 TIMESERIES 关键字将添加到查询中,并且您的数据将以时间序列格式显示,并按指定的时间段细分。如果选择 Table ,则数据不会按时间聚合。如果需要摘要,请使用 Table 模式。 |
间隔 | (可选) 在选择上面的 timeseries 格式时,您可以选择配置时间序列聚合的间隔。 |
滑动 | (可选) 在选择 timeseries 格式和 自定义 间隔时,可以可选地使用 滑动 字段指定滑动时间窗口范围。 |
您可以在“预览”部分预览基于您的选项的 NRQL 查询。如果您想进一步自定义查询,可以通过单击 **切换到 NRQL 编辑器** 切换到原始 NRQL 编辑器。
有关 NRQL 语法的更多信息,请参阅 New Relic 文档 页面。
NRQL 编辑器 (Insights)
有关 New Relic 查询语言简介,请参阅 NRQL 简介。
开始键入后将显示代码完成。要选择完成选项,请使用箭头键突出显示所需的选项,然后按 Tab 键进行选择。
编辑器支持以下宏。
宏语法 | 描述 |
---|---|
$__timeFilter | 这将通过将 $__timeFilter 插入到 SINCE <from> UNTIL <to> 中,在查询中使用 Grafana 仪表盘的时间范围。 |
$__timeSeries(时间范围,相应聚合,默认聚合) | 此宏可用于根据时间范围动态设置聚合。示例:$__timeSeries(60m,1 MINUTE,MAX) 。当仪表盘间隔小于或等于 60 分钟时,此宏将扩展为 TIMESERIES 1 MINUTE 。否则将扩展为 TIMESERIES MAX 。 |
示例
SELECT average(value) FROM $event_template_variable $__timeFilter TIMESERIES
请确保在您的 NRQL 查询中包含
$__timeFilter
宏。否则,您的结果将不会与 Grafana 仪表盘的时间范围同步。
合成查询
可以使用 NRQL 编辑器/Insights 从 SyntheticCheck
和 SyntheticRequest
表中查询 New Relic Synthetics 数据。
例如,以下查询返回按响应状态的请求总数。
SELECT count(*) FROM SyntheticRequest FACET responseStatus $__timeFilter
以下查询返回所有监控器的成功率。
SELECT (
filter(count(*),WHERE result = 'SUCCESS')
/ filter(count(*), WHERE result IN ('SUCCESS','FAILED'))
* 100
) as 'Success Rate' FROM SyntheticCheck
FACET monitorName $__timeFilter TIMESERIES
有关合成监控查询的更多详细信息,请参阅 合成监控报告的事件
日志
插件的日志服务允许您查询和查看存储在 New Relic Log
表中的日志。插件使用 NerdGraph NRQL 查询执行搜索。插件使用 SELECT * FROM Log WHERE <xxxx> SINCE <xxxxx> UNTIL <xxxxx> ORDER BY <xxxxx> LIMIT MAX
查询执行日志搜索并将结果以 Grafana 日志格式呈现。日志将根据仪表盘时间范围自动过滤。您可以选择配置以下字段来筛选数据
字段 | 描述 |
---|---|
查询 | 在搜索日志时提供 NRQL 筛选器查询。例如:message LIKE '%ERROR%' AND container_name = 'petclinic' |
排序 | 默认情况下,结果将按时间戳降序排序。您可以选择将其更改为升序。 |
日志搜索查询将返回最多 2000 条记录(NRQL API 限制)。但是,探索中的日志量面板可以提示您在整个时间范围内是否存在更多日志,然后您可以将探索的时间范围缩小到特定时间段。
如果日志行找到诸如 traceId
/traceid
/trace.id
之类的字段,日志面板将提供指向相应跟踪视图的链接。
跟踪
插件的跟踪服务允许您查询和查看存储在 New Relic 中的跟踪。这可以通过单独搜索跟踪或通过列表进行。
字段 | 描述 |
---|---|
跟踪 ID | 在使用跟踪视图时,在此处提供跟踪 ID。例如:951ae3313c093aa3278cbc27c0714c94 |
查询 | 在搜索跟踪时提供 NRQL 筛选器查询。例如:parentId IS NULL AND duration > 0.05 AND appName = 'petclinic' |
您可以在 New Relic 文档网站 上找到有关 New Relic 跟踪 API 的更多信息。
模板和变量
要添加新的 New Relic 查询变量,请参阅 添加查询变量。使用您的 New Relic 数据源作为以下可用查询的数据源。
端点 | 描述 |
---|---|
applications | 可用应用程序列表 |
applicationNames | 可用应用程序名称列表 |
applications/{application_id}/metrics | 应用程序的可用指标列表 |
New Relic 查询可以返回相对端点(不包括文件扩展名)。有关更多信息,请参阅 New Relic REST API
创建变量后,您可以使用变量语法在 New Relic 查询中使用它。有关更多信息,请参阅 变量语法。有关变量的更多信息,请参阅 模板和变量。
导入 New Relic 的仪表盘
按照这些 说明 导入仪表盘。
导入的仪表盘可以在“配置”>“数据源”>“选择您的 New Relic 数据源”>“选择“仪表盘”选项卡中找到,以查看可用的预制仪表盘。