插件 〉Thruk


开发者

Sven Nierlein

订阅以接收不定期产品新闻和更新



数据源
社区

Thruk

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

Thruk Grafana 数据源 - 使用 Thruk REST API 的 Grafana 后端数据源

Thruk Grafana Datasource

安装

thruk Grafana 插件目录中搜索,或直接使用 grafana-cli 命令

%> grafana-cli plugins install sni-thruk-datasource

此外,OMD-Labs 也包含此数据源,因此如果您使用 OMD-Labs,所有设置均已完成。

否则请按照以下步骤操作

%> cd var/grafana/plugins
%> git clone -b release-1.0.4 https://github.com/sni/grafana-thruk-datasource.git
%> restart grafana

release-1.0.4 替换为最后一个可用的发布分支。

创建数据源

添加新数据源并选择

使用 Grafana 代理。

表格查询

使用表格面板,您可以显示来自 REST API 的大部分数据。但是,只有文本、数字和时间戳能够以合理的方式显示。对嵌套数据结构的支持有限。

选择您要显示数据的 REST 路径。然后选择所有列。您也可以添加聚合函数,它们总是影响其后的列。

变量查询

可以使用 Thruk 的 REST API 来填充 Grafana 变量。例如,要获取特定主机组的所有主机,请使用此示例查询

SELECT name FROM hosts WHERE groups >= 'linux'

标注查询

标注查询可用于将日志文件条目添加到您的图表中。请注意,标注在仪表盘中的所有图表间共享。

重要的是至少使用一个时间过滤器。

Annotations

单值查询

单值最适合与返回聚合值或使用 `avg`、`sum`、`min`、`max` 或 `count` 等聚合函数的 REST 端点一起使用。

基于时间序列的面板

尽管 Thruk 不是时间序列数据库,通常只返回表格数据,但如果面板无法处理表格数据,一些查询可以转换为模拟时间序列。

您可以使用具有两列(名称、值)的查询,或仅返回一行包含数值的查询。

统计数据饼图

例如,饼图插件可以与以下统计查询一起使用

SELECT count() state, state FROM /hosts

该查询预计会获取两列。第一列是值,第二列是名称。

单个主机饼图

示例:使用单个主机的统计数据将其放入饼图

SELECT num_services_ok, num_services_warn, num_services_crit, num_services_unknown FROM /hosts WHERE name = '$name' LIMIT 1

Pie Chart

使用变量

仪表盘变量几乎可以用于所有查询。例如,如果您定义了一个名为 `host` 的仪表盘变量,那么您可以在查询中使用 `$host`。

时间过滤器有一个特殊语法:`field = $time`,它将被替换为 `(field >= starttime AND field <= endtime)`。这可以用来将结果限制在仪表盘的时间范围内。

SELECT time, message FROM /hosts/$host/alerts WHERE time = $time

等同于

SELECT time, message FROM /alerts WHERE host_name = "$host" AND time = $time

Variables

开发

要测试和改进插件,您可以在 Docker 中运行 Grafana 实例,使用以下命令(在本插件的源目录下)

% make dev

这将启动一个 grafana 容器和一个构建监视器,后者会更新 dist/ 文件夹中的插件。

可以通过以下地址访问开发实例:`https://:3000``

注意:您需要手动添加数据源,并且在启动开发容器之前需要运行一次“make build”,否则 Grafana 将找不到数据源。

测试

您可以使用以下演示 Thruk 实例进行测试

创建发布

如何创建新发布

%> export RELVERSION=1.0.7
%> export GRAFANA_API_KEY=...
%> vi package.json # replace version
%> vi CHANGELOG.md # add changelog entry
%> git commit -am "Release v${RELVERSION}"
%> git tag -a v${RELVERSION} -m "Create release tag v${RELVERSION}"
%> make GRAFANA_API_KEY=${GRAFANA_API_KEY} releasebuild
# create release here https://github.com/sni/grafana-thruk-datasource/releases/new
# submit plugin update here https://grafana.org.cn/orgs/sni/plugins

更新日志

参见 CHANGELOG.md

在 Grafana Cloud 上安装 Thruk

欲了解更多信息,请访问文档页面:插件安装

更新日志

2.0.4 2023-12-04 - 移除时间过滤器限制 - 更新 grafana toolkit 至 10.1.5

2.0.3 2023-07-14 - 使拖放更明显 - 为数值列设置正确字段类型 - 修复从列列表中移除 *

2.0.2 2023-05-30 - 修复在路径/来源字段中使用变量的问题

2.0.1 2022-12-02 - 修复变量查询中的语法错误

2.0.0 2022-10-28 - 使用 React 为 Grafana 9 重建 - 添加对日志浏览器支持 - 查询编辑器:- 支持列排序

1.0.7 2022-02-11 - 为 Grafana 8 重建 - 更新依赖项

1.0.6 2021-01-04 - 签名插件 - 将包构建切换到 yarn

1.0.5 2020-09-11 - 改进打包

1.0.4 2020-06-29 - 修复启用“外部共享导出”时的导出问题

1.0.3 2019-02-15 - 支持聚合函数 - 将哈希响应转换为表格 - 支持基于时间序列的面板

1.0.2 2019-01-04 - 添加更多时间样式

1.0.1 2018-09-30 - 修复标注查询解析器

1.0.0 2018-09-14 - 初次发布