在以前文章中,一直講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可視化工具?由於若是是先後端配合的話,工做量會很大。並且也很難實現隨時修改隨時上線。不過這取決於前期數據的完整性。