Compare commits
No commits in common. "06c6e4da7ca845ac9ef1bc00b44b62504633aa0c" and "aaa63a4a8d416eb43eeec9144553752316e7ab0d" have entirely different histories.
06c6e4da7c
...
aaa63a4a8d
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
tmp/
|
|
||||||
@ -1,32 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
timescaledb:
|
timescaledb:
|
||||||
image: timescale/timescaledb-ha:pg18
|
image: timescale/timescaledb-ha:pg18
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 5432:5432
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_PASSWORD=postgres
|
- POSTGRES_PASSWORD=postgres
|
||||||
volumes:
|
|
||||||
- ./tmp/data/postgres:/home/postgres/pgdata # TODO : penser à changer sur serveur vs postgres de base !
|
|
||||||
|
|
||||||
grafana:
|
|
||||||
image: grafana/grafana:main-ubuntu
|
|
||||||
ports:
|
|
||||||
- 3000:3000
|
|
||||||
environment:
|
|
||||||
- GF_SECURITY_ADMIN_USER=admin
|
|
||||||
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
||||||
- GF_USERS_ALLOW_SIGN_UP=false
|
|
||||||
# - GF_SERVER_DOMAIN=mesures-{{ client.nom }}.arbi.fr
|
|
||||||
# - GF_SERVER_ROOT_URL=https://mesures-{{ client.nom }}.arbi.fr
|
|
||||||
- TZ=Europe/Paris
|
|
||||||
- GF_DATABASE_TYPE=postgres
|
|
||||||
- GF_DATABASE_HOST=timescaledb:5432
|
|
||||||
- GF_DATABASE_NAME=grafana
|
|
||||||
- GF_DATABASE_USER=postgres
|
|
||||||
- GF_DATABASE_PASSWORD=postgres
|
|
||||||
- GF_DATABASE_SSL_MODE=disable
|
|
||||||
volumes:
|
|
||||||
- ./tmp/data/grafana:/var/lib/grafana
|
|
||||||
depends_on:
|
|
||||||
- timescaledb
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
CREATE TABLE mesure_gauge ( -- TODO ; revoir procédures d'injection des données pour faire la différence entre gauge et compteur
|
CREATE TABLE mesure_gauge ( -- TODO ; revoir précudes d'injection de données pour faire la différence entre gauge et compteur
|
||||||
"date" TIMESTAMPTZ,
|
"date" TIMESTAMPTZ,
|
||||||
id_captation INT NOT NULL,
|
id_captation INT NOT NULL,
|
||||||
valeur float4 NOT NULL
|
valeur float4 NOT NULL
|
||||||
@ -28,7 +28,7 @@ SELECT
|
|||||||
MAX(mg.valeur),
|
MAX(mg.valeur),
|
||||||
MIN(mg.valeur)
|
MIN(mg.valeur)
|
||||||
FROM mesure_gauge mg
|
FROM mesure_gauge mg
|
||||||
GROUP BY 1, 2;
|
GROUP BY id_captation, time_bucket(INTERVAL '1 hour', mg."date");
|
||||||
|
|
||||||
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
||||||
'mesure_gauge_heure',
|
'mesure_gauge_heure',
|
||||||
@ -48,7 +48,7 @@ SELECT
|
|||||||
MAX(mg.max),
|
MAX(mg.max),
|
||||||
MIN(mg.min)
|
MIN(mg.min)
|
||||||
FROM mesure_gauge_heure mg
|
FROM mesure_gauge_heure mg
|
||||||
GROUP BY 1, 2;
|
GROUP BY id_captation, time_bucket(INTERVAL '1 DAY', mg."date");
|
||||||
|
|
||||||
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
||||||
'mesure_gauge_jour',
|
'mesure_gauge_jour',
|
||||||
@ -66,6 +66,6 @@ select
|
|||||||
average(rollup(valeur_temporelle)) AS moyenne -- rollup pour avour le concaténation des valeur_temporelle
|
average(rollup(valeur_temporelle)) AS moyenne -- rollup pour avour le concaténation des valeur_temporelle
|
||||||
from mesure_gauge_heure mgh
|
from mesure_gauge_heure mgh
|
||||||
where mgh.id_captation = 59 -- puissance PAC
|
where mgh.id_captation = 59 -- puissance PAC
|
||||||
group by 1, 2
|
group by mgh.id_captation, time_bucket(INTERVAL '1 DAY', mgh."date")
|
||||||
order by "date" desc
|
order by "date" desc
|
||||||
limit 1000;
|
limit 1000;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
CREATE TABLE mesure_compteur ( -- TODO ; revoir procédures d'injection des données pour faire la différence entre gauge et compteur
|
CREATE TABLE mesure_compteur ( -- TODO ; revoir précudes d'injection de données pour faire la différence entre gauge et compteur
|
||||||
"date" TIMESTAMPTZ,
|
"date" TIMESTAMPTZ,
|
||||||
id_captation INT NOT NULL,
|
id_captation INT NOT NULL,
|
||||||
valeur float4 NOT NULL
|
valeur float4 NOT NULL
|
||||||
@ -26,7 +26,9 @@ SELECT
|
|||||||
time_bucket(INTERVAL '1 hour', mc."date") AS "date",
|
time_bucket(INTERVAL '1 hour', mc."date") AS "date",
|
||||||
counter_agg(mc."date", mc.valeur) AS valeur_temporelle
|
counter_agg(mc."date", mc.valeur) AS valeur_temporelle
|
||||||
FROM mesure_compteur mc
|
FROM mesure_compteur mc
|
||||||
GROUP BY 1, 2;
|
GROUP BY
|
||||||
|
id_captation,
|
||||||
|
time_bucket(INTERVAL '1 hour', mc."date");
|
||||||
|
|
||||||
SELECT add_continuous_aggregate_policy('mesure_compteur_heure', -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
SELECT add_continuous_aggregate_policy('mesure_compteur_heure', -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
||||||
start_offset => INTERVAL '1 month',
|
start_offset => INTERVAL '1 month',
|
||||||
@ -42,7 +44,7 @@ SELECT
|
|||||||
time_bucket(INTERVAL '1 DAY', mg."date") AS "date",
|
time_bucket(INTERVAL '1 DAY', mg."date") AS "date",
|
||||||
rollup(valeur_temporelle) AS valeur_temporelle
|
rollup(valeur_temporelle) AS valeur_temporelle
|
||||||
FROM mesure_compteur_heure mg
|
FROM mesure_compteur_heure mg
|
||||||
GROUP BY 1, 2;
|
GROUP BY id_captation, time_bucket(INTERVAL '1 DAY', mg."date");
|
||||||
|
|
||||||
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
SELECT add_continuous_aggregate_policy( -- On met à jour les données tt les h en relisant les données brutes entre 1 mois et 1 jour
|
||||||
'mesure_compteur_jour',
|
'mesure_compteur_jour',
|
||||||
@ -64,5 +66,5 @@ SELECT
|
|||||||
last_val(rollup(mch.valeur_temporelle)) AS index_fin
|
last_val(rollup(mch.valeur_temporelle)) AS index_fin
|
||||||
FROM mesure_compteur_heure mch
|
FROM mesure_compteur_heure mch
|
||||||
where mch.id_captation = 89 -- HP
|
where mch.id_captation = 89 -- HP
|
||||||
group by 1, 2
|
group by mch.id_captation, time_bucket(INTERVAL '1 DAY', mch."date")
|
||||||
order by "date" desc
|
order by "date" desc
|
||||||
Loading…
Reference in New Issue
Block a user