IBM Db2
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

IBM Db2

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Dashboard par défaut

Présentation

Ce check surveille IBM Db2 avec l’Agent Datadog.

Configuration

Installation

Le check IBM Db2 est inclus avec le paquet de l’Agent Datadog.

Dépendances

La bibliothèque client ibm_db est requise. Pour l’installer, veillez à avoir un compilateur en fonctionnement et exécutez :

Unix
/opt/datadog-agent/embedded/bin/pip install ibm_db==3.0.1
Windows

Pour les versions <= 6.11 de l’Agent :

"C:\Program Files\Datadog\Datadog Agent\embedded\Scripts\python.exe" -m pip install ibm_db==3.0.1

Pour les versions >= 6.12 de l’Agent :

"C:\Program Files\Datadog\Datadog Agent\embedded<VERSION_MAJEURE_PYTHON>\Scripts\python.exe" -m pip install ibm_db==3.0.1

Des fonctionnalités XML peuvent être requises sur Linux. Si vous rencontrez des erreurs durant le processus de création, installez libxslt-dev (ou libxslt-devel pour RPM).

Privilèges

Pour interroger les métriques de certains tableaux, des privilèges spécifiques doivent être attribués à l’utilisateur Db2 choisi. Basculez sur l’utilisateur principal de l’instance et exécutez ces commandes dans l’invite db2 :

update dbm cfg using HEALTH_MON on
update dbm cfg using DFT_MON_STMT on
update dbm cfg using DFT_MON_LOCK on
update dbm cfg using DFT_MON_TABLE on
update dbm cfg using DFT_MON_BUFPOOL on

Si vous exécutez désormais get dbm cfg, voici ce qui s’affiche :

 Default database monitor switches
   Buffer pool                         (DFT_MON_BUFPOOL) = ON
   Lock                                   (DFT_MON_LOCK) = ON
   Sort                                   (DFT_MON_SORT) = OFF
   Statement                              (DFT_MON_STMT) = ON
   Table                                 (DFT_MON_TABLE) = ON
   Timestamp                         (DFT_MON_TIMESTAMP) = ON
   Unit of work                            (DFT_MON_UOW) = OFF
 Monitor health of instance and databases   (HEALTH_MON) = ON

Configuration

Host

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

Collecte de métriques
  1. Modifiez le fichier ibm_db2.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance ibm_db2. Consultez le fichier d’exemple ibm_db2.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
  2. Ajoutez ce bloc de configuration à votre fichier ibm_db2.d/conf.yaml pour commencer à recueillir vos logs IBM Db2 :

    logs:
     - type: file
       path: /home/db2inst1/sqllib/db2dump/db2diag.log
       source: ibm_db2
       service: db2sysc
       log_processing_rules:
         - type: multi_line
           name: new_log_start_with_date
           pattern: \d{4}\-(0?[1-9]|[12][0-9]|3[01])\-(0?[1-9]|1[012])
  3. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>ibm_db2
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"db": "<NOM_BASEDEDONNÉES>", "username":"<NOMUTILISATEUR>", "password":"<MOTDEPASSE>", "host":"%%host%%", "port":"%%port%%"}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Docker.

ParamètreValeur
<CONFIG_LOG>`{“source”: “ibm_db2”, “service”: “”, “log_processing_rules”: {“type”:“multi_line”,“name”:“new_log_start_with_date”, “pattern”:”\d{4}-(0?[1-9]

Validation

Lancez la sous-commande status de l’Agent et cherchez ibm_db2 dans la section Checks.

Données collectées

Métriques

ibm_db2.application.active
(gauge)
The number of applications that are currently connected to the database.
Shown as connection
ibm_db2.application.executing
(gauge)
The number of applications for which the database manager is currently processing a request.
Shown as connection
ibm_db2.connection.active
(gauge)
The current number of connections.
Shown as connection
ibm_db2.connection.max
(gauge)
The highest number of simultaneous connections to the database since the database was activated.
Shown as connection
ibm_db2.connection.total
(count)
The total number of connections to the database since the first connect, activate, or last reset (coordinator agents).
Shown as connection
ibm_db2.lock.dead
(count)
The total number of deadlocks that have occurred.
Shown as lock
ibm_db2.lock.waiting
(gauge)
The number of agents waiting on a lock.
Shown as lock
ibm_db2.lock.active
(gauge)
The number of locks currently held.
Shown as lock
ibm_db2.lock.wait
(gauge)
The average wait time for a lock.
Shown as millisecond
ibm_db2.lock.pages
(gauge)
The memory pages (4 KiB each) currently in use by the lock list.
Shown as page
ibm_db2.lock.timeouts
(count)
The number of times that a request to lock an object timed out instead of being granted.
Shown as lock
ibm_db2.backup.latest
(gauge)
The time elapsed since the latest database backup was completed.
Shown as second
ibm_db2.row.modified.total
(count)
The total number of rows inserted, updated, or deleted.
Shown as row
ibm_db2.row.reads.total
(count)
The total number of rows that had to be read in order to return result sets.
Shown as row
ibm_db2.row.returned.total
(count)
The total number of rows that have been selected by and returned to applications.
Shown as row
ibm_db2.bufferpool.column.reads.physical
(count)
The number of column-organized table data pages read from the physical table space containers for temporary, regular, and large table spaces.
Shown as get
ibm_db2.bufferpool.column.reads.logical
(count)
The number of column-organized table data pages read from the logical table space containers for temporary, regular, and large table spaces.
Shown as get
ibm_db2.bufferpool.column.reads.total
(count)
The total number of column-organized table data pages read from the table space containers for temporary, regular, and large table spaces.
Shown as get
ibm_db2.bufferpool.column.hit_percent
(gauge)
The percentage of time that the database manager did not need to load a page from disk to service a column-organized table data page request.
Shown as percent
ibm_db2.bufferpool.data.reads.physical
(count)
The number of data pages read from the physical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.data.reads.logical
(count)
The number of data pages read from the logical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.data.reads.total
(count)
The total number of data pages read from the table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.data.hit_percent
(gauge)
The percentage of time that the database manager did not need to load a page from disk to service a data page request.
Shown as percent
ibm_db2.bufferpool.index.reads.physical
(count)
The number of index pages read from the physical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.index.reads.logical
(count)
The number of index pages read from the logical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.index.reads.total
(count)
The total number of index pages read from the table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.index.hit_percent
(gauge)
The percentage of time that the database manager did not need to load a page from disk to service an index page request.
Shown as percent
ibm_db2.bufferpool.xda.reads.physical
(count)
The number of data pages for XML storage objects (XDAs) read from the physical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.xda.reads.logical
(count)
The number of data pages for XML storage objects (XDAs) read from the logical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.xda.reads.total
(count)
The total number of data pages for XML storage objects (XDAs) read from the table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.xda.hit_percent
(gauge)
The percentage of time that the database manager did not need to load a page from disk to service an index page request.
Shown as percent
ibm_db2.bufferpool.reads.physical
(count)
The number of pages read from the physical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.reads.logical
(count)
The number of pages read from the logical table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.reads.total
(count)
The total number of pages read from the table space containers for temporary, regular and large table spaces.
Shown as get
ibm_db2.bufferpool.hit_percent
(gauge)
The percentage of time that the database manager did not need to load a page from disk to service a page request.
Shown as percent
ibm_db2.bufferpool.group.column.hit_percent
(gauge)
The percentage of time that the group database manager did not need to load a page from disk to service a column-organized table data page request.
Shown as percent
ibm_db2.bufferpool.group.data.hit_percent
(gauge)
The percentage of time that the group database manager did not need to load a page from disk to service a data page request.
Shown as percent
ibm_db2.bufferpool.group.index.hit_percent
(gauge)
The percentage of time that the group database manager did not need to load a page from disk to service an index page request.
Shown as percent
ibm_db2.bufferpool.group.xda.hit_percent
(gauge)
The percentage of time that the group database manager did not need to load a page from disk to service an index page request.
Shown as percent
ibm_db2.bufferpool.group.hit_percent
(gauge)
The percentage of time that the group database manager did not need to load a page from disk to service a page request.
Shown as percent
ibm_db2.tablespace.size
(gauge)
The total size of the table space in bytes.
Shown as byte
ibm_db2.tablespace.usable
(gauge)
The total usable size of the table space in bytes.
Shown as byte
ibm_db2.tablespace.used
(gauge)
The total used size of the table space in bytes.
Shown as byte
ibm_db2.tablespace.utilized
(gauge)
The utilization of the table space as a percentage.
Shown as percent
ibm_db2.log.used
(gauge)
The disk blocks (4 KiB each) of active log space currently used in the database.
Shown as block
ibm_db2.log.available
(gauge)
The disk blocks (4 KiB each) of active log space in the database that is not being used by uncommitted transactions.
Shown as block
ibm_db2.log.utilized
(gauge)
The utilization of active log space as a percentage.
Shown as percent
ibm_db2.log.reads
(count)
The number of log pages read from disk by the logger.
Shown as read
ibm_db2.log.writes
(count)
The number of log pages written to disk by the logger.
Shown as write

Checks de service

ibm_db2.can_connect :
Renvoie CRITICAL si l’Agent n’est pas capable de se connecter à la base de données IBM Db2 qu’il surveille. Si ce n’est pas le cas, renvoie OK.

ibm_db2.status :
Renvoie CRITICAL si la base de données IBM Db2 surveillée est en veille, WARNING pour l’attente de mise en veille ou les restaurations ou renvoie OK pour les autres cas.

Événements

  • ibm_db2.tablespace_state_change se déclenche à chaque changement d’état d’un tablespace.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :