
Business News 数据源已经被官方所淘汰了,所以需要迁移至 Grafana Infinity 数据源。前者用来获取 RSS 或是 Atom 都很方便,后者设置起来稍微复杂一点,不过也就稍微一点点。
Infinity 是一个通用的数据源插件,它不仅能替代 Business News 读取 XML/RSS,还能处理 JSON、CSV、GraphQL 等各种数据。
那就先从 Hetzner Status (Atom) 开始。
Prerequisite
- 安装插件:确保 Grafana 中已经安装了 Infinity Data Source。
- 目标 URL:本例使用
https://status.hetzner.com/en.atom。
设置数据源

Authentication 选择 No Auth,因为链接公开未设置身份验证。

URL, Headers & Paarams 添加数据源,Base URL 填写 https://status.hetzner.com/en.atom。
测试合适的话,再设置 Provisioning,未来迁移时不必再次建立,如以下示例
apiVersion: 1
datasources:
- name: Hetzner Status Atom
type: yesoreyeram-infinity-datasource
access: proxy
url: https://status.hetzner.com/en.atom
jsonData:
allowedHosts:
- https://status.hetzner.com/en.atom设置面板
新建一个 Panel,选择 Visualization 为 Table,Data source 选择 Infinity。
基础查询配置
- 在查询编辑器(Query Editor)中:
- Method:
GET(默认值) - URL:
https://status.hetzner.com/en.atom(非必要) - Type: 这里的默认值通常是 JSON,必须手动改为 XML。

- 解析 XML 结构 (Rows/Root)
这是最关键的一步。Atom/RSS XML 文件通常是层级嵌套的。
打开 Parsing options & Result fields 折叠项:
- Rows/Root: 输入
feed.entry

查看原始 XML 文件(如下仅为部分)
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Hetzner Online GmbH - Status-Webseite</title>
<id>https://status.hetzner.com/</id>
<link href="https://status.hetzner.com/en.atom" rel="self" type="application/atom+xml" />
<link href="https://status.hetzner.com" rel="alternate" type="text/html" />
<icon>https://status.hetzner.com/favicon.ico</icon>
<updated>2025-12-03T10:19:30+00:00</updated>
<author>
<name>Hetzner Online GmbH</name>
</author>
<entry>
<id>https://status.hetzner.com/2e715748-fddd-427b-a07b-b34a5a9edee3/0</id>
<updated>2025-04-09T11:20:09+00:00</updated>
<link href="https://status.hetzner.com/incident/2e715748-fddd-427b-a07b-b34a5a9edee3" />
<title>Phishing emails stealing logins and credit card data</title>
<category term="General"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>Start: 2024-07-05T06:00:00+00:00</p>发现所有的事件都包裹在 <feed> 下的 <entry> 标签中,即 <feed> 中包含多个 <entry> 节点,每一个 <entry> 代表一个具体的维护事件或故障通知。设置这个路径后,Infinity 就会把每一个 <entry> 当作表格中的一行。
提取字段
有了“行”之后,我们需要定义“列”。在 Parsing options 下方点击 Add Columns,依次添加需要的信息:
| 原始字段 (Selector) | 显示名称 (As) | 说明 |
|---|---|---|
title | Title | 事件标题 |
updated | Updated | 更新时间 |
category.-term | Category | 分类信息 |
link.-href | Link | 原始链接,稍后将会作为超链接 override |

配置完成后,一张包含标题、时间、分类和链接的原始表格就形成了。
其余设置
配置 Data Link
利用 Grafana 的 Data links 功能,将 Link 字段的值赋予 Title。
- 在右侧属性栏底部处找到 Add field overrides (覆盖),亦可通过 Visualizion 右侧的筛选图标直达。
- 点击 + Add field override -> Fields with name -> 选择 Title。
- 点击 + Add override property -> Data links -> Add link。
- Title 输入
${__data.fields.Title}(鼠标悬停时显示的文字)。 - URL: 输入
${__data.fields.Link}。

隐藏多余的 Link 列
现在 Title 已经可以点击跳转了,原本的 Link 列就显得多余了。
~~1. 切换到查询编辑器上方的 Transformations (转换) 标签页。
- 搜索并添加 Organize fields。
- 在列表中找到
Link,点击眼睛图标将其隐藏。~~
使用 Transformations 这种方法会导致 Data Link 的 override 失效,因此还是用 override 进行配置
- 点击 + Add field override -> Fields with name -> 选择 Link。
- 点击 + Add override property -> Hide in table -> 切换设置隐藏 Link 列。

格式化时间
默认抓取下来的时间是字符串格式。为了让 Grafana 能识别它并按时间排序:在 Columns 配置中,找到 Updated 这一列,将 format as 从 String 改为 Time。这样可以自动根据时区调整显示格式。

开启表格分页
- 在右侧属性栏 (Panel options) 找到 Table 选项卡。
- 开启 Enable pagination 开关。
- 现在表格底部会出现翻页按钮,版面更加整洁。
开启列过滤
方便快速查找特定分类(如只看 "Support" 相关的公告):
- 同样在右侧属性栏的 Table 选项卡中。
- 开启 Column filter 开关。
- 现在每个表头旁边都会出现一个小漏斗图标,点击即可筛选内容。
参考资料
Infinity data source plugin for Grafana | Grafana Plugins documentation