Grafana 的 Dynatrace 数据源
Dynatrace 数据源插件允许您在 Grafana 内查询和可视化 Dynatrace 指标、问题、审计日志、管理区域、日志,并使用 USQL。由于底层的 Dynatrace API 仍是早期采用者版本,日志查询目前处于 Beta 阶段。
要求
此插件有以下要求
- 一个 Dynatrace 帐户
- 以下账户类型之一
- 适用于拥有 Grafana Cloud Free、Advanced 或 Trial 账户或已激活 Grafana Enterprise 许可证的用户。
已知限制
- 模板变量不能多选;仅支持单选。
- 由于底层的 Dynatrace API 仍是早期采用者版本,日志查询目前处于 Beta 阶段。
- 查询管理区域需要
Read configuration
范围权限。如果您不想使用管理区域过滤器,可以跳过此范围权限。
安装 Dynatrace 数据源插件
要安装此数据源,请参阅安装。
从 Dynatrace 获取 API 密钥
要设置 API 令牌,请参阅 Dynatrace API - 令牌和身份验证。
要查询各个服务,您需要为您的 API 令牌添加特定的范围权限。
服务 | 所需范围权限 |
---|---|
指标 | Read metrics 、Read entities 、(可选:v1: Read configuration ) |
问题 | v1: Access problem and event feed, metrics, and topology |
USQL | v1: User sessions |
日志 | 读取日志 |
审计日志 | 读取审计日志 |
管理区域 | v1: Read configuration |
直接 API 访问 | 请参阅 Dynatrace API 文档以了解所需的范围权限 |
在 Grafana 中配置数据源
通过填写以下字段添加数据源
- 名称
- 您想应用于 Dynatrace 数据源的名称。
- Dynatrace API 类型
- 您正在连接的 Dynatrace 实例类型。有 3 个选项
- SaaS
- 托管集群
- 原始 URL
- 环境 ID
- 在 SaaS 示例
yfc55578.live.dynatrace.com
中,您的环境 ID 是yfc55578
。在 Managed 示例yd8888.managed-sprint.dynalabs.io/e/abc99984-3af2-55tt-72kl-0672983gc45
中,您的环境 ID 是abc99984-3af2-55tt-72kl-0672983gc45
,您的域是yd8888.managed-sprint.dynalabs.io
- 原始 URL
- 您的自定义 Dynatrace 实例的 URL,例如
https://yfc55578.live.dynatrace.com
。原始 URL 允许输入不属于SaaS
或Managed Cluster
类型的 Dynatrace 实例的 URL。
- Dynatrace API 令牌
- 使用
metrics.read
和entities.read
权限生成的 API 令牌。请参阅从 Dynatrace 获取 API 密钥和应用程序密钥。 - 跳过 TLS 验证
- 可选 如果您需要跳过 TLS 验证,请启用此选项。默认值:false
- 使用 CA 证书
- 可选 用于验证自签名 TLS 证书。默认值:false。如果启用,您还需要在 CA 证书部分提供相应的证书。
- 超时
- 默认为 30 秒。配置插件和 Dynatrace 之间的 HTTP 客户端超时。
- 异步模式
- 如果您在 Dynatrace 中有许多不同的指标,异步模式会将这些指标的获取移出关键请求路径,并在后台获取。这可以极大地提高性能。
使用 Provisioning 配置数据源
可以使用配置文件通过 Grafana 的 Provisioning 系统配置数据源。要详细了解配置的工作原理,包括您可以为数据源设置的所有设置,请参阅Provisioning Grafana。
apiVersion: 1
datasources:
- name: Dynatrace
type: grafana-dynatrace-datasource
jsonData:
apiType: saas
environmentId: environment Id
secureJsonData:
apiToken: API token
- name: Dynatrace Managed
type: grafana-dynatrace-datasource
jsonData:
apiType: managed
environmentId: environment Id # example: abc99984-3af2-55tt-72kl-0672983gc45
domain: domain # example: yd8888.managed-sprint.dynalabs.io
tlsSkipVerify: false
tlsAuthWithCACert: true
httpClientTimeout: 360
secureJsonData:
apiToken: API token
tlsCACert: |
-----BEGIN CERTIFICATE-----
1221323123213123231231232+g6DAzj/11231
sdsaas==
-----END CERTIFICATE-----
查询数据源
查询编辑器允许您配置 4 种不同类型的 Dynatrace 查询。
查询
查询类型可以是 Metric
(指标)、Problems
(问题)、USQL
、Logs
(日志)、Audit Logs
(审计日志)、Management Zones
(管理区域)或 Direct API Access
(直接 API 访问)。
指标查询类型
- 管理区域(可选)
- 选择管理区域以按管理区域过滤结果。
- 指标
- 选择您想查看的指标。要再次从 Dynatrace 获取指标列表,请点击刷新按钮。
- 聚合
- 选择您想用于特定指标的聚合方式。点击聚合值可以更改聚合类型,或者点击 + 按钮添加另一个聚合。
- 转换
- 您可以在查询编辑器中选择转换。然后,将一些参数输入选定的转换。目前,仅支持合并转换。有关合并转换的信息,请参阅 合并转换。
- 过滤器
- Dynatrace 插件会动态查询每个指标对应的过滤器。
- 要添加过滤器,请点击 Dynatrace 查询编辑器上
Filters
标签旁边的 + 符号,选择您想过滤的字段,选择您想使用的运算符,然后选择要过滤的值。 - Dynatrace 插件允许您创建
Filter Groups
(过滤器组),您可以将它们组合起来创建复杂的逻辑比较。对于大多数用例,不需要Filter Groups
。 - 使用
Tags
(标签)创建过滤器时,无论选择何种连接词,Dynatrace 始终使用AND
。Dynatrace 不支持带有Tags
的OR
过滤器。 - 别名
- 使用 Dynatrace 插件时,您会遇到两种不同类型的别名。第一种是
static alias
(静态别名)。这种类型的别名在您构建的每个查询中都可用,其名称以小写字母开头。第二种是dynamic alias
(动态别名),它根据您在查询中使用的指标而变化,其名称以大写字母开头。 - Dynatrace 插件支持几种不同的别名:
Metric Names
(指标名称)、Aggregation
(聚合)、Display Name
(显示名称)、Host
(主机)和Description
(描述)。
名称 | 值 |
---|---|
$name | builtin:apps.other.keyUserActions.reportedErrorCount.os |
$aggregation | auto,value |
$displayName | 报告的错误计数(按关键用户操作、OS)[移动端、自定义] |
- 限制
- 设置结果大小的限制。每个系列将受此数量限制。
问题查询类型
- 问题查询类型
- 选择一个问题查询类型。目前仅支持 Feed 问题查询类型。有关 Feed 问题查询类型的信息,请参阅 Problems API - GET feed。
- 状态过滤器
- 按状态过滤结果问题。
- 影响过滤器
- 按影响级别过滤结果问题。
- 严重级别过滤器
- 按严重级别过滤结果问题。
- 展开详情
- 如果设置,响应中包含相关事件。
USQL 查询类型
- USQL 查询类型
- 选择 USQL 查询类型。此查询类型使用 用户会话 API
- USQL 查询
- 此区域左侧的工具栏有 3 个选项
- 恢复:将您的查询恢复到最近保存的查询
- 保存:保存当前查询并执行查询(Alt+S/Cmd+S/点击)。右侧的切换开关用于启用自动保存。在自动保存模式下,当您离开查询编辑器(即:点击刷新按钮)时,查询将立即保存。
- 添加 Deeplink 字段:启用后,将在查询中以附加数据集的形式返回 Deeplink 字段。然后可以使用转换进一步处理数据。
日志查询类型
- 查询
- 日志搜索查询。查询必须使用 Dynatrace 搜索查询语言。示例查询:
log.source="/var/log/syslog" AND (loglevel="error" OR loglevel="warn")
- 排序
- 这定义了如何对结果进行排序。
结果将根据仪表盘的时间范围自动过滤。
有关更多详细信息和限制,请参阅底层的 API 文档此处。
注意:日志查询类型处于 Beta 阶段。请向 Grafana 支持团队报告任何意外行为。底层的 Dynatrace API 是早期采用者版本。该 API 的变化可能与此插件不兼容。
审计日志查询类型
- 过滤器
- 过滤审计日志。您可以按照 DynaTrace API 文档中指定的方式输入过滤器查询。示例查询:
eventType("CREATE","UPDATE"),category("CONFIG")
- 排序
- 这定义了如何对结果进行排序。
结果将根据仪表盘的时间范围自动过滤。
有关更多详细信息和限制,请参阅底层的 API 文档此处。
直接 API 访问查询类型
:直接 API 访问允许查询任何其他 Dynatrace API 端点,但需要您使用 JSON Path 表达式解析出数据。
- API 端点
- 输入从版本号开始的 API 端点部分。示例
API 文档 API 端点 合成监控 v2/synthetic/locations
活动 v2/events
- 使用 JSONPath 解析
- 这是默认设置。选中后,响应将以 JSON paths 作为列头返回,方便根据需要解析出单个字段。
- 字段
- 输入要在响应中提取的字段的 JSON Path
- 类型
- 选择数据应提取为的类型。如果使用 auto(自动),类型将自动检测。对于在当前 UNIX 毫秒纪元一年内的数字,字段类型将是“时间”。请注意,未能解析为时间的时间将返回
nil
值。 - 别名
- 选择别名。输入后,列头/名称将反映输入的别名。目前不支持模板变量。留空则使用默认值,即 JSON path。
- 加号
- 在字段行条目的最右侧,点击加号将添加一个附加字段。
模板和变量
要添加新的 Dynatrace 查询变量,请参阅添加查询变量。使用您的 Dynatrace 数据源作为以下可用查询的数据源
- 查询类型
- 选择查询类型。查询类型将某些数据与某些键或描述符关联。
查询类型 | 描述 |
---|---|
指标名称 | 返回所有指标名称列表 |
过滤器键 | 返回所有可用于过滤的可能维度(例如 主机名)列表 |
特定键的过滤器值 | 按键名称或键名称模板变量返回过滤后的值列表 |
问题状态选项 | 返回所有问题状态列表 |
问题影响选项 | 返回所有问题影响区域列表 |
问题严重级别选项 | 返回所有问题严重级别类型列表 |
查询编辑器 | 允许您使用查询编辑器配置自定义查询,您可以使用它 |
来创建一个自定义模板变量。查询必须只返回 1 列。 | |
当您的查询返回 1 列时,点击 Apply (应用)按钮。 | |
可选地,原始查询可以返回名为 text 和 value 的两列,以便为值设置不同的显示值 |
- Regex
- (可选)使用正则表达式过滤掉查询返回的任何值
注意:Dynatrace 插件目前不支持 Multi-value
(多值)和 Include All option
(包含所有选项)。
创建变量后,您可以在 Metric
下拉菜单中找到它。有关变量的更多信息,请参阅模板和变量。
导入 Dynatrace 仪表盘
要导入仪表盘,请参阅导入仪表盘。导入的仪表盘可在 Configuration(配置)> Data Sources(数据源)> 选择您的 Dynatrace 数据源 > 选择 Dashboards(仪表盘)选项卡下找到,以查看可用的预建仪表盘。