插件 〉节点图 API


开发者

Hamed Karbasi

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



数据源
社区

节点图 API

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

适用于 Grafana 的节点图 API 插件

License CI Release

此插件提供了一个数据源,用于将 REST API 连接到 Grafana 的节点图面板。它已由 Grafana 签名并发布

Graph Example

要求

  • Grafana 7.5+

开始使用

通过 grafana-cli 工具安装

使用 grafana-cli 工具从命令行安装 Node Graph API

grafana-cli plugins install hamedkarbasi93-nodegraphapi-datasource

该插件将安装到您的 grafana 插件目录中;默认目录是 /var/lib/grafana/plugins更多关于 cli 工具的信息

通过 zip 文件安装

或者,您可以手动下载最新发布的 .zip 文件,并将其解压到您的 grafana 插件目录中;默认目录是 /var/lib/grafana/plugins

插件配置

现在您可以添加数据源了。只需输入您的 API 应用的 URL,然后点击“保存并测试”。连接失败时将显示错误。

Add Datasource

在 Grafana 仪表盘中,选择节点图面板并可视化图形。

关于应用访问的说明

  • 版本 0.x.x 在直接模式下工作。也就是说,浏览器必须能够访问 API 应用。
  • 版本 1.x.x+ 在代理模式下工作。也就是说,Grafana 服务器应该能够访问 API 应用。

API 配置

REST API 应用应该处理三个请求:fieldsdatahealth。下面将进行描述。

获取图字段

此路由返回参数表中定义的节点和边字段。它有助于插件为图形创建所需的参数。对于节点,需要 id 字段;对于边,需要 idsourcetarget 字段。其他字段是可选的。

端点:/api/graph/fields

方法:GET

内容类型:application/json

内容格式示例

{
  "edges_fields": [
    {
      "field_name": "id",
      "type": "string"
    },
    {
      "field_name": "source",
      "type": "string"
    },
    {
      "field_name": "target",
      "type": "string"
    },
    {
      "field_name": "mainStat",
      "type": "number"
    }
  ],
  "nodes_fields": [
    {
      "field_name": "id",
      "type": "string"
    },
    {
      "field_name": "title",
      "type": "string"
    },
    {
      "field_name": "mainStat",
      "type": "string"
    },
    {
      "field_name": "secondaryStat",
      "type": "number"
    },
    {
      "color": "red",
      "field_name": "arc__failed",
      "type": "number"
    },
    {
      "color": "green",
      "field_name": "arc__passed",
      "type": "number"
    },
    {
      "displayName": "Role",
      "field_name": "detail__role",
      "type": "string"
    }
  ]
}

获取图数据

此路由返回图数据,用于可视化。

端点:/api/graph/data

方法:GET

内容类型:application/json

数据格式示例

{
    "edges": [
        {
            "id": "1",
            "mainStat": "53/s",
            "source": "1",
            "target": "2"
        }
    ],
    "nodes": [
        {
            "arc__failed": 0.7,
            "arc__passed": 0.3,
            "detail__zone": "load",
            "id": "1",
            "subTitle": "instance:#2",
            "title": "Service1"
        },
        {
            "arc__failed": 0.5,
            "arc__passed": 0.5,
            "detail__zone": "transform",
            "id": "2",
            "subTitle": "instance:#3",
            "title": "Service2"
        }
    ]
}

有关变量的更多详细信息,请访问此处

健康检查

此路由用于测试 API 的健康状况,在添加插件时由“保存并测试”操作使用(入门部分第二部分)。目前,它只需要在成功连接时返回 200 状态码。

端点:/api/health

方法:GET

成功状态码:200

API 示例

example 文件夹中,您可以找到一个用 Python Flask 编写的简单 API 应用。

要求

  • flask

运行

python run.py

应用程序将在 https://:5000 启动

查询配置

您可以通过“查询字符串”将查询字符串传递给图的数据端点。与其他查询一样,您也可以利用变量

Add Datasource

使用定义为 processors 的变量 $service,上述查询将生成此端点:/api/graph/data?query=text1&service=processors

自行编译数据源

  1. 安装依赖项

    yarn install
    
  2. 在开发模式下构建插件或在监视模式下运行

    yarn dev
    

    yarn watch
    
  3. 在生产模式下构建插件

    yarn build
    

路线图

  • <input checked="" disabled="" type="checkbox"> 在代理模式下使用 BackenSrv。这将消除客户端浏览器连接 API 服务器的必要性。
  • <input disabled="" type="checkbox"> 编写单元测试。

了解更多

贡献

感谢您的考虑贡献!如果您发现问题或有更好的方法,请随时创建 Issue 或 PR。

许可

本仓库是根据 Apache 许可证 2.0 授权的开源软件。

在 Grafana Cloud 上安装 Node Graph API

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

更改日志

1.0.0 (未发布)

首次发布。