前言
在之前文章中,一直讲prometheus的metrics以及apm的指标的重要性,多侧重于收据的收集和存储。如果不对这些数据进行数据分析,那么就没有收集的意义了。通过数据分析和挖掘,让数据产生价值。一直以来我认为devops必须是一个闭环,即apm,日志,监控着三大系统的数据,必须经过分析对dev和ops有价值。
数据可视化是大数据的『最后一公里』,做好可视化是对于数据分析是重要的。
今天,主要介绍redash这款数据分析的利器。
redash简介
redash是一款开源的BI工具,提供了基于web的数据库查询和数据可视化功能。
- 支持 SQL, NoSQL, Big Data and API data等20几种常见的数据源:
基本上满足了大多数的场景。相比
superset,除了上手简单,支持influxdb等时序数据库。这点对于监控数据分析很有优势。
- sql友好的SQL editor,更加高效的编写复杂的sql
随时写,随时查,实时看到查询的效果
-
支持丰富的可视化展示形式
- Boxplot
- Chart - Line, Bar, Area, Pie, Scatter
- Cohort
- Counter
- Funnel
- Map
- Pivot Table
- Sankey
- Sunburst
- Word Cloud
- 角色权限相关,支持ldap等,方便与企业内部的用户体系打通。
安装和简单使用
安装
如果是想直接体验的话,docker-compose部署最简单,redashgithub仓库中直接提供了docker-compose.production.yml文件,直接docker-compose up -d 即可。
# This is an example configuration for Docker Compose. Make sure to atleast update
# the cookie secret & postgres database password.
#
# Some other recommendations:
# 1. To persist Postgres data, assign it a volume host location.
# 2. Split the worker service to adhoc workers and scheduled queries workers.
version: '2'
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: veryverysecret
REDASH_WEB_WORKERS: 4
restart: always
worker:
image: redash/redash:latest
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
restart: always
redis:
image: redis:3.0-alpine
restart: always
postgres:
image: postgres:9.5.6-alpine
# volumes:
# - /opt/postgres-data:/var/lib/postgresql/data
restart: always
nginx:
image: redash/nginx:latest
ports:
- "80:80"
depends_on:
- server
links:
- server:redash
restart: always
通过compose文件可以看出,redash依赖redis和pgsql数据库。redis用来缓存一些查询result,而pgsql是元数据库,目前不支持mysql替换pgsql。
其他安装方式,见官方文档
简单使用
先上一张实际的效果图:
包含了couter和area chart。
数据源包括influxdb时序数据库,和mysql业务库。
其中audit-middware 其实是Query Results库。Query Results Data Source 允许你在一些已经存在的查询结果之上再做一些高级的查询, 这样就可以轻易合并一些查询结果。
总结
在实际使用中,redash和superset各有优劣。根据自己的场景来选择吧。查阅资料的过程中,已经有人对redash做了二次开发,这也许是深度使用的必经之路。
为什么非要使用这种开源BI可视化工具?
因为如果是前后端配合的话,工作量会很大。而且也很难实现随时修改随时上线。不过这取决于前期数据的完整性。