暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

简单 4 步,用 MatrixDB 构建你的第一个仪表盘~

yMatrix 2021-09-19
2104


01

简介

什么是 Grafana ?

在时序分析及监控展现领域里,Grafana 无疑是一款将时序数据转换为精美图形和可视化效果的工具,提供分析、警报和查询等功能。Grafana 可以快速灵活创建数据图表,具有丰富的仪表盘插件,支持接入 MatrixDB 等多种不同的数据源,并广泛应用在工业物联网、车联网、交通等领域。

为什么使用 MatrixDB ?

近年来时序数据的需求呈现爆发式的增长,时序数据的分析成为挖掘数据价值的刚需,数据入库和查询延迟对一些场景变得至关重要。同时,时序数据规模开始放大,许多场景设备数和指标数都有了数量级的提升。
时序数据库进入到一个融合数据分析、事务处理、流处理能力的第三代超融合数据库时代,MatrixDB 引领这一方向,在成熟稳定的 MPP 分布式分析型 PostgreSQL 架构之上,为时序场景量身定制存储和优化。

MatrixDB 五大亮点:

1、全球首创超融合时序数据库技术,完美解决大数据 “多样性/ Variety” 的挑战,为数字化业务提供强力的支撑。
2、高吞吐、低延迟、高并发准实时数据加载,支持ACID保证数据严格正确性的前提下,实现海量数据的准实时、低延迟数据采集,并具有极佳的线性扩展能力。支持 RESTfulAPI ,允许上万客户端同时注入数据。
3、完善支持 SQL 标准,包括JSON、窗口函数、数据立方体、递归关联子查询等,一条SQL胜数千行代码,开发效率高,迭代速度快。
4、一键安装、自动告警、在线扩容、增量备份、并行恢复等企业特性完备,运维省心省力
5、内置数据加密技术,支持企业级认证、访问控制和安全审计机制。

简单来说,MatrixDB 就是

高性能!易使用!低成本!

本教程包含如下内容:

  • Grafana 安装

  • Grafana 使用

  • 创建可视化视图

  • 指定 MatrixDB 时序数据源

02

Grafana 

如何安装 Grafana ?

从 Grafana 官网,下载 Grafana 最新版本。

官网链接:https://grafana.com/

    wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.3-1.x86_64.rpm
    sudo yum install grafana-enterprise-8.1.3-1.x86_64.rpm

    安装成功后,启动 Grafana

      sudo systemctl daemon-reload
      sudo systemctl start grafana-server

      03

      Grafana 使用


      Grafana 默认会绑定在3000端口,可以通过浏览器来访问。

      默认账户和密码都是 admin,直接输入即可登录。

      指定数据源

      登录后即可看到 Grafana 主界面。

      在使用 Grafana 进行数据展示之前,首先需要“创建数据源”点击左侧设置选项卡。

      选择 Data sources 选项卡,并点击 Add data source。

      Grafana 支持多种协议,因为 MatrixDB 使用的是 PostgreSQL 协议,所以这里需要选择 PostgreSQL 。

      填写数据库连接信息并保存。

      04

      创建可视化视图

      添加 MatrixDB 为数据源后,下面开始创建可视化视图来展示数据。

      Grafana 的数据展示是由仪表盘和面板组成。仪表盘展示了整个系统的可视化运行状态,是由多个面板所组成,是每个面板展示的一个指标。

      创建新仪表盘

      点击左侧添加按钮,选择 Dashboard ,创建新的仪表盘,进入到 Dashboard 主界面。

      创建时间序列可视化视图

      仪表盘创建好后,下面开始创建仪表盘上的面板。

      现有如下一张时序表,包含时间戳、tagid、指标值3列:
        mxadmin=# \d sensor_data
        Table "public.sensor_data"
        Column | Type | Collation | Nullable | Default
        --------+--------------------------+-----------+----------+---------
        ts | timestamp with time zone | | |
        tagid | integer | | |
        value | real | | |
        Distributed by: (tagid)
        本节演示如何展示 tagid 为1的设备的指标时间序列图

        1. 点击 Add an empty panel 添加一个空面板。

        2. 右边可视化列表里列出了所有可视化效果,选择 Time series。

        3. 编写查询数据的 SQL 语句。有两种方法可以编写 SQL 语句:使用 SQL 生成器或手动编写。

        本节使用 SQL 生成器来编写,在下面的查询生成栏里填写 SQL 的具体信息。

        在面板里会显示出数据曲线,为了让数据看得更清楚,可以在时间过滤条件里选择 Last 5 minutes。

        4. 最后,点击右上角的 Save 按钮,填写 Dashboard name ,完成存档。

        创建饼图可视化视图

        下面,演示添加一个饼图可视化视图,点击上边栏的 Add panel ,再创建一个 Empty panel 。

        这次,在 Visualizations 里选择 Bar chart 。

        如果要展示每个设备的指标在“最近时间区间的平均值”,需要使用手动编写的方式。
        点击 Edit SQL 手动编写 SQL ,并且在 Format as 要选择 Table 。
          SELECT
          '设备'||tagid::text,
          avg(value)
          FROM
          sensor_data
          WHERE
          $__timeFilter(ts)
          GROUP BY tagid
          因为 Bar chart 要显示每个饼图的名称,所以必须要有一个字符串列。

          其中 $__timeFilter(ts) 是 Grafana 提供的时间函数,用来允许用户在界面上选择时间过滤条件。

          写完 SQL 并应用后,就可以在 Dashboard 里看到刚才创建完成的两个 Panel 。

          同时可以在右上角点击刷新,仪表盘的数据会按刷新频率更新。

          05

          指定 MatrixDB 时序数据源

          使用MatrixDB时序组件和函

          前面介绍了如何创建时间序列饼图面板来可视化数据,可以看到 Grafana 强大的数据展示能力。MatrixDB 作为一款超融合时序数据库,提供了时序组件,可以更方便的进行数据统计,使可视化数据更有价值。
          time_bucket

          下面准备使用 MatrixDB 时序组件里提供的 time_bucket 函数来修改前面展示指标值时间序列图,使每个指标点表示的含义为1分钟的平均值。

          在使用时序组件前,首先需要在数据库中创建组:


            mxadmin=# CREATE EXTENSION matrixts;
            CREATE EXTENSION

            点击编写 SQL,并将 SQL 语句做如下改写:

              SELECT
              time_bucket('1 minutes', ts) AS time,
              AVG(value)
              FROM
              sensor_data
              WHERE
              $__timeFilter(ts)
              GROUP BY time

              这样,统计数据中的每个点则为1分钟内的平均值,相比每秒结果都展示出来,数据更加的清晰,更利于分析。除了 time_bucket 外,MatrixDB 的时序组件还提供了许多有用的函数,详细的用法可以从 yMatrix 官方文档里获取。
              窗口函数
              下面演示如何使用 MatrixDB 提供的窗口函数展示数据变化量。在 SQL 编写栏里填写如下 SQL :

                SELECT
                ts AS time,
                (
                CASE WHEN lag(value) OVER (ORDER BY ts) IS NULL THEN NULL
                ELSE value - lag(value) OVER (ORDER BY ts)
                END
                ) AS value
                FROM sensor_data
                WHERE $__timeFilter(ts) AND tagid = 1
                和之前展示的数值不同,这次展示的是变化量,所以会有负值。

                06

                总结
                通过如上演示可以看到,Grafana 支持多种数据来源和不同形式的展示风格,结合 MatrixDB 丰富的时序组件和函数可以非常方便的做可视化数据展示。

                推 荐 阅 读

                yMatrix官方社群诚挚地期待您的加入!
                yMatrix官方技术社群现已正式对外开放,我们诚挚地期待您的加入。在这里,您不仅可以了解到最前沿的创新技术,掌握最In的科技资讯,获取最专业的技术解答,还能够有机会与大咖面对面的互动和交流;您还在等什么?
                扫码添加小M助手
                入群方式超简单,扫描下方二维码

                小M助手为好友即可入群

                扫码添加

                转发,点赞,在看,安排一下?

                文章转载自 yMatrix,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论