Grafana是指标数据图形化展示工具,可以从多个数据源采集数据并以图表展示。本文介绍如何通过Grafana访问Lindorm中的数据,可以利用Grafana丰富易用的可视化工具更好地监控和分析来自Lindorm的数据。

前提条件

  • 已安装5.x-7.x版本的Grafana,具体操作,请参见下载Grafana
  • 该数据源只适用于TableService结构的时序数据(time-series data)。

安装插件

  1. 进入Grafana插件安装目录。
    cd /var/lib/grafana/plugins/
    说明 如果在Ubuntu系统中,需要在 /var/lib/grafana/plugins/中安装插件。
  2. 执行安装插件命令。
    wget https://github.com/aliyun/aliyun-apsaradb-hbase-demo/raw/master/plugin/grafana-lindorm-datasource/release/grafana-lindorm-datasource.zip
    unzip grafana-lindorm-datasource.zip
  3. 在已部署Grafana的机器中,打开grafana.ini配置文件。
    • MacOS系统的文件路径:/usr/local/etc/grafana/grafana.ini
    • Linux系统的文件路径:/etc/grafana/grafana.ini
  4. grafana.ini配置文件中的plugins项设置allow_loading_unsigned_plugins参数。
    allow_loading_unsigned_plugins = aliyun-lindorm-datasource
  5. 重启Grafana服务。
    service grafana-server restart

配置数据源

  1. 登录Grafana服务。
  2. 在左侧菜单栏,选择shezhi>Data Sources
  3. Data Sources页签,单击Add data source
  4. Add data source页面,单击Alibaba Lindorm对应的Select按钮。
  5. 配置数据源参数,包括通讯地址端口(使用CQL访问地址及端口,如“10.11.12.13:****”),用户名密码keyspace字段可为空。

添加仪表盘

通过Grafana查询数据有两种方式Query Configurator和Query Editor。Query Configurator更易于使用但存在一定的限制,Query Editor需要熟悉CQL语言。

方式一:通过Query Configurator方式查询数据。

Query Configurator是查询数据最简单的方法。先输入keyspacetable name,然后选择columns。如果keyspacetable name为正确,数据源将自动建议columns名称。参数说明如下。

参数名称 说明
Time Column 表示存储timestamp value的Column,用于回答“何时”问题。
Value Column 表示存储需要显示的值的Column,可以是数值、温度或其他属性。
ID Column 唯一标识数据来源的Column,如sensor_id、shop_id或其他数据来源。
说明

全表扫描时需要使用ALLOW FILTERING选项,但是建议避免使用该选项。

方式二:通过Query Editor方式查询数据。

Query Editor是查询数据较强大的方法。需要启用Query Editor,请单击编辑

Query Editor兼容CQL的语法。更多信息,请参见 Lindorm CQL语法介绍
SELECT id, CAST(value as double), created_at FROM test.test WHERE id IN (99051fe9-6a9c-46c2-b949-38ef78858dd1, 99051fe9-6a9c-46c2-b949-38ef78858dd0) AND created_at > $__timeFrom and created_at < $__timeTo
SELECT表达式参数说明如下:
参数名称 说明
id 表达式第一个属性,表示唯一标识数据。
Value 表达式第二个属性,表示需要显示的值。
Timestamp 表示值的时间戳。
说明 通过添加 _timeTo占位符可以实现按时间过滤数据。如果没有添加占位符获取到的数据为整个时间段的。

操作示例

假如想绘制一张包含各地气温随时间变化曲线的图表。Lindorm中的数据如下,包括气温temp,测量时间local_time,城市city和索引id。
create table log.temp
(
    local_time timestamp,
    temp int, 
    id int, 
    city text, 
    primary key ((id))
)
通过Query Editor方式查询,CQL语句如下所示。
SELECT city, CAST(temp as double), local_time FROM log.temp WHERE local_time > $__timeFrom and local_time < $__timeTo  ALLOW FILTERING
查询到的数据如下图所示。 shujuxianshi
Visualization中选择 Graph,并调整时间段,得到的图表如下所示。 tubiaoxianshi