插件 〉X-Ray


开发者
Grafana


注册以接收偶尔的产品新闻和更新



数据源
grafana

X-Ray

  • 概述
  • 安装
  • 更改日志
  • 相关内容

X-Ray 数据源

X-Ray 数据源插件提供对 AWS X-Ray 的支持。将其添加为数据源,然后您就可以构建仪表板或使用 Explore with X-Ray 来查看跟踪、分析或洞察。

添加数据源

  1. 在侧边菜单的“配置”链接下,单击“数据源”。
  2. 单击“添加数据源”按钮。
  3. 在“分布式跟踪”部分中选择“X-Ray”。

注意:如果您在使此数据源工作时遇到问题,并且 Grafana 给您提供了一些不确定的错误,请检查您的日志文件 (/var/log/grafana/grafana.log)。

名称描述
名称数据源名称。这是您在面板和查询中引用数据源的方式。
默认默认数据源意味着它将被预先选中用于新面板。
默认区域在查询编辑器中使用,用于设置区域。(可以在每个查询的基础上更改)
身份验证提供程序指定提供程序以获取凭据。
凭据配置文件名称指定要使用的配置文件的名称(如果您使用 ~/.aws/credentials 文件),留空表示使用默认配置。
假设角色 ARN指定要假设的角色的 ARN。
外部 ID如果您正在假设另一个帐户中创建的角色,该角色是使用外部 ID 创建的,请在此处指定外部 ID。

身份验证

在本节中,我们将介绍您可以用于 AWS X-Ray 数据源的不同类型的身份验证。

IAM 角色

目前,对 X-Ray 的所有访问都是由 Grafana 后端使用官方 AWS SDK 在服务器端进行的。如果您的 Grafana 服务器在 AWS 上运行,您可以使用 IAM 角色,身份验证将自动处理。

请参阅 AWS 文档中关于 IAM 角色 的内容。

注意:目前不支持 AWS 角色切换

IAM 策略

Grafana 需要通过 IAM 授予的权限才能读取 X-Ray 数据和 EC2 标签/实例/区域。您可以将这些权限附加到 IAM 角色并利用 Grafana 的内置角色假设支持。

这是一个基本的策略示例

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "xray:BatchGetTraces",
        "xray:GetTraceSummaries",
        "xray:GetTraceGraph",
        "xray:GetGroups",
        "xray:GetTimeSeriesServiceStatistics",
        "xray:GetInsightSummaries",
        "xray:GetInsight",
        "xray:GetServiceGraph",
        "ec2:DescribeRegions"
      ],
      "Resource": "*"
    }
  ]
}

AWS 凭据示例

如果身份验证提供程序是“凭据文件”,Grafana 会尝试按照以下顺序获取凭据

  • 硬编码凭据
  • 环境变量(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  • 现有的默认配置文件
  • ~/.aws/credentials
  • Amazon EC2 的 IAM 角色

请参阅 AWS 文档中关于 配置 AWS SDK for Go 的内容,了解更多信息。

AWS 凭据文件

~/.aws/credentials 中创建一个文件。这就是运行 grafana-server 的用户的 HOME 路径。

注意:如果凭据文件在正确的目录中,但无法正常工作,请尝试将您的 .aws 文件移动到“/usr/share/grafana/”。确保您的凭据文件最多具有 0644 权限。

凭据文件示例

[default]
aws_access_key_id = <your access key>
aws_secret_access_key = <your access key>
region = us-west-2

查询编辑器

查询编辑器中最重要的是查询类型。有五种查询类型

  • 跟踪列表(AWS 中的跟踪)
  • 跟踪统计信息
  • 跟踪分析 (AWS 中的分析)
  • 见解
  • 服务地图

x-ray-query-editor

跟踪列表

跟踪列表类型允许您搜索以表格形式显示的跟踪。点击第一列中的 `trace id` 会在右侧打开跟踪。注意编辑器中的查询字段。您可以编写查询、过滤表达式或插入将在跟踪视图中显示的单个跟踪 ID。您可以在 AWS X-Ray 文档 中找到有关过滤表达式的更多详细信息。

x-ray-trace-list

注意: 跟踪列表将只显示前 1000 个跟踪。

跟踪统计信息

在跟踪统计信息中,您可以看到一个图表和一个表格,显示有关错误、故障、节流、成功和总数的信息。您可以在查询编辑器中使用 `columns` 字段来只查看指定的列。

x-ray-trace-statistics

跟踪分析

在跟踪分析中,您可以可视化以下表格

  • 根本原因
    • 响应时间
      • 根本原因服务(路径中的最后一个服务)
      • 路径(多条路径)
    • 错误
      • 根本原因服务(路径中的最后一个服务)
      • 路径
      • 错误消息
    • 故障
      • 根本原因服务(路径中的最后一个服务)
      • 路径
      • 错误消息
  • 最终用户影响
  • URL
  • HTTP 状态代码

见解

在 Insights 中,您可以看到 Insights 的摘要表。点击 `InsightId` 将带您到 AWS 控制台。

服务地图

Grafana 中的服务地图使客户能够查看使用微服务架构构建的应用程序地图。地图上的每个节点代表一个服务,例如 AWS Lambda 函数或在 API 网关或 DynamoDB 表上运行的 API。使用此地图,客户可以轻松地检测性能问题或任何服务中错误、故障或节流率的增加,并深入研究相应的跟踪和根本原因。

Service map

服务地图查询类型显示与 X-ray 控制台中的服务地图相同的数据。

要显示服务地图

  • 在 Grafana 7.4 及更高版本中使用 节点图面板 可视化。
  • 在 Grafana 7.4 及更高版本中使用 Explore
  • 以简单表格的形式显示数据。如果节点图面板不可用,这是唯一的选择。

您可以使用按钮或鼠标平移和缩放视图。有关可视化的详细信息,请参阅 节点图面板

Service map navigation

与 X-ray 根节点类似,服务地图中代表客户端应用程序的节点位于地图的左侧。

地图中的每个服务都用一个圆圈表示。内部的数字显示每个事务的平均时间和每分钟的事务数。

服务周围的彩色圆圈也与 X-ray 控制台中的颜色和含义相匹配,表示请求的百分比。

  • 绿色 = 成功
  • 红色 = 故障
  • 黄色 = 错误
  • 紫色 = 节流响应

点击服务或边缘以查看带有链接的上下文菜单,这些链接可以快速导航到 X-ray 中其他相关信息的附加链接。您可以使用这些链接快速导航到特定服务的全部错误跟踪列表,然后继续到特定跟踪。

有关服务地图的更多信息,请参阅官方 AWS X-Ray 文档

警报

由于 X-Ray 查询可以返回数值数据,因此支持警报。有关 Grafana 警报的更多信息,请参阅 警报 文档。

定价

使用 AWS X-Ray,没有预先费用或承诺。您只需为使用量付费,根据记录、检索和扫描的跟踪数量。每月检索或扫描的前 100 万次跟踪是免费的。超出免费层级后,扫描的跟踪按每 100 万次扫描跟踪 0.50 美元收费(每跟踪 0.0000005 美元)。有关更多详细信息,请参阅 X-Ray 定价页面

使用预置配置数据源

您可以使用 Grafana 的预置系统使用配置文件来配置数据源。有关其工作原理和所有可用设置的更多信息,请参阅 预置 Grafana

以下是一些此数据源的预置示例。

使用凭据文件

如果您使用的是凭据文件身份验证类型,请使用类似于此的配置

apiVersion: 1

datasources:

  • name: X-Ray type: grafana-x-ray-datasource jsonData: authType: credentials defaultRegion: eu-west-2

使用 `accessKey` 和 `secretKey`

apiVersion: 1

datasources:

  • name: X-Ray type: grafana-x-ray-datasource jsonData: authType: keys defaultRegion: eu-west-2 secureJsonData: accessKey: ‘<your access key>’ secretKey: ‘<your secret key>’

跨账户可观察性

X-Ray 插件允许您使用跨账户可观察性功能在单个区域中的多个 AWS 账户中监控跟踪。使用跨账户可观察性,您可以无缝搜索、可视化和分析 AWS 跟踪,而无需担心账户边界。

入门

要启用跨账户可观察性,首先使用官方 CloudWatch 文档 在 AWS 中启用此功能,然后将 两个 API 操作 添加到附加到运行插件的角色/用户的 IAM 策略。

此功能目前处于 `cloudWatchCrossAccountQuerying` 功能切换的后面。

您可以通过配置文件或环境变量启用功能切换。有关详细信息,请参阅配置 [文档]({{< relref "../setup-grafana/configure-grafana/#feature_toggles" >}})。Grafana Cloud 用户可以通过 在云门户中打开支持票证 来访问此功能。

按账户 ID 过滤跟踪

启用此功能后,您将能够显示跨多个账户的跟踪并按账户 ID 过滤这些跟踪。当您在 Grafana 中选择 `服务地图` 查询类型时,将显示一个账户下拉列表,并填充所选时间范围内返回的跟踪中显示的账户 ID。

您还可以将账户 ID 添加为跟踪列表查询类型中的查询过滤器表达式的一部分。

在 Grafana Cloud 上安装 X-Ray

有关更多信息,请访问有关 插件安装 的文档。

更改日志

此项目的所有重大更改都将记录在此文件中。

2.10.1

  • chore: 在 #245 中添加错误源
  • Chore: 在 #243 中重命名数据源文件
  • #242 中添加使用 lint 和拼写检查的预提交钩子
  • #246 中使用 yarn 而不是 cspell 作为预提交钩子

2.10.0

  • Chore: 在 #240 中更新依赖项

2.9.1

  • 通过 @idastambuk 在 #235 中迁移到配置和查询编辑器中的新表单样式

2.9.0

  • 修复:通过 @kevinwcyu 在 #228 中将空数组传递给查询所有列
  • 通过 @katebrenner 在 #226 中添加针对问题的 stalebot
  • 通过 @iwysiu 在 #232 中更新为使用 datasource.Manage 和 sessions.GetSessionWithAuthSettings
  • 修复:通过 @iwysiu 在 #236 中使用 ReadAuthSettings 获取 authSettings

2.8.3

2.8.2

  • 在 https://github.com/grafana/x-ray-datasource/pull/220 中将 grafana/aws-sdk-go 更新到 0.20.0

2.8.1

  • 通过 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/208 中将 go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace 从 0.37.0 提升到 0.44.0
  • 通过 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/212 中将 google.golang.org/grpc 从 1.58.2 提升到 1.58.3
  • 通过 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/218 中将 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 从 0.45.0 提升到 0.46.0
  • 通过 @fridgepoet 在 https://github.com/grafana/x-ray-datasource/pull/217 中升级 underscore、d3-color、debug、cosmiconfig、yaml 依赖项

完整变更日志:https://github.com/grafana/x-ray-datasource/compare/v2.8.0...v2.8.1

2.8.0

  • 通过 @idastambuk 在 #211 中将 ConfigEditor 和 QueryEditor 迁移到新的表单样式

  • #210 中将 google.golang.org/grpc 从 1.54.0 提升到 1.56.3

  • 201 中支持 Node 18

2.7.2

  • 通过 @jamesrwhite 在 https://github.com/grafana/x-ray-datasource/pull/203 中修复 X-Ray 服务地图过滤跟踪列表查询

2.7.1

  • 更新 @grafana/aws-sdk 以修复临时凭据中的错误

2.7.0

  • 将 grafana-aws-sdk 更新到 v0.19.1 以将 `il-central-1` 添加到可选区域列表中

2.6.2

  • 提升 grafana-aws-sdk-react 依赖项 #191
  • 删除代码覆盖工作流程 #188

2.6.1

  • 将 grafana-aws-sdk 版本更新为包括可选区域列表中的新区域 https://github.com/grafana/grafana-aws-sdk/pull/80
  • 安全:将构建过程中的 Go 升级到 1.20.4
  • 将 grafana-plugin-sdk-go 版本更新到 0.161.0 以避免潜在的 http 标头问题。 https://github.com/grafana/athena-datasource/issues/233

2.6.0

  • 更新后端依赖项

2.5.0

  • 通过 @kevinwcyu 在 https://github.com/grafana/x-ray-datasource/pull/173 中添加 SQL 到跟踪

2.4.0

  • 通过 @sunker 在 https://github.com/grafana/x-ray-datasource/pull/158 中添加拼写检查并修复拼写错误
  • 通过 @iwysiu 在 https://github.com/grafana/x-ray-datasource/pull/148 中迁移到 create-plugin
  • 通过 @idastambuk 在 https://github.com/grafana/x-ray-datasource/pull/162 中更新代码覆盖工作流程
  • 通过 @kevinwcyu 在 https://github.com/grafana/x-ray-datasource/pull/164 中更新 @grafana/aws-sdk
  • 依赖项:通过 @idastambuk 在 https://github.com/grafana/x-ray-datasource/pull/167 中将 @grafana 依赖项更新到 9.3.2
  • 小型重构:通过 @sarahzinger 在 https://github.com/grafana/x-ray-datasource/pull/169 中如果不在服务地图页面上,则不要获取账户 ID
  • 通过 @fridgepoet 在 https://github.com/grafana/x-ray-datasource/pull/171 中将 grafana-aws-sdk 升级到 v0.12.0

完整变更日志:https://github.com/grafana/x-ray-datasource/compare/v2.2.0...v2.4.0****

2.3.0

  • 功能:在 https://github.com/grafana/x-ray-datasource/pull/157 中实现根据账户 ID 过滤功能。

2.2.0

  • SummaryStatistics 的属性设为可选。

2.1.2

  • 安全:在构建过程中将 Go 升级到 1.19.3。

2.1.1

  • 安全:在构建过程中将 Go 升级到 1.19.2。

2.1.0

  • 由 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/130 中将 terser 从 4.8.0 升级到 4.8.1。
  • 由 @iwysiu 在 https://github.com/grafana/x-ray-datasource/pull/132 中修复了使用变量的跟踪列表问题。
  • 由 @fridgepoet 在 https://github.com/grafana/x-ray-datasource/pull/139 中升级到 grafana-aws-sdk v0.11.0。

完整变更日志:https://github.com/grafana/x-ray-datasource/compare/v2.0.1...v2.1.0

v.2.0.1

  • 修复使用密钥进行身份验证的错误:https://github.com/grafana/x-ray-datasource/pull/128
  • 代码覆盖率变更
  • 代码所有者变更

v2.0.0

变更内容

  • 由 @yaelleC 在 https://github.com/grafana/x-ray-datasource/pull/122 中停止对低于 8.0.0 的 Grafana 版本的支持。

错误修复

  • 由 @iwysiu 在 https://github.com/grafana/x-ray-datasource/pull/115 中更新最小 IAM 策略。
  • 由 @fridgepoet 在 https://github.com/grafana/x-ray-datasource/pull/119 中修复了对字符串.Title 的过时使用。

其他

  • 由 @andresmgot 在 https://github.com/grafana/x-ray-datasource/pull/121 中更新 grafana-aws-sdk。

v1.4.0

错误修复

  • 在为假定的角色获取令牌时使用非选择加入区域。
  • 修复了错误的开始和结束时间 #89
  • 修复了格式更改后的时间持续时间 #88
  • 避免了在标签中无法解析 URL 时出现的错误 #84

其他

  • 修改了请求的用户代理。现在将遵循以下格式:"aws-sdk-go/$aws-sdk-version ($go-version; $OS;) X-ray/$X-ray-version-$git-hash Grafana/$grafana-version"

v1.3.4

错误修复

  • 在服务地图图例中添加了可读的统计信息名称 #82
  • 升级了 grafana-aws-sdk 版本,修复了假定角色时出现的错误 #81

其他

  • 由 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/80 中将 prismjs 从 1.23.0 升级到 1.24.0 #80

v1.3.3

其他

  • 由 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/77 中升级了 grafana/aws-sdk 和 Grafana 的依赖版本 #77

v1.3.2

功能/增强

  • 使用来自 grafana-aws-sdk 的 ConnectionConfig #73
  • 由 @dependabot 在 https://github.com/grafana/x-ray-datasource/pull/70 中将 prismjs 从 1.21.0 升级到 1.23.0 #70

v1.3.1

错误修复

  • 删除了不向后兼容的 API 的使用,从而阻止了在 7.4.0 之前的 Grafana 中使用 1.3.0 版本。 #67

其他

  • 将 Grafana 依赖项锁定在最新的稳定版本上,以防止 CI 中出现编译失败。 #68

v1.3.0

功能/增强

  • 添加了服务地图查询类型,该类型允许以类似于 X-Ray 控制台的方式可视化服务地图数据。 #60

v1.2.0

功能/增强

  • 更新了插件配置页面中的身份验证设置,以包括 SDK 默认身份验证机制,并使用我们专门针对 AWS 的 Grafana 身份验证 SDK。 #59

v1.1.0

功能/增强

  • 在查询编辑器中添加了区域选择器。 #57

v1.0.1

  • CI 自动发布所需的版本提升

v1.0.0

  • 初始发布