本篇文章以 Grafana 展示 Databend 中 Nginx Log。
在 databend 新建 grafana 用户
先连接到 databend
❯ bendsql connect
Connected to Databend on Host: localhost
Version: DatabendQuery v0.9.46-nightly-67b0fe6(rust-1.68.0-nightly-2023-02-22T03:47:09.491571Z)
❯ bendsql query
Connected with driver databend (DatabendQuery v0.9.46-nightly-67b0fe6(rust-1.68.0-nightly-2023-02-22T03:47:09.491571Z))Type "help" for help.
dd:root@localhost/default=>创建用户并赋予权限
CREATE USER grafana IDENTIFIED BY 'grafana_password';
GRANT SELECT ON *.* TO grafana;
安装 grafana 并配置数据源
- 打开 grafana 插件页面,并搜索
Altinity plugin for ClickHouse
安装
- 用刚刚安装的插件新建数据源,并配置接口和用户名密码
- 保存并测试数据源
使用数据源
我们使用一个已经有的 nginx log 表来进行可视化
CREATE TABLE `access_logs` (
`timestamp` TIMESTAMP,
`client` VARCHAR,
`method` VARCHAR,
`path` VARCHAR,
`protocol` VARCHAR,
`status` INT,
`size` INT,
`referer` VARCHAR,
`agent` VARCHAR,
`request` VARCHAR
);
- 新建 dashboard 和 panel,选择刚刚创建的数据源,选择 database 和 table,点击
Go to Query
- 输入可视化查询
SELECT
(to_int64(timestamp) div 1000000 div $interval * $interval) * 1000 as t,
status,
count() as qps
FROM $table
WHERE timestamp >= to_datetime($from)
AND timestamp <= to_datetime($to)GROUP BY t, statusORDER BY t
常用宏参考:
$interval
在 panel 配置Query Options
里选择的 interval
$table
新建 panel 时选择的 database 和 table
$from
在 grafana UI 上选择的时间范围 (单位为 ms)
$to
在 grafana UI 上选择的时间范围 (单位为 ms)
- 查看效果
按上述步骤多添加几个 panel 之后查看整体效果:
Connect With Us
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。