在以前文章中,一直讲prometheus的metrics以及apm的指标的重要性,多侧重于收据的收集和存储。若是不对这些数据进行数据分析,那么就没有收集的意义了。经过数据分析和挖掘,让数据产生价值。一直以来我认为devops必须是一个闭环,即apm,日志,监控着三大系统的数据,必须通过分析对dev和ops有价值。
数据可视化是大数据的『最后一千米』,作好可视化是对于数据分析是重要的。
今天,主要介绍redash这款数据分析的利器。mysql
redash是一款开源的BI工具,提供了基于web的数据库查询和数据可视化功能。nginx
基本上知足了大多数的场景。相比
superset,除了上手简单,支持influxdb等时序数据库。这点对于监控数据分析颇有优点。git
随时写,随时查,实时看到查询的效果github
支持丰富的可视化展现形式web
若是是想直接体验的话,docker-compose部署最简单,redashgithub仓库中直接提供了docker-compose.production.yml文件,直接docker-compose up -d 便可。redis
# 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。sql
其余安装方式,见官方文档docker
先上一张实际的效果图:数据库
包含了couter和area chart。
数据源包括influxdb时序数据库,和mysql业务库。后端
其中audit-middware 实际上是Query Results库。Query Results Data Source 容许你在一些已经存在的查询结果之上再作一些高级的查询, 这样就能够轻易合并一些查询结果。
在实际使用中,redash和superset各有优劣。根据本身的场景来选择吧。查阅资料的过程当中,已经有人对redash作了二次开发,这也许是深度使用的必经之路。为何非要使用这种开源BI可视化工具?由于若是是先后端配合的话,工做量会很大。并且也很难实现随时修改随时上线。不过这取决于前期数据的完整性。