插件 〉X-Ray


开发者

Grafana


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



数据源
grafana

X-Ray

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

X-Ray 数据源

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

添加数据源

  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能够读取X-Ray数据以及EC2标签/实例/区域,需要通过IAM授予权限。您可以将这些权限附加到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的用户的主目录。

注意:如果凭证文件在正确的目录中,但不起作用,请尝试将您的.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

跟踪列表

跟踪列表类型允许您搜索显示在表格中的跟踪。单击第一列中的跟踪ID将在右侧打开跟踪。注意编辑器中的查询字段。您可以编写查询、筛选表达式或插入单个跟踪ID,该ID将在跟踪视图中显示。有关筛选表达式的更多详细信息,请参阅AWS X-Ray文档

x-ray-trace-list

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

跟踪统计信息

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

x-ray-trace-statistics

跟踪分析

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

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

洞察

在洞察中,您可以看到洞察的摘要表格。单击InsightId将带您进入AWS控制台。

服务映射图

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

Service map

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

要显示服务映射

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

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

Service map navigation

与服务映射中表示客户端应用程序的节点类似,X射线根节点中的节点位于地图的左侧。

地图中的每个服务都表示为一个圆圈。圆圈内部的数字显示每笔交易的平均时间和每分钟的交易次数。

围绕服务的彩色圆圈也与X射线控制台中的颜色和意义相匹配,表示请求的百分比。

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

单击服务或边,将显示一个上下文菜单,其中包含从X射线快速导航到其他相关信息的链接。您可以使用这些链接快速导航到特定服务的所有错误跟踪列表,然后继续到特定跟踪。

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

警报

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

定价

AWS X-Ray没有预付费或承诺。您只需为您使用的内容付费,基于记录、检索和扫描的跟踪数量。每月检索或扫描的前1000,000条跟踪免费。超出免费层,扫描的跟踪费用为每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

使用accessKeysecretKey

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文档启用该功能,然后将两个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中添加errorsource
  • Chore:在#243中重命名数据源文件
  • 添加pre-commit钩子,带有lint和spellcheck #242
  • 使用yarn代替cspell作为precommit钩子 #246

2.10.0

  • 任务:更新#240中的依赖项

2.9.1

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

2.9.0

  • 修复:由@kevinwcyu在#228通过传递空数组查询所有列
  • 通过@katebrenner添加stalebot以处理问题 #226
  • 通过@iwysiu更新到使用datasource.Manage和sessions.GetSessionWithAuthSettings #232
  • 修复:通过@kevinwcyu在#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将underscore、d3-color、debug、cosmiconfig、yaml依赖项升级 #217

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

2.8.0

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

  • 通过@fridgepoet在#210中将google.golang.org/grpc从1.54.0提升到1.56.3

  • 支持Node 18 201

2.7.2

  • 通过@jamesrwhite在https://github.com/grafana/x-ray-datasource/pull/203中修复X-Ray Service Map筛选跟踪列表查询

2.7.1

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

2.7.0

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

2.6.2

  • 通过@dependabot在https://github.com/grafana/grafana-aws-sdk/pull/191中将grafana/aws-sdk-react依赖项提升
  • 通过@dependabot在https://github.com/grafana/grafana-aws-sdk/pull/188中删除代码覆盖率工作流程

2.6.1

  • 通过@fridgepoet在https://github.com/grafana/grafana-aws-sdk/pull/80中将grafana-aws-sdk版本更新到包含新区域
  • 安全:在构建过程中将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
  • 小重构:如果不位于服务图页面,则不要获取帐户ID by @sarahzinger in https://github.com/grafana/x-ray-datasource/pull/169
  • 通过@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

  • 功能:通过#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 停止支持低于 8.0.0 的 Grafana 版本,详情见 https://github.com/grafana/x-ray-datasource/pull/122

错误修复

  • @iwysiu 更新最小 IAM 策略,详情见 https://github.com/grafana/x-ray-datasource/pull/115
  • @fridgepoet 修复废弃的 strings.Title 使用,详情见 https://github.com/grafana/x-ray-datasource/pull/119

其他

  • @andresmgot 更新 grafana-aws-sdk,详情见 https://github.com/grafana/x-ray-datasource/pull/121

版本 v1.4.0

错误修复

  • 在获取假定角色的令牌时使用非选择加入的分区
  • 修复了错误的时间范围,详情见 #89
  • 修复了格式更改后的时间长度,详情见 #88
  • 避免解析标签中的 URL 时出错,详情见 #84

其他

  • 修改请求的 User-Agent。现在它将遵循以下形式:"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

其他

  • 将 prismjs 从 1.23.0 升级到 1.24.0,详情见 #80

版本 v1.3.3

其他

  • 升级 grafana/aws-sdk 和 Grafana 依赖版本,详情见 #77

版本 v1.3.2

特性/增强

  • 使用来自 grafana-aws-sdk 的 ConnectionConfig,详情见 #73
  • 将 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 默认认证机制,并使用我们的 Grafana 特定认证 SDK 进行 AWS 认证,详情见 #59

版本 v1.1.0

特性/增强

  • 添加查询编辑器中的区域选择器,详情见 #57

版本 v1.0.1

  • 需要版本提升以进行 CI 自动化发布

版本 v1.0.0

  • 首次发布