vnStat – MySQL regrouper les statistiques

On a vu que vnStat peut produire 3  statistiques pour une interface donnée :

  • le total de données transmises par mois.
  • le total de données transmises par jour.
  • le total de données transmises par heures.

J’ai expliqué comment insérer la statistique horaire dans une table MySQL

Pour les 2 autres, on pourrait faire de même, c’est quand même un peu lourd. On peut aussi les produire par requêtes SQL sur note table et c’est beaucoup plus simple ! Comme je suis un fainéant, je vais faire comme cela.

Donc pour obtenir la statistiques mensuelles sur l’ensemble des données

SELECT IFACE,YEAR(DAY) AS YEAR, MONTH(DAY) AS MONTH, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX)  AS TOTAL, MAX(DMAJ) AS DMAJ
FROM TBHOUR
GROUP BY IFACE,YEAR(DAY), MONTH(DAY)
ORDER BY IFACE,YEAR(DAY) DESC, MONTH(DAY) ASC

Pour une seule interface et un seul mois

SELECT IFACE,YEAR(DAY) AS YEAR, MONTH(DAY) AS MONTH, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ 
FROM TBHOUR 
WHERE IFACE='enp2s0'
AND DAY BETWEEN '2019-01-01' AND '2019-01-31'
GROUP BY IFACE,YEAR(DAY), MONTH(DAY) 
ORDER BY IFACE,YEAR(DAY) DESC, MONTH(DAY) ASC

Donc pour obtenir la statistiques quotidienne sur l’ensemble des données

SELECT IFACE,DAY, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ 
FROM TBHOUR 
GROUP BY IFACE,DAY 
ORDER BY IFACE,DAY DESC

Donc pour obtenir la statistiques quotidienne sur enp2s0 et pour le 15/01/2019 (oui, je sais, ici pas besoin de group by, mais je pense déjà au développement du site web et des facilités que cela m’apportera de l’écrire ainsi).

SELECT IFACE,DAY, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ 
FROM TBHOUR
WHERE IFACE='enp2s0'
AND DAY='2019-01-15'
GROUP BY IFACE,DAY 
ORDER BY IFACE,DAY DESC

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.