Redis

Supported OS Linux Mac OS Windows

Présentation

Que vous utilisiez Redis en tant que base de données, cache ou file d’attente de messages, cette intégration vous permet de suivre les problèmes affectant vos serveurs Redis et les composants de votre infrastructure qu’ils desservent. Le check Redis de l’Agent Datadog recueille des métriques associées aux performances, à l’utilisation de la mémoire, aux clients bloqués, aux connexions esclaves, à la persistance du disque, aux clés expirées et expulsées, et bien plus encore.

Configuration

Installation

Le check Redis est inclus avec le package de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs Redis.

Configuration

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Collecte de métriques
  1. Modifiez le fichier redisdb.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Les paramètres suivants peuvent nécessiter une mise à jour. Consultez le fichier d’exemple redisdb.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    init_config:
    instances:
      ## @param host - string - required
      ## Enter the host to connect to.
      - host: localhost
        ## @param port - integer - required
        ## Enter the port of the host to connect to.
        port: 6379
    
        ## @param username - string - optional
        ## The username to use for the connection. Redis 6+ only.
        #
        # username: <USERNAME>
    
        ## @param password - string - optional
        ## The password to use for the connection.
        #
        # password: <PASSWORD>
    
  2. Si vous utilisez Redis 6+ et des ACL, assurez-vous que l’utilisateur dispose au moins des autorisations DB Viewer au niveau de la base de données, et des autorisations Cluster Viewer en cas d’utilisation d’un environnement de cluster. Pour en savoir plus, consultez la documentation à ce sujet.

  3. 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. Supprimez la mise en commentaire du bloc de configuration suivant en bas de votre fichier redisdb.d/conf.yaml, puis modifiez-le :

    logs:
      - type: file
        path: /var/log/redis_6379.log
        source: redis
        service: myapplication
    

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

  3. Redémarrez l’Agent.

Collecte de traces

L’APM Datadog s’intègre à Redis pour vous permettre de visualiser les traces sur l’ensemble de votre système distribué. La collecte de traces est activée par défaut dans les versions 6 et ultérieures de l’Agent Datadog. Pour commencer à recueillir des traces :

  1. Activez la collecte de trace dans Datadog.
  2. Instrumentez l’application qui envoie des requêtes à Redis.

Docker

Pour configurer ce check lorsque l’Agent est exécuté sur un conteneur :

Collecte de métriques

Définissez les modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :

LABEL "com.datadoghq.ad.check_names"='["redisdb"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"host":"%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}]'

Remarque : la logique de template variable "%%env_<VAR_ENV>%%" est utilisée afin d’éviter de stocker le mot de passe en clair. La variable d’environnement REDIS_PASSWORD doit donc être définie sur le conteneur de l’Agent. Consultez la documentation relative aux template variables Autodiscovery pour plus de détails. L’Agent peut également se servir du package secrets afin d’exploiter n’importe quel backend de gestion des secrets (comme HashiCorp Vault ou AWS Secrets Manager).

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.

Ensuite, définissez les intégrations de logs en tant qu’étiquettes Docker :

LABEL "com.datadoghq.ad.logs"='[{"source":"redis","service":"<NOM_APPLICATION>"}]'
Collecte de traces

L’APM pour applications conteneurisées est pris en charge sur les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour commencer à recueillir des traces.

Variables d’environnement requises sur le conteneur de l’Agent :

ParamètreValeur
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

Consultez la section Tracer des applications Docker pour voir la liste complète des variables d’environnement et configurations disponibles.

Ensuite, instrumentez votre conteneur d’application qui envoie des requêtes à Redis et définissez DD_AGENT_HOST sur le nom du conteneur de votre Agent.

Kubernetes

Pour configurer ce check lorsque l’Agent est exécuté sur Kubernetes :

Collecte de métriques

Définissez les modèles d’intégration Autodiscovery en tant qu’annotations de pod sur votre conteneur d’application. En outre, les modèles peuvent également être configurés via un fichier, une configmap, ou un stockage clé/valeur.

apiVersion: v1
kind: Pod
metadata:
  name: redis
  annotations:
    ad.datadoghq.com/redis.check_names: '["redisdb"]'
    ad.datadoghq.com/redis.init_configs: '[{}]'
    ad.datadoghq.com/redis.instances: |
      [
        {
          "host": "%%host%%",
          "port":"6379",
          "password":"%%env_REDIS_PASSWORD%%"
        }
      ]      
  labels:
    name: redis
spec:
  containers:
    - name: redis
      image: redis:latest
      ports:
        - containerPort: 6379

Remarque : la logique de template variable "%%env_<VAR_ENV>%%" est utilisée afin d’éviter de stocker le mot de passe en clair. La variable d’environnement REDIS_PASSWORD doit donc être définie sur le conteneur de l’Agent. Consultez la documentation relative aux template variables Autodiscovery. L’Agent peut également se servir du package secrets afin d’exploiter n’importe quel backend de gestion des secrets (comme HashiCorp Vault ou AWS Secrets Manager).

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 Kubernetes.

Ensuite, définissez des intégrations de logs en tant qu’annotations de pod. Cette configuration peut également être réalisée avec un fichier, une configmap ou un stockage key/value.

apiVersion: v1
kind: Pod
metadata:
  name: redis
  annotations:
    ad.datadoghq.com/redis.logs: '[{"source":"redis","service":"<NOM_APPLICATION>"}]'
  labels:
    name: redis
spec:
  containers:
    - name: redis
      image: redis:latest
      ports:
        - containerPort: 6379
Collecte de traces

L’APM dédié aux applications conteneurisées est pris en charge par les hosts exécutant les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour recueillir des traces.

Variables d’environnement requises sur le conteneur de l’Agent :

ParamètreValeur
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

Consultez les sections Tracing d’applications Kubernetes et Configuration de DaemonSet Kubernetes pour consulter la liste complète des variables d’environnement et configurations disponibles.

Ensuite, instrumentez l’application qui envoie des requêtes à Redis.

ECS

Pour configurer ce check lorsque l’Agent est exécuté sur ECS :

Collecte de métriques

Définissez les modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :

{
  "containerDefinitions": [{
    "name": "redis",
    "image": "redis:latest",
    "dockerLabels": {
      "com.datadoghq.ad.check_names": "[\"redisdb\"]",
      "com.datadoghq.ad.init_configs": "[{}]",
      "com.datadoghq.ad.instances": "[{\"host\":\"%%host%%\",\"port\":\"6379\",\"password\":\"%%env_REDIS_PASSWORD%%\"}]"
    }
  }]
}

Remarque* : la logique de template variable "%%env_<VAR_ENV>%%" est utilisée afin d’éviter de stocker le mot de passe en clair. La variable d’environnement REDIS_PASSWORD doit donc être définie sur le conteneur de l’Agent. Consultez la documentation relative aux template variables Autodiscovery. L’Agent peut également se servir du package secrets afin d’exploiter n’importe quel backend de gestion des secrets (comme HashiCorp Vault ou AWS Secrets Manager).

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 ECS.

Ensuite, définissez les intégrations de logs en tant qu’étiquettes Docker :

{
  "containerDefinitions": [{
    "name": "redis",
    "image": "redis:latest",
    "dockerLabels": {
      "com.datadoghq.ad.logs": "[{\"source\":\"redis\",\"service\":\"<VOTRE_APPLICATION>\"}]"
    }
  }]
}
Collecte de traces

L’APM pour applications conteneurisées est pris en charge sur les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour commencer à recueillir des traces.

Variables d’environnement requises sur le conteneur de l’Agent :

ParamètreValeur
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

Consultez les sections Tracer des applications Docker pour voir la liste complète des variables d’environnement et configurations disponibles.

Ensuite, instrumentez votre conteneur d’application qui envoie des requêtes à Redis et définissez DD_AGENT_HOST sur l’adresse IP privée EC2.

Validation

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

Données collectées

Métriques

Événements

Le check Redis n’inclut aucun événement.

Checks de service

redis.can_connect :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à Redis pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

redis.replication.master_link_status :
Renvoie CRITICAL si cette instance Redis ne parvient pas à se connecter à son instance principale. Si ce n’est pas le cas, renvoie OK.

Dépannage

Connexion de l’Agent impossible

    redisdb
    -------
      - instance #0 [ERROR]: 'Error 111 connecting to localhost:6379. Connection refused.'
      - Collected 0 metrics, 0 events & 1 service chec

Vérifiez que les informations de connexion dans redisdb.yaml sont correctes.

Authentification de l’Agent impossible

    redisdb
    -------
      - instance #0 [ERROR]: 'NOAUTH Authentication required.'
      - Collected 0 metrics, 0 events & 1 service check

Configurez un password dans redisdb.yaml.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :

PREVIEWING: may/embedded-workflows