Gérer la taille de sa base influxdb

Bonjour,

Je tente de trouver comment on peut surveiller la taille de la base influxdb interne mais j’ai du mal…

Y a t il une méthode pour connaitre sa taille globale déjà, puis lister les tables avec leurs tailles ?

Ensuite je crois avoir compris qu’il faut aller variable par variable gérer leur cycle de rétention et là aussi je découvre…

Bon il doit bien y avoir un tuto qui a déjà expliqué tout ça je pense….

Mais en regardant des tutos je vois que l’on parle de base Telegraf et ausi Influxdb !

Aurais t on 2 bases dans HA ?

Les 2 seraient elles actives et collecteraient les données ?

Bref, oui, là il me manque des bases !

Je croyais que mes données se stockaient dans la bse Influxdb mais je finis par me demander si c’est bien là qu’elle sont stockées…

J’ai bien la base Influxdb déclarée dans ma config HA :

influxdb:
  host: a0d7b954-influxdb
  port: 8086
  database: HADB
  username: !secret influxdb_user
  password: !secret influxdb_password
  max_retries: 3
  default_measurement: state

Si quelqu’un veut prendre un peu de son temps pour me donner quelques explications ou me pointer vers un tuto qui m’éclairerait ?

Bonjour @bemo47

Dans mon sensor.yaml j’ai ajouté ceci il y a fort longtemps mais ce n’ai pas très réaliste, si tu creuses le sujet dis nous :wink:

  - platform: influxdb
    api_version: 1
    host: a0d7b954-influxdb
    port: 8086
    username: !secret influxdb_user
    password: !secret influxdb_password
    queries:
      - name: InfluxDB Database Size
        unit_of_measurement: MB
        value_template: '{{ (value | float / 1024 /1024) | round(1) }}'
        group_function: mean
        measurement: '"monitor"."shard"'
        database: _internal
        where: 'time > now() - 1m AND "database"=''haMassimoDB'''
        field: diskBytes

Bob

Par défaut HA utilise la base SQLite, certains migrent sur MariaDB qui est un fork de MySql.
Si tu as aussi InfluxDB, c’est que tu l’as ajouté, probablement pour faire des graphiques avec Grafana.
Pour la taille de la base SQLite tu as “sensor.home_assistant_v2_db_size”.
Il faut l’intégration “Taille de fichier”, c’est peut être natif, je ne saurais te dire.
EDIT: Telegraf → ça ne me parle pas du tout

Bob

Je me demande si j’ai bien fait de vouloir creuser la question ! je ne récupère que des questions ou des problèmes auxquels je ne comprends pas grand chose….

Mon souci de base était de me préoccuper de la taille des data conservées par HA, donc de sa base de données, et là je découvre que je ne sais finalement pas quelle est cette base de données…

Mon HA fonctionne très bien par ailleurs, installé sur un minipc plutot performant, avec un ssd nvme 1 To, ça pédale, mais peut on juste ne pas s’en préoccuper ?

Sinon oui j’ai ajouté influxdb, mais je ne sais absolument pas à quel stade, j’ai aussi grafana avec qques graphes, êst ce pour grafana que j’ai mis influxdb ?

et quand on mets influxdb les data collectées par HA vont elles toujours dan SQLite et certaines dans influxdb en double ? ou influxdb est il sensé remplacer SQLite ? c’est ce que j’avais cru comprendre…

et Telegraf j’ai vu ça dans un tuto youtube…

dans mon influxdb j’ai aussi deux compsoants Chronograf et Kapacitor mais qui semble s’activer via des plugins, Kapacitor semble donner un tableau de bord sur l’instance Influxdb mais je ciomprends pas comment l’activer

bref, c’est pas clair, c’est le moins que l’on puisse dire…

Si tu configures ton recorder, pas d’inquiétude, exemple pour moi, pour la base SQLite:

recorder:
  auto_purge: true
  purge_keep_days: 7
  exclude:
    entity_globs:
      - sensor.*battery_level*
      - sensor.mpu6050*
      - sensor.freebox*
      - sensor.anniversary*
      - sensor.esp*_wifi*
      - sensor.esp32_ld2410b_salon*move_energy
      - sensor.esp32_ld2410b_salon*still_energy

Et pour InfluxDB, (je mets juste le début) :

influxdb:
  host: a0d7b954-influxdb
  port: 8086
  database: haMassimoDB
  username: !secret influxdb_user
  password: !secret influxdb_password
  max_retries: 3
  default_measurement: state
  exclude:
    entity_globs:
      - sensor.*battery_level*
      - sensor.mpu6050*
      - sensor.freebox*

Bob

mais alors comment se répartissent les stockages dans ces deux base ?

SQLite stockerai toutes les entités ?

Et Influxdb que ce qui est utilisé dans Grafana ?

Ou plutot quel est l’interet de mettre influxdb ? SQLite semble suffisant ?

Influxdb a peut etre plus de possibilités de requetes mais je n’utilise pas, donc ai je interet à garder Influxdb…

Salut,

  • Toutes les données sont mises dans SQLite (en fonction de la config du recorder)
  • Indépendamment, tu envois une partie des données dans InfluxDB.
  • Les cartes etc n’utilisent QUE SQLlite par défaut
  • Tu peux ajouter les graphiques de graphana dans HA.

Donc Graphana (les grpahiques), influxdb (les données) et Chronograf / Kapacitor /Télégraf (qui servent à collecter, filter, traiter les données) font bien doublons avec le fonctionnement natif

Donc oui, tu as des données en double et oui c’est souvent overkill pour les quelques graphiques
Si tu en arrives à ces réflexions maintenant, alors il est sans doute facile de dire que InfluxDB n’est pas absolument indispensable dans ton cas.

1 « J'aime »

Okkkk, ça c’est clair, merci pour cette réponse très intéressante pour moi !

J’ai naivement cru que Influxdb avait remplacé SQLite, et oui je n’ai que quelques graphes, mais graphes que je n’arrivais pas à faire avec d’autres solutions, d’ou Grafana…

Après je peux me poser la question de supprimer ces graphes, ça peut s’envisager

Ou les garder mais dans ce cas seules les entités utilisées dans ces graphes vont etre en doublon SQLlite et Influxdb ? C’est le fait de les utiliser dans Grafana qui active leur stockage en plus dans Influxdb ?

Et j’en reviens à ma question ou préoccupation initiale, comment surveiller la taille de cette base SQLite ?

Et comment limiter son expansion ou maîtriser sa croissance ?

Via ce recorder dans le yaml de la config ? mais il faut y citer toutes les entités que l’on ne veut pas ou toutes celles que l’on veut pour définir leur rétention ? Là aussi faut que je trouve un petit tuto explicatif je crois… Mais sur SQLite et peut etre pas Influxdb…

Ce sujet a été automatiquement fermé après 60 jours. Aucune réponse n’est permise dorénavant.