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

RethinkDB

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

RethinkDB est une base de données NoSQL orientée documents distribuée, qui exploite tout le potentiel des flux à modification en temps réel.

Ce check permet de surveiller un cluster RethinkDB avec l’Agent Datadog et de recueillir des métriques sur les performance, la disponibilité des données, la configuration d’un cluster, et plus encore.

Remarque : cette intégration est compatible avec RethinkDB version 2.3.6 et versions ultérieures.

Configuration

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

Installation

Le check RethinkDB est inclus avec le paquet de l’Agent Datadog. Vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

  1. Si vous utilisez RethinkDB 2.4+, ajoutez un utilisateur datadog-agent et accordez-lui un accès en lecture seule à la base de données rethinkdb. Les commandes ReQL suivantes peuvent être utilisées. Consultez la page Permissions and user accounts de RethinkDB pour plus de détails.

    r.db('rethinkdb').table('users').insert({'id': 'datadog-agent', 'password': '<PASSWORD>'})
    r.db('rethinkdb').grant('datadog-agent', {'read': True})

    Remarque : si vous utilisez RethinkDB 2.3.x, il n’est pas possible d’accorder un accès à la base de données rethinkdb. Ignorez cette étape et utilisez plutôt votre compte administrateur ci-dessous.

  2. Modifiez le fichier rethinkdb.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple rethinkdb.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    init_config:
    
    instances:
      - host: localhost
        port: 28015
        user: "<USER>"
        password: "<PASSWORD>"
  3. Redémarrez l’Agent.

Remarque : cette intégration recueille des métriques de tous les serveurs dans le cluster ; vous n’avez donc besoin que d’un seul 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 rethinkdb.d/conf.yaml pour commencer à recueillir vos logs RethinkDB :

    logs:
      - type: file
        path: "<LOG_FILE_PATH>"
        source: rethinkdb
        service: "<SERVICE_NAME>"

    Modifiez les valeurs des paramètres path et service en fonction de votre environnement. Consultez le fichier d’exemple rethinkdb.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Consultez la documentation de Datadog pour découvrir comment configurer l’Agent afin de recueillir les logs dans un environnement Kubernetes.

Validation

Lancez la sous-commande status de l’Agent et recherchez rethinkdb dans la section Checks.

Données collectées

Métriques

rethinkdb.config.servers
(gauge)
Number of connected servers in the cluster.
Shown as node
rethinkdb.config.databases
(gauge)
Number of databases in the cluster.
rethinkdb.config.tables_per_database
(gauge)
Number of tables in a given database.
Shown as table
rethinkdb.config.secondary_indexes_per_table
(gauge)
Number of secondary indexes in a given table.
Shown as index
rethinkdb.stats.cluster.query_engine.queries_per_sec
(gauge)
Number of queries executed in a cluster per second.
Shown as query
rethinkdb.stats.cluster.query_engine.read_docs_per_sec
(gauge)
Number of documents read in a cluster per second.
Shown as document
rethinkdb.stats.cluster.query_engine.written_docs_per_sec
(gauge)
Number of documents written in a cluster per second.
Shown as document
rethinkdb.stats.server.query_engine.queries_per_sec
(gauge)
Number of queries executed on a server per second.
Shown as query
rethinkdb.stats.server.query_engine.queries_total
(count)
Total number of queries executed on a server.
Shown as query
rethinkdb.stats.server.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a server per second.
Shown as document
rethinkdb.stats.server.query_engine.read_docs_total
(count)
Total number of documents read from a server.
Shown as document
rethinkdb.stats.server.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a server per second.
Shown as document
rethinkdb.stats.server.query_engine.written_docs_total
(count)
Total number of documents written to a server.
Shown as document
rethinkdb.stats.server.query_engine.client_connections
(gauge)
Current total number of connections to a server.
Shown as connection
rethinkdb.stats.server.query_engine.clients_active
(gauge)
Current number of individual clients connected to a server (a client may hold multiple connections).
Shown as host
rethinkdb.stats.table.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a table per second.
Shown as document
rethinkdb.stats.table.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a table per second.
Shown as document
rethinkdb.stats.table_server.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a replica per second.
Shown as document
rethinkdb.stats.table_server.query_engine.read_docs_total
(count)
Total number of documents read from a replica.
Shown as document
rethinkdb.stats.table_server.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a replica per second.
Shown as document
rethinkdb.stats.table_server.query_engine.written_docs_total
(count)
Total number of documents written to a replica.
Shown as document
rethinkdb.stats.table_server.storage_engine.cache.in_use_bytes
(gauge)
Current amount of memory used by the cache on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.read_bytes_per_sec
(gauge)
Number of bytes read from the disk of a replica per second.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.read_bytes_total
(count)
Total number of bytes read from the disk of a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.written_bytes_per_sec
(gauge)
Number of bytes written to the disk of a replica per second.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.written_bytes_total
(count)
Total number of bytes written to the disk of a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.metadata_bytes
(gauge)
Current disk space used by metadata on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.data_bytes
(gauge)
Current disk space used by data on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.garbage_bytes
(gauge)
Current disk space used by the garbage collector on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.preallocated_bytes
(gauge)
Current disk space preallocated on a replica.
Shown as byte
rethinkdb.table_status.shards
(gauge)
Total number of shards for a table.
Shown as shard
rethinkdb.table_status.shards.replicas
(gauge)
Total number of replicas for a table shard.
Shown as node
rethinkdb.table_status.shards.primary_replicas
(gauge)
Total number of primary replicas for a table shard.
Shown as node
rethinkdb.server_status.network.time_connected
(gauge)
Current total time a server has been connected to the network.
Shown as second
rethinkdb.server_status.network.connected_to
(gauge)
Number of other RethinkDB servers a server is currently connected to.
Shown as node
rethinkdb.server_status.process.time_started
(gauge)
Time when the RethinkDB server process started.
Shown as second
rethinkdb.system_jobs.jobs
(gauge)
Total number of currently running system jobs, tagged by `job_type`.
Shown as job
rethinkdb.current_issues.issues
(gauge)
Total number of current issues of a given issue_type.
rethinkdb.current_issues.critical_issues
(gauge)
Total number of critical current issues of a given issue_type.

Checks de service

  • rethinkdb.can_connect : renvoie CRITICAL si l’Agent ne parvient pas à se connecter au serveur RethinkDB configuré. Si ce n’est pas le cas, renvoie OK.
  • rethinkdb.table_status.status.ready_for_outdated_reads : renvoie OK si toutes les partitions d’une table sont prêtes à accepter des requêtes de lecture obsolètes. Si ce n’est pas le cas, renvoie WARNING.
  • rethinkdb.table_status.status.ready_for_reads : renvoie OK si toutes les partitions d’une table sont prêtes à accepter des requêtes de lecture. Si ce n’est pas le cas, renvoie WARNING.
  • rethinkdb.table_status.status.ready_for_writes : renvoie OK si toutes les partitions d’une table sont prêtes à accepter des requêtes d’écriture. Si ce n’est pas le cas, renvoie WARNING.
  • rethinkdb.table_status.status.all_replicas_ready : renvoie OK si tous les réplicas sont prêts pour des opérations de lecture et d’écriture. Si ce n’est pas le cas, renvoie WARNING (par exemple, si des backfills sont en cours).

Événements

RethinkDB n’inclut aucun événement.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.