Configuration avancée de Database Monitoring pour Postgres

Gérer de nombreuses relations

Si votre base de données Postgres comporte un grand nombre de relations (quelques milliers), Datadog recommande d’ajouter le paramètre collect_database_size_metrics: false à votre configuration d’instance pour cette base de données. Si ce paramètre est désactivé, l’Agent n’exécute pas la fonction pg_database_size() permettant de recueillir des statistiques sur la taille de la base de données, car celle-ci est peu performante sur les instances comportant un grand nombre de tables.

instances:
  - dbm: true
    ...
    collect_database_size_metrics: false

En outre, si vous partitionnez vos données sur plusieurs tables et que les définitions des tables sont identiques (à l’exception de leur nom), vous risquez de vous retrouver avec un grand nombre de requêtes normalisées :

SELECT * FROM daily_aggregates_001
SELECT * FROM daily_aggregates_002
SELECT * FROM daily_aggregates_003

Dans ce cas, utilisez l’option replace_digits pour surveiller ces requêtes sous la forme d’une seule requête normalisée. Toutes les métriques associées à ces requêtes seront alors regroupées dans une seule requête :

SELECT * FROM daily_aggregates_?

Ajoutez l’option replace_digits à la configuration de l’instance de votre base de données dans l’Agent Datadog :

instances:
  - dbm: true
    ...
    obfuscator_options:
      replace_digits: true

Augmenter le taux d’échantillonnage

Si certaines requêtes sont relativement peu fréquentes ou s’exécutent rapidement, augmentez le taux d’échantillonnage en réduisant la valeur collection_interval afin de recueillir des échantillons plus fréquemment.

Définissez le paramètre collection_interval dans la configuration de l’instance de votre base de données dans l’Agent Datadog. Ce paramètre est défini sur 1 seconde par défaut. Un exemple est disponible dans le fichier postgres/conf.yaml.example.

Réduisez cette valeur pour obtenir un intervalle plus court :

instances:
  - dbm: true
    ...
    query_samples:
        collection_interval: 0.1