![แแแแแแแแแผแแแแแปแแขแแแแแแแพแแแแถแแแแถแแแแถแ แแแแแแปแ Grafana [+ แแผแแแถแ docker แแถแแฝแแงแแถแ แแแ]](/wp-content/uploads/2019/08/293a4d703ef9e7e69ee414be16217f1d.jpeg)
แแแแแแแแแพแแแถแแแแแแแแถแแแแแ แถแแแแถแแแพแแแพแแแแแปแแขแแแแแแแพแแแแถแแแแ แแแแปแแแแแถแแแแ Promopult แแแแแแแพ Grafana แ
- แแแแถแแแแแแแแถแแฅแแแแทแแแแแแแถแแขแแแแแแแพแแแแถแแแ แแแพแแ แแแแปแแแแแแแ 10 แแแแถแแแแแแแแทแแแแแทแแถแแ แแแฝแแแแแถแแ แปแแแแแแแแ แแแแปแแแแแแแแแแแถแแแพแแแธแแฝแแแถแแ แขแแแแแแแแถแแแฝแแแแแแแแแแถแแแแแแแแแแแแแแถแแนแแแถแขแถแแแแแขแแแแแแแพแแแแถแแแแแแแบแแ แแแแถแแแธแแถแแแผแ แแแแถแ
แแแแถแแแแถแแแแถแแ แปแแแแแแแ แพแ "แแแแแแ" แแถแแแแแ แผแแ แแถแแแแแถแแแแถแแแแแแแ แแถแแแแแแแแถแแแแแแแแฝแแแ แ แพแแ แปแแแแแแแแธแแแธแแแแแแแแแปแแแแแแแแแแแถแแแฝแแแแ แแถแแแแแถแแแแถแแแแถแแแแแแแถแแแแ แแแแแธแแถแ แแแแแถแแ แ แพแแแถแแแแแถแแแแถแแแแแแแแฅแแแทแแแแแ . แ แพแแแถแแถแแถแแแแขแแแแปแแแถแแแแฝแแแถแแแแแถแแแ แแแแแแแแแแธแแแปแแแแแแแแแแแแถแ
แแ แแพแแแแปแแแทแแแแแแแแแแแแผแ แแถแแแแแแพแ แแถแแแทแแถแแขแถแแแแแแทแแทแแถแแแแแขแแแแแแแพแแแแถแแแแแแถแแแ แแทแแแถแแแแแแแ แ แทแแแแแแแถแแแผแ แแบแแแแถแแแแแขแแแธแแถแแแขแแแ แแแปแแแแแแถแแ แถแแแแทแแแแถแแถแ แแทแแแแแพแแถแแแถแแฝแแแแแปแแแแแบแขแถแ แแแแพแแ แแถแ แแทแแ แถแแแถแ แแ แแแแแถแขแแแธแแแแแพแแแแแพแ
แแแแแแ
- แแพแแถแแแทแแถแแแแแปแแแบแแถแขแแแธ แ แพแแ แแแปแขแแแธแแถแแแถแแถแแแแผแแแถแ?
- แแแแแแแแแพแแแแแปแแแถแแแแแแแถแแ แปแแแแแแแขแแแแแแแพแแแแถแแแแ แแแแปแ SQL แ
- แแแแแแแแแแแแแปแแแ .
แแแแแทแแแพแขแแแแแนแแแฝแ แ แพแแแถแแพแแถแแแทแแถแแแแแปแแแบแแถแขแแแธ แแทแแแแแแแแแพแแถแแ แแแแปแ SQL แแผแแแแแแแแแแแแ แแแแแแ แปแแแแแแแ
1. แแพแแถแแแทแแถแแแแแปแแแบแแถแขแแแธ แ แพแแ แแแปแขแแแธแแถแแแถแแถแแแแผแแแถแ?
แแถแแแทแแถแแแถแแแแแปแแแบแแถแแทแแธแแถแแแแแแแแขแแแแพแแถแแแแแแแแแแแแแปแแแแแแแแแแแถ (แแแแปแ) แแแขแแแแแแแพแแแแถแแแ แแถแแ แแแพแแแถแแนแแแถแแ แแแแปแแแแแแแพแแแแแผแแแถแแแแแแพแแกแพแแแแแแแแแถแ แ แฌแแแแแแขแแแแแแแพแแแแถแแแแถแแ แถแแแแแแพแแแแแพแแแแถแแแแแแถแแแแแ แแธแแธแแแ แขแถแแปแแถแแแแแแขแแแแแแแพแแแแถแแแแแแผแแแถแแแแแถ แ แพแแแแแแบแแถแแผแ แแถแแแแฝแแแ แแพแแผแแแแแถแแแแแถแแแทแแถแแแแแแแปแแแแแถแแขแถแ แแแแผแแแถแแขแแปแแแแแ แงแแถแ แแแ แแแแ
- แแพแแถแแแแแถแแแทแแแแแถแแฅแแแแทแแแแแถแแแถแแ แแพแขแถแแปแแถแแแแแแขแแแแแแแพแแแแถแแ;
- แแแแแแแแแถแแแแแพแแแแถแแแแปแแแถแ แฌแแแแถแแแแแแถแแฝแแแแแแถแแแแแแขแถแแปแแธแแทแแ
- แแแแแแแแแถแแแพแแแแแพแแแถแแแปแแแถแ X แแแแแถแแแแแแขแถแแปแแธแแทแแแพแแแแแแแแแแ แแนแแแแแถแแแปแแ
2. แแแแแแแแแพแแแแแปแแแแแปแ SQL?
แแแ แแแแขแแแแแ แแทแแแปแแแทแแทแ แแแแแแทแแขแแปแแแแถแแฑแแแแพแแแแแ แถแแแทแแแแแแแแทแแแแแแแพแแแ แแธแแแแแ - แแ แแแแปแแแถแแแถแแแแแ แแแแทแแทแแแแแถแแแแฝแแแแแถแแแแแแแ แขแแแแแแแพแแแแถแแ 1200 แแถแแ แแทแแแแแแทแแแแแทแแถแแ แแแฝแ 53 แ แแผแ แแแแแขแแแแขแถแ แแแแแถแแฝแแแทแแแแแแแแแ แแพแแแถแแแแแ แแแผแแแถแ docker แแถแแฝแ MySQL แแทแ Grafana แแแแขแแแแขแถแ แแทแแแแแแแถแแแแแแแฝแแฏแแแถแแ แแแแถแแแแ GitHub แแ แ แปแแแแแ แแแแแขแแแแแแ
แ แพแแแ แแธแแแแแพแแแนแแแแแ แถแแแธแแถแแแแแแพแแแแแปแแแแแแแแพแงแแถแ แแแแแถแแแแแ
แงแแแถแแถแแพแแแถแแแแแถแแแแแ แขแแแแแแแพแแแแถแแแ แปแแแแแแแแ แแธแแแ แ แพแแ แแแถแแแแแถแแแแพแแแแถแแแแแ แแผแ แ แแ แขแแแแแแแพแแแแถแแแแแแแแแ แแแ แแพแโแ แแโแแนแโแแถโแแพโแขแแแโแแแแพโแแแแถแแโแแแโแแ โแแถแโแแผแโแแแปแแแแถ แ แพแโแ แแแฝแโแแโแแฝแโแแโแแแแถแแโแ แปแโแแแแแถแแโแแธโแแโแแธ 1 แแทแโแแธ 2 แแโแแถแโแแแแพแแแแถแแโแแแแถแแแแแ
แแพแแแแธแแแแพแแแแแฝแแแถแแแแแ แแพแแแแแผแแแแแแพแแแแแปแแแแขแแแแพแแแแแแถแแ แปแแแแแแแ แแพแแแนแแแถแแแแแแแแแแแแถแแแแแแถแแ แแแถแแแแแปแแแแแธแแฝแแแ แแแแฝแแฑแแแแถแแ แแแถแ แขแถแ แแถแแแถแแแแแแถแแทแ แแแแแแถแ แฌแแแแแแแถแแแแขแแแแพแแแแแแแถแแแแแแแแแ
แแทแแแแแแแแแแผแ
แงแแถแ แแแแแแแผแแแถแแแแแพแกแพแแแ แแแแปแ MySQL แแแปแแแแแแแแแถแแ DBMS แแแแแแแแแแทแแแฝแแแถแแแถแแแปแแแแแถแแแแถแแแแแ
แแถแแถแแขแแแแแแแพแแแแถแแ - แขแแแแแแแพแแแแถแแแ
แแแโแแแแแถแแโแขแแแโแแแแพ
แแถแแแแทแ
แแแแโแ
แปแแแแแแธ
1
2019-01-01
2
2019-02-01
3
2019-02-10
4
2019-03-01
แแถแแถแแแแแแ - แแทแแแแแแแแแ
แแแโแแแแแถแแโแขแแแโแแแแพ
แแถแแแแทแ
แแแแ
แแแแผแ
1
2019-01-02
11
1
2019-02-22
11
2
2019-02-12
12
3
2019-02-11
13
3
2019-03-11
13
4
2019-03-01
14
4
2019-03-02
14
แแแแพแแแพแแแถแแแแแแแถแแ แแทแแแถแแแแทแ แแแแแ แปแแแแแแแแแแแขแแแแแแแพแแแแถแแแแถแแแขแแแ
SELECT
b.userId,
b.Date,
u.RegistrationDate
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
แแแแแแ:
แแแโแแแแแถแแโแขแแแโแแแแพ
แแถแแแแทแ
แแแแ
แแถแแแแทแ
แแแแโแ
แปแแแแแแธ
1
2019-01-02
2019-01-02
1
2019-02-22
2019-01-02
2
2019-02-12
2019-02-01
3
2019-02-11
2019-02-10
3
2019-03-11
2019-02-10
4
2019-03-01
2019-03-01
4
2019-03-02
2019-03-01
แแพแแแแแแพแแแแแปแแแถแแแ แแพแแแแธแแแแพแแถ แแพแแแแแแแแแแถแแแแทแ แแแแแแถแแแขแแแแ แแถแแแ
DATE_FORMAT(Date, '%Y-%m')แฅแกแผแแแแแแพแแแแแผแแแนแแแถแแพแขแแแแแแแพแแแแถแแแแแแแแแแปแแแแถแแแ - แแแแแบแแถแแถแแแปแแแแแถแแแถแแแแแแฅแแแแแ แแทแแแแแแแถแแ แปแแแแแแแ MySQL แแถแแแปแแแถแ PERIOD_DIFF() - แแถแแแปแแแแแถแแแถแแแธแแแแ แแแแแแ PERIOD_DIFF() แแ แแแแปแแแแแพแ
SELECT
b.userId,
DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
แแแโแแแแแถแแโแขแแแโแแแแพ
แแแ
แแแแทแแแแแแแแ
แแถแแแแทแ
แแแแโแ
แปแแแแแแธ
แแแแถแแแปแแแแแถ
1
2019-01
2019-01
0
1
2019-02
2019-01
1
2
2019-02
2019-02
0
3
2019-02
2019-02
0
3
2019-03
2019-02
1
4
2019-03
2019-03
0
4
2019-03
2019-03
0
แแพแแแถแแแ แแแฝแแขแแแแแแแพแแแแถแแแแแแแถแแแแแพแฑแแแแแแแแแแแปแแแแแธแแฝแแ - แแพแแแถแแแแแแแแแแแถแแแ BillingMonth, RegistrationMonth แแทแ MonthsDiffแ
SELECT
COUNT(DISTINCT(b.userId)) AS UsersCount,
DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
GROUP BY BillingMonth, RegistrationMonth, MonthsDiff
แแแแแแ:
แ
แแแฝแแขแแแแแแแพแแแแถแแ
แแแ
แแแแทแแแแแแแแ
แแแ
แปแแแแแแ
แแแแถแแแปแแแแแถ
1
2019-01
2019-01
0
1
2019-02
2019-01
1
2
2019-02
2019-02
0
1
2019-03
2019-02
1
1
2019-03
2019-03
0
แแแแปแแแแแแแถ แแแแปแแแแ แแทแแแแแธแแถ แขแแแแแแแพแแแแถแแแแแแธแแแแถแแแแถแแแแแ แถแแแแแฝแแแแแถแแแ - MonthsDiff = 0. แขแแแแแแแพแแแแถแแแแแแแแถแแแแถแแแแแแแแแแแปแแแแแปแแแแ - RegistrationMonth = 2019-01, BillingMonth = 2019-02 แ แพแแขแแแแแแแพแแแแถแแแแแแปแแแแแแแแถแแแแถแแแแแแแแแแปแแแแแธแแถแ
แแถแแแแแแแถแแท แแแแถแแขแถแ แแพแแแพแแแแแแพแแแถแแแ แแแแปแแแแแปแแแทแแแแแแแแแ
แแแแแแแแแแแแแปแแแ Grafana
แแพแแแถแแแแแแธแแแแแแแแแพแแแแแปแ แแแปแแแแแแ แแแแแแแแถแแแแแแแแแแถแ แแแพแ แแถแแทแแแถแแแแแฝแแแแแปแแแถแแแทแแถแแแฝแแแแแแแแแ แแแแแแแแแถแขแถแ แแแแผแแแถแแแถแแ แแแแ Excel แแทแแแแแแพแแแถแแถแแถแแแแแแแแแแแขแถแ แแแปแแแแแแแแแทแแแแแแถแแทแแธแแถแแแแแแแแแแแพแแแ!
แแแแปแแขแถแ แแแแผแแแถแแแแแ แถแแแถแแแแถแ แแแขแแแแแแแแแแ แแแแปแ .
แแพแแแแธแแแแพแแผแ แแแแแพแแแแแแแแแแแฝแแแฝแแแแแแพแแแแธแแแแแแแแแทแแแแแแแแ แแถแแแแแแแแแแแแแแแแแแแแถแแ Grafanaแ
SELECT
DATE_ADD(CONCAT(s.RegistrationMonth, '-01'), INTERVAL s.MonthsDiff MONTH) AS time_sec,
SUM(s.Users) AS value,
s.RegistrationMonth AS metric
FROM (
## ััะฐััะน ะทะฐะฟัะพั, ะฒะพะทะฒัะฐัะฐััะธะน ะบะพะณะพััั
SELECT
COUNT(DISTINCT(b.userId)) AS Users,
DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
WHERE
u.RegistrationDate BETWEEN '2018-01-01' AND CURRENT_DATE
GROUP BY
BillingMonth, RegistrationMonth, MonthsDiff
) AS s
GROUP BY
time_sec, metric
แ แพแแแแแปแแแทแแแแแแแแ Grafana แ
แงแแถแ แแแแแแแถแ แแแแธ :
![แแแแแแแแแผแแแแแปแแขแแแแแแแพแแแแถแแแแถแแแแถแ แแแแแแปแ Grafana [+ แแผแแแถแ docker แแถแแฝแแงแแถแ แแแ]](/wp-content/uploads/2019/08/9aa161a1d0e8fd7790875d4f12202d56.jpeg)
แแแแแแแแแแแแแขแแแแ
แแบแแถแแผแแแถแ docker แแถแแฝแ MySQL แแทแ Grafana แแแแขแแแแขแถแ แแแแพแแแถแแแพแแปแแแแแผแแแแแแแแขแแแแ แแผแแแแแถแแแทแแแแแแแแถแแแทแแแแแแแแถแแแแแแแแแแถแแแแฝแแแแแถแแแแแแแแฝแ แ แพแ แ แถแแแแธแแแแแแถ แแแแถแ 2018 แแแแแแแแแแแถ แแแแถแ 2019แ
แแแแแทแแแพแขแแแแ แแแแถแ แขแแแแขแถแ แแแแปแแแทแแแแแแแแแแแขแแแแแ แแแแปแแแผแแแถแแแแแ
แขแแแแแ PS แขแแแธแแถแแแทแแถแแแแแปแแแแแปแ SQLแ
แแแแแ: www.habr.com
