grafana插件动态数据

举报
Nick Qiu 发表于 2020/10/23 12:32:30 2020/10/23
3k+ 0 0
【摘要】 简介前一篇文章,笔者探讨了如何使用grafana创建插件,以及制作配置面板,本文介绍如何把sql查询结果内的数据显示到pannel面板内。数据准备mysql 数据源drop table if EXISTS `table1`;CREATE TABLE `table1` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `create_time`...

简介

前一篇文章,笔者探讨了如何使用grafana创建插件,以及制作配置面板,本文介绍如何把sql查询结果内的数据显示到pannel面板内。

数据准备

mysql 数据源

drop table if EXISTS  `table1`;CREATE TABLE `table1` (    `id` INT ( 11 ) NOT NULL AUTO_INCREMENT,    `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE        CURRENT_TIMESTAMP COMMENT '销售记录的月份',    `value` INT ( 11 ) DEFAULT 0 COMMENT '值',
PRIMARY KEY ( `id` ) 
) ENGINE = INNODB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8;insert into table1 (`create_time`,`value`) VALUES 
        ("2020-10-18 00:00:00",1),
        ("2020-10-19 00:00:00",2),
        ("2020-10-20 00:00:00",60);

操作步骤

  • 新建pannel查询,在dashboard上新建上一篇文章创建好的pannel,编辑sql语句,填入如下sql:

SELECT
  create_time AS "time",  `value` AS `value`FROM table1--  WHERE--  $__timeFilter(create_time)
  • 数据源的查询结果在插件内可以通过data传递给pannel组件,在SimplePanel.tsx文件内添加如下代码,读取查询结果number类型的列的最后一个数据。

const radii = data.series
 .map(series => series.fields.find(field => field.type === 'number'))
 .map(field => field?.values.get(field.values.length - 1));
  • SimplePanel.tsx 组件渲染代码内使用该参数,圆的半径动态的传入

      <svg
        className={styles.svg}
        width={width}
        height={height}
        xmlns="http://www.w3.org/2000/svg"
        xmlnsXlink="http://www.w3.org/1999/xlink"
        viewBox={`-${width / 2} -${height / 2} ${width} ${height}`}
      >
        {/* 修改后代码 */}      <g fill={color}>
        {radii.map((radius, index) => {
          return <circle r={radius} />;
        })}      </g>
        {/* 
        修改前代码        <g>
        <circle style={{ fill: color }} r={100} />
        </g> */}      </svg>

完整代码

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。