博客
使用 Grafana + Databend 实现日志可视化
everpcpc3月 3, 2023
本篇文章以 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;
安装 Databend Data Source Plugin
参考教程:与 Grafana 集成安装 Databend Data Source Plugin 插件并创建数据源。
使用数据源
我们使用一个已经有的 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
常用宏参考:
在 panel 配置$interval
里选择的 intervalQuery Options
新建 panel 时选择的 database 和 table$table
在 grafana UI 上选择的时间范围 (单位为 ms)$from
在 grafana UI 上选择的时间范围 (单位为 ms)$to
- 查看效果
按上述步骤多添加几个 panel 之后查看整体效果:
Connect With Us
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
分享本篇文章
订阅我们的新闻简报
及时了解功能发布、产品规划、支持服务和云服务的最新信息!