Monitorez vos instances Redis à l'aide de Docker Compose en déployant le Collector OpenTelemetry en tant que conteneur aux côtés de votre Redis existant.
Avant de commencer
Vous aurez besoin des éléments suivants avant de configurer le collecteur :
- Docker et Docker Compose (v2 ou ultérieure) installés
- Votre New Relic
- Redis en cours d'exécution et accessible — version 6.0 ou ultérieure recommandée (la version 4.0 et ultérieure fonctionne avec un ensemble de métriques réduit)
- HTTPS sortant (port 443) vers le point de terminaison OTLPde New Relic
Choisissez votre distribution de collecteur dans les Options d'installation: le collecteur NRDOT, l'OpenTelemetry Collector Contrib ou le récepteur Prometheus. Le fichier Docker Compose de chaque chemin extrait les images dont il a besoin, y compris le redis_exporter pour le chemin du récepteur Prometheus.
Options d'installation
Créer la configuration du collecteur
Cette configuration indique au collecteur comment collecter les métriques Redis et les envoyer à New Relic. Il gère trois tâches principales :
Collectez les métriques de Redis via le récepteur
redisFaçonnez les données — réduisez la cardinalité, convertissez les compteurs en deltas et taguez-les pour la synthèse d'entité
Exportez les métriques traitées vers New Relic via OTLP
Créez
otel-collector-config.yamldans le répertoire de votre projet :extensions:health_check:endpoint: "0.0.0.0:13133"receivers:redis:endpoint: "redis:6379" # Update with your Redis service name:portcollection_interval: 10smetrics:redis.maxmemory:enabled: trueredis.role:enabled: falseredis.cmd.calls:enabled: trueredis.cmd.usec:enabled: trueredis.clients.max_input_buffer:enabled: falseredis.clients.max_output_buffer:enabled: falseredis.replication.backlog_first_byte_offset:enabled: falseresource_attributes:server.address:enabled: trueserver.port:enabled: trueprocessors:memory_limiter:check_interval: 5slimit_mib: 512spike_limit_mib: 128resource_detection:detectors: [env, system]timeout: 5soverride: falsesystem:resource_attributes:host.name:enabled: truehost.id:enabled: true# Uncomment the section below to use a custom human-readable name for your# Redis entity instead of the default server.address:server.port identifier.# resource/redis:# attributes:# - key: redis.instance.id# value: "my-redis-instance"# action: upsertattributes/entity_tags:actions:- key: instrumentation.providervalue: opentelemetryaction: upsertcumulativetodelta:include:match_type: regexpmetrics:- redis\.commands\.processed- redis\.connections\.received- redis\.connections\.rejected- redis\.keys\.evicted- redis\.keys\.expired- redis\.keyspace\.hits- redis\.keyspace\.misses- redis\.net\.input- redis\.net\.output- redis\.cpu\.time- redis\.cmd\.calls- redis\.cmd\.usec- redis\.uptimefilter/cardinality:metrics:datapoint:- 'metric.name == "redis.cpu.time" and attributes["state"] != "sys" and attributes["state"] != "user"'- 'metric.name == "redis.cmd.calls" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'- 'metric.name == "redis.cmd.usec" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'transform/metadata_nullify:metric_statements:- context: metricstatements:- set(description, "")- set(unit, "")batch:send_batch_size: 2048send_batch_max_size: 4096timeout: 10sexporters:otlp_http:endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT}headers:api-key: ${env:NEW_RELIC_LICENSE_KEY}compression: gzipservice:extensions: [health_check]pipelines:metrics/redis:receivers: [redis]# If using resource/redis for custom name, add it to the processors list:# processors: [memory_limiter, resource_detection, resource/redis, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch]processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch]exporters: [otlp_http]Ce que fait cette configuration
Chaque composant du pipeline a une tâche spécifique :
Composant Description health_checkExpose un point de terminaison de santé sur 0.0.0.0:13133afin que vous puissiez confirmer que le collecteur est en cours d'exécution.redisRécepteurSe connecte à votre point de terminaison Redis toutes les 10 secondes et lit les métriques de la commande Redis INFO.server.addressetserver.portdeviennent l'identité de l'entité.memory_limiterLimite l'utilisation de la mémoire du collecteur (limite souple de 512 Mio, pic de 128 Mio) pour protéger le conteneur. resource_detectionDétecte l'hôte et ajoute host.nameethost.id, liant les métriques Redis à l'entité hôte sous-jacente.attributes/entity_tagsAjoute instrumentation.provider: opentelemetryà chaque métrique afin que vous puissiez limiter les requêtes au chemin OpenTelemetry.cumulativetodeltaConvertit les compteurs cumulatifs de Redis — commandes, succès d'espace clé, évictions, etc. — en valeurs delta afin que New Relic représente correctement les taux. filter/cardinalitySupprime les points de données à forte cardinalité (états du processeur autres que useretsys, et métriques par commande pour les commandes peu communes) afin de contrôler les coûts d'ingestion.transform/metadata_nullifyEfface les descriptions et les unités des métriques pour réduire la taille de la charge. batchRegroupe les points de données avant l’exportation (2 048 par lot, jusqu’à 4 096) et les vide au moins toutes les 10 secondes pour réduire la surcharge du réseau. otlp_httpExporte les métriques traitées vers New Relic via OTLP avec la compression gzip, authentifiées avec votre clé de licence. Conseil
Vous souhaitez un nom d'entité convivial ? Par défaut, votre entité Redis est nommée à l'aide de la combinaison
server.address:server.port. Pour utiliser un nom personnalisé lisible par l'homme à la place, décommentez la sectionresource/redisdans la configuration ci-dessus, définissez votre nom préféré dans la valeurredis.instance.id, et ajoutezresource/redisau pipeline de Processeurs.
Optionnel : configurer l'authentification
Par défaut, le collecteur se connecte à Redis sans identifiants. Si votre instance Redis nécessite une authentification, ajoutez les identifiants correspondants au récepteur redis. Choisissez l’option qui correspond à votre configuration :
Facultatif : collecter les logs Redis
Au-delà des métriques, le collecteur peut transférer le fichier de log de Redis à New Relic afin que vous puissiez corréler les événements de log — redémarrages, événements de persistance ou erreurs — avec les pics de métriques sur la même entité.
Important
Par défaut, Redis dans Docker écrit les logs dans stdout (et non dans un fichier). Pour collecter les logs avec le récepteur filelog, vous devez configurer Redis pour qu’il écrive dans un fichier de log et le partager via un volume Docker entre les conteneurs Redis et du collecteur.
Ajoutez ceci à votre service Redis dans docker-compose.yml:
redis: image: redis:7 command: > sh -c "touch /data/redis.log && chmod 644 /data/redis.log && redis-server --logfile /data/redis.log" volumes: - redis-logs:/dataEt ajoutez le volume partagé à votre service de collecteur :
otel-collector: volumes: - redis-logs:/var/log/redis:roAjoutez ensuite au bas de votre docker-compose.yml:
volumes: redis-logs:Ajoutez le récepteur filelog à votre otel-collector-config.yaml:
receivers: # ... existing redis receiver ... file_log/redis: include: - /var/log/redis/redis.log start_at: end operators: - type: regex_parser regex: '^\d+:[XCSM] \d+ \w+ \d+ \d+:\d+:\d+\.\d+ (?P<level>.) ' on_error: send resource: db.system: redisLes lignes de log du fichier n’ont pas de contexte de connexion Redis en elles-mêmes — vous devez attacher explicitement des attributs d’identité pour que New Relic associe les logs à votre entité Redis. Ajoutez un processeur resource/redis_logs avec des valeurs codées en dur correspondant à l’identité de votre entité Redis:
processors: # ... existing processors ... resource/redis_logs: attributes: - key: server.address value: "redis" # Must match your redis receiver endpoint host action: upsert - key: server.port value: 6379 # Must match your redis receiver endpoint port action: upsert - key: instrumentation.provider value: opentelemetry action: upsertConseil
Vous utilisez un ID d’instance personnalisé ? Si vous avez activé le Processeur resource/redis pour le nommage d’entité personnalisé, remplacez server.address et server.port ci-dessus par votre redis.instance.id:
resource/redis_logs: attributes: - key: redis.instance.id value: "my-redis-instance" # Must match the value in resource/redis action: upsert - key: instrumentation.provider value: opentelemetry action: upsertAjoutez un pipeline de logs distinct à la section Service :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] logs/redis: receivers: [file_log/redis] processors: [memory_limiter, resource/redis_logs, batch] exporters: [otlp_http]Important
Le conteneur du collecteur doit avoir un accès en lecture au fichier de log Redis. Lors du montage du répertoire de log dans votre conteneur, assurez-vous que le fichier est lisible par le processus du collecteur. Sur l'hôte, exécutez :
$sudo chmod 755 /var/log/redis$sudo chmod 644 /var/log/redis/redis.logFacultatif : collecter les métriques de l’hôte
Les performances de Redis suivent souvent la pression sur les ressources de l'hôte — saturation du processeur, épuisement de la mémoire ou contention des I/O disque. Ajoutez le récepteur hostmetrics pour collecter les métriques système aux côtés de Redis afin de pouvoir corréler les deux dans New Relic. Le paramètre root_path: /hostfs est requis lors de l'exécution dans un conteneur Docker afin que le collecteur lise le système de fichiers de l'hôte, et non celui du conteneur :
receivers: # ... existing receivers ... host_metrics: collection_interval: 10s root_path: /hostfs scrapers: cpu: metrics: system.cpu.utilization: {enabled: true} system.cpu.time: {enabled: true} load: metrics: system.cpu.load_average.1m: {enabled: true} system.cpu.load_average.5m: {enabled: true} system.cpu.load_average.15m: {enabled: true} memory: metrics: system.memory.usage: {enabled: true} system.memory.utilization: {enabled: true} disk: metrics: system.disk.io: {enabled: true} system.disk.operations: {enabled: true} filesystem: metrics: system.filesystem.usage: {enabled: true} system.filesystem.utilization: {enabled: true} network: metrics: system.network.io: {enabled: true} system.network.packets: {enabled: true}Ajoutez un pipeline metrics/host séparé pour les métriques d'hôte (n'ajoutez pas host_metrics au pipeline Redis) :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] metrics/host: receivers: [host_metrics] processors: [memory_limiter, resource_detection, attributes/entity_tags, batch] exporters: [otlp_http]Facultatif : ajouter des métadonnées personnalisées
Les attributs de ressource personnalisés ajoutent un tag à chaque métrique Redis avec un contexte — environnement, équipe ou niveau — afin que vous puissiez filtrer et regrouper vos données dans New Relic. Ajoutez un Processeur resource/custom avec les tags que vous souhaitez :
processors: # ... existing processors ... resource/custom: attributes: - key: environment value: "production" action: upsert - key: team value: "platform" action: upsertIncluez le processeur dans votre pipeline :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, resource/custom, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http]Facultatif : activer le monitoring du Cluster Redis
Le monitoring du Cluster Redis nécessite actuellement l'approche du récepteur Prometheus (à l'aide de redis_exporter). Le Récepteur Redis natif du Collector NRDOT ne prend pas encore en charge la commande CLUSTER INFO nécessaire pour les métriques du cluster. Utilisez l'onglet Récepteur Prometheus pour la configuration du monitoring de cluster.
Créer le fichier Docker Compose
Créez docker-compose.yml pour exécuter le collecteur aux côtés de votre Redis existant. Le fichier .env dans le même répertoire est automatiquement chargé par Docker Compose :
services: otel-collector: image: newrelic/nrdot-collector:latest env_file: .env volumes: - ./otel-collector-config.yaml:/etc/otel/config.yaml:ro - /etc/machine-id:/etc/machine-id:ro # Uncomment if collecting Redis logs (requires shared volume — see logs step above): # - redis-logs:/var/log/redis:ro # Uncomment if collecting host metrics: # - /:/hostfs:ro # Uncomment if using TLS: # - ./certs:/etc/ssl/redis:ro environment: - NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY} - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT} # Uncomment if collecting host metrics: # - HOST_PROC=/hostfs/proc # - HOST_SYS=/hostfs/sys # - HOST_ETC=/hostfs/etc # Uncomment if using Redis authentication: # - REDIS_PASSWORD=${REDIS_PASSWORD} # - REDIS_USERNAME=${REDIS_USERNAME} command: ["--config=/etc/otel/config.yaml"] ports: - "13133:13133" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:13133"] interval: 10s timeout: 5s retries: 3
# Uncomment if collecting Redis logs:# volumes:# redis-logs:Conseil
Si vous avez activé des fonctionnalités facultatives (logs, métriques d'hôte, TLS ou authentification) lors des étapes précédentes, décommentez les lignes correspondantes dans le fichier Docker Compose ci-dessus.
Créer le fichier d'environnement
Docker Compose lit les valeurs spécifiques au déploiement à partir d'un fichier .env dans le même répertoire que votre docker-compose.yml, ce qui garde votre clé de licence hors du fichier compose. Créez le fichier .env :
$NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY$OTEL_EXPORTER_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT$# Set the New Relic OTLP endpoint for your region.$# See https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlpRemplacez les espaces réservés par vos propres valeurs :
| Variable | Requis | Description |
|---|---|---|
NEW_RELIC_LICENSE_KEY | Oui | Votre clé de licence d'ingestion New Relic. |
OTEL_EXPORTER_OTLP_ENDPOINT | Oui | Point de terminaison OTLP New Relic pour votre région. Pour plus d'informations, consultez le point de terminaison OTLP New Relic. |
Démarrer et vérifier
Démarrer le collecteur en arrière-plan :
$docker compose up -dConfirmez que les conteneurs s'exécutent avec docker compose ps — le collecteur devrait afficher un état running. S'il s'est arrêté, vérifiez ses logs avec docker compose logs otel-collector — les causes les plus courantes sont des erreurs d'indentation YAML et un point de terminaison Redis inaccessible.
Confirmez ensuite que vos métriques parviennent à New Relic. Attendez environ une minute après le démarrage, puis exécutez cette requête dans le générateur de requêtes:
SELECT count(*) FROM Metric WHERE metricName LIKE 'redis.%' AND instrumentation.provider = 'opentelemetry' SINCE 5 minutes agoUn nombre non nul confirme que les métriques Redis circulent. S'il renvoie 0, consultez Dépanner Redis (OpenTelemetry).
Créer la configuration du collecteur
Cette configuration indique au collecteur comment collecter les métriques Redis et les envoyer à New Relic. Il gère trois tâches principales :
Collectez les métriques de Redis via le récepteur
redisFaçonnez les données — réduisez la cardinalité, convertissez les compteurs en deltas et taguez-les pour la synthèse d'entité
Exportez les métriques traitées vers New Relic via OTLP
Créez
otel-collector-config.yamldans le répertoire de votre projet :extensions:health_check:endpoint: "0.0.0.0:13133"receivers:redis:endpoint: "redis:6379" # Update with your Redis service name:portcollection_interval: 10smetrics:redis.maxmemory:enabled: trueredis.role:enabled: falseredis.cmd.calls:enabled: trueredis.cmd.usec:enabled: trueredis.clients.max_input_buffer:enabled: falseredis.clients.max_output_buffer:enabled: falseredis.replication.backlog_first_byte_offset:enabled: falseresource_attributes:server.address:enabled: trueserver.port:enabled: trueprocessors:memory_limiter:check_interval: 5slimit_mib: 512spike_limit_mib: 128resource_detection:detectors: [env, system]timeout: 5soverride: falsesystem:resource_attributes:host.name:enabled: truehost.id:enabled: true# Uncomment the section below to use a custom human-readable name for your# Redis entity instead of the default server.address:server.port identifier.# resource/redis:# attributes:# - key: redis.instance.id# value: "my-redis-instance"# action: upsertattributes/entity_tags:actions:- key: instrumentation.providervalue: opentelemetryaction: upsertcumulativetodelta:include:match_type: regexpmetrics:- redis\.commands\.processed- redis\.connections\.received- redis\.connections\.rejected- redis\.keys\.evicted- redis\.keys\.expired- redis\.keyspace\.hits- redis\.keyspace\.misses- redis\.net\.input- redis\.net\.output- redis\.cpu\.time- redis\.cmd\.calls- redis\.cmd\.usec- redis\.uptimefilter/cardinality:metrics:datapoint:- 'metric.name == "redis.cpu.time" and attributes["state"] != "sys" and attributes["state"] != "user"'- 'metric.name == "redis.cmd.calls" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'- 'metric.name == "redis.cmd.usec" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'transform/metadata_nullify:metric_statements:- context: metricstatements:- set(description, "")- set(unit, "")batch:send_batch_size: 2048send_batch_max_size: 4096timeout: 10sexporters:otlp_http:endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT}headers:api-key: ${env:NEW_RELIC_LICENSE_KEY}compression: gzipservice:extensions: [health_check]pipelines:metrics/redis:receivers: [redis]# If using resource/redis for custom name, add it to the processors list:# processors: [memory_limiter, resource_detection, resource/redis, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch]processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch]exporters: [otlp_http]Ce que fait cette configuration
Chaque composant du pipeline a une tâche spécifique :
Composant Description health_checkExpose un point de terminaison de santé sur 0.0.0.0:13133afin que vous puissiez confirmer que le collecteur est en cours d'exécution.redisRécepteurSe connecte à votre point de terminaison Redis toutes les 10 secondes et lit les métriques de la commande Redis INFO.server.addressetserver.portdeviennent l'identité de l'entité.memory_limiterLimite l'utilisation de la mémoire du collecteur (limite souple de 512 Mio, pic de 128 Mio) pour protéger le conteneur. resource_detectionDétecte l'hôte et ajoute host.nameethost.id, liant les métriques Redis à l'entité hôte sous-jacente.attributes/entity_tagsAjoute instrumentation.provider: opentelemetryà chaque métrique afin que vous puissiez limiter les requêtes au chemin OpenTelemetry.cumulativetodeltaConvertit les compteurs cumulatifs de Redis — commandes, succès d'espace clé, évictions, etc. — en valeurs delta afin que New Relic représente correctement les taux. filter/cardinalitySupprime les points de données à forte cardinalité (états du processeur autres que useretsys, et métriques par commande pour les commandes peu communes) afin de contrôler les coûts d'ingestion.transform/metadata_nullifyEfface les descriptions et les unités des métriques pour réduire la taille de la charge. batchRegroupe les points de données avant l’exportation (2 048 par lot, jusqu’à 4 096) et les vide au moins toutes les 10 secondes pour réduire la surcharge du réseau. otlp_httpExporte les métriques traitées vers New Relic via OTLP avec la compression gzip, authentifiées avec votre clé de licence. Conseil
Vous souhaitez un nom d'entité convivial ? Par défaut, votre entité Redis est nommée à l'aide de la combinaison
server.address:server.port. Pour utiliser un nom personnalisé lisible par l'homme à la place, décommentez la sectionresource/redisdans la configuration ci-dessus, définissez votre nom préféré dans la valeurredis.instance.id, et ajoutezresource/redisau pipeline de Processeurs.
Optionnel : configurer l'authentification
Par défaut, le collecteur se connecte à Redis sans identifiants. Si votre instance Redis nécessite une authentification, ajoutez les identifiants correspondants au récepteur redis. Choisissez l’option qui correspond à votre configuration :
Facultatif : collecter les logs Redis
Au-delà des métriques, le collecteur peut transférer le fichier de log de Redis à New Relic afin que vous puissiez corréler les événements de log — redémarrages, événements de persistance ou erreurs — avec les pics de métriques sur la même entité.
Important
Par défaut, Redis dans Docker écrit les logs dans stdout (et non dans un fichier). Pour collecter les logs avec le récepteur filelog, vous devez configurer Redis pour qu’il écrive dans un fichier de log et le partager via un volume Docker entre les conteneurs Redis et du collecteur.
Ajoutez ceci à votre service Redis dans docker-compose.yml:
redis: image: redis:7 command: > sh -c "touch /data/redis.log && chmod 644 /data/redis.log && redis-server --logfile /data/redis.log" volumes: - redis-logs:/dataEt ajoutez le volume partagé à votre service de collecteur :
otel-collector: volumes: - redis-logs:/var/log/redis:roAjoutez ensuite au bas de votre docker-compose.yml:
volumes: redis-logs:Ajoutez le récepteur filelog à votre otel-collector-config.yaml:
receivers: # ... existing redis receiver ... file_log/redis: include: - /var/log/redis/redis.log start_at: end operators: - type: regex_parser regex: '^\d+:[XCSM] \d+ \w+ \d+ \d+:\d+:\d+\.\d+ (?P<level>.) ' on_error: send resource: db.system: redisLes lignes de log du fichier n’ont pas de contexte de connexion Redis en elles-mêmes — vous devez attacher explicitement des attributs d’identité pour que New Relic associe les logs à votre entité Redis. Ajoutez un processeur resource/redis_logs avec des valeurs codées en dur correspondant à l’identité de votre entité Redis:
processors: # ... existing processors ... resource/redis_logs: attributes: - key: server.address value: "redis" # Must match your redis receiver endpoint host action: upsert - key: server.port value: 6379 # Must match your redis receiver endpoint port action: upsert - key: instrumentation.provider value: opentelemetry action: upsertConseil
Vous utilisez un ID d’instance personnalisé ? Si vous avez activé le Processeur resource/redis pour le nommage d’entité personnalisé, remplacez server.address et server.port ci-dessus par votre redis.instance.id:
resource/redis_logs: attributes: - key: redis.instance.id value: "my-redis-instance" # Must match the value in resource/redis action: upsert - key: instrumentation.provider value: opentelemetry action: upsertAjoutez un pipeline de logs distinct à la section Service :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] logs/redis: receivers: [file_log/redis] processors: [memory_limiter, resource/redis_logs, batch] exporters: [otlp_http]Important
Le conteneur du collecteur doit avoir un accès en lecture au fichier de log Redis. Lors du montage du répertoire de log dans votre conteneur, assurez-vous que le fichier est lisible par le processus du collecteur. Sur l'hôte, exécutez :
$sudo chmod 755 /var/log/redis$sudo chmod 644 /var/log/redis/redis.logFacultatif : collecter les métriques de l’hôte
Les performances de Redis suivent souvent la pression sur les ressources de l'hôte — saturation du processeur, épuisement de la mémoire ou contention des I/O disque. Ajoutez le récepteur hostmetrics pour collecter les métriques système aux côtés de Redis afin de pouvoir corréler les deux dans New Relic. Le paramètre root_path: /hostfs est requis lors de l'exécution dans un conteneur Docker afin que le collecteur lise le système de fichiers de l'hôte, et non celui du conteneur :
receivers: # ... existing receivers ... host_metrics: collection_interval: 10s root_path: /hostfs scrapers: cpu: metrics: system.cpu.utilization: {enabled: true} system.cpu.time: {enabled: true} load: metrics: system.cpu.load_average.1m: {enabled: true} system.cpu.load_average.5m: {enabled: true} system.cpu.load_average.15m: {enabled: true} memory: metrics: system.memory.usage: {enabled: true} system.memory.utilization: {enabled: true} disk: metrics: system.disk.io: {enabled: true} system.disk.operations: {enabled: true} filesystem: metrics: system.filesystem.usage: {enabled: true} system.filesystem.utilization: {enabled: true} network: metrics: system.network.io: {enabled: true} system.network.packets: {enabled: true}Ajoutez un pipeline metrics/host séparé pour les métriques d'hôte (n'ajoutez pas host_metrics au pipeline Redis) :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] metrics/host: receivers: [host_metrics] processors: [memory_limiter, resource_detection, attributes/entity_tags, batch] exporters: [otlp_http]Facultatif : ajouter des métadonnées personnalisées
Les attributs de ressource personnalisés ajoutent un tag à chaque métrique Redis avec un contexte — environnement, équipe ou niveau — afin que vous puissiez filtrer et regrouper vos données dans New Relic. Ajoutez un Processeur resource/custom avec les tags que vous souhaitez :
processors: # ... existing processors ... resource/custom: attributes: - key: environment value: "production" action: upsert - key: team value: "platform" action: upsertIncluez le processeur dans votre pipeline :
service: pipelines: metrics/redis: receivers: [redis] processors: [memory_limiter, resource_detection, resource/custom, attributes/entity_tags, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http]Facultatif : activer le monitoring du Cluster Redis
Le monitoring de Cluster Redis nécessite actuellement l'approche du récepteur Prometheus (en utilisant redis_exporter). Le récepteur Redis natif du Collecteur Otel Contrib ne prend pas encore en charge la commande CLUSTER INFO nécessaire pour les métriques de cluster. Utilisez l'onglet Récepteur Prometheus pour la configuration du monitoring de cluster.
Créer le fichier Docker Compose
Créez docker-compose.yml pour exécuter le collecteur aux côtés de votre Redis existant. Le fichier .env dans le même répertoire est automatiquement chargé par Docker Compose :
services: otel-collector: image: otel/opentelemetry-collector-contrib:latest env_file: .env volumes: - ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml:ro - /etc/machine-id:/etc/machine-id:ro # Uncomment if collecting Redis logs (requires shared volume — see logs step above): # - redis-logs:/var/log/redis:ro # Uncomment if collecting host metrics: # - /:/hostfs:ro # Uncomment if using TLS: # - ./certs:/etc/ssl/redis:ro environment: - NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY} - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT} # Uncomment if collecting host metrics: # - HOST_PROC=/hostfs/proc # - HOST_SYS=/hostfs/sys # - HOST_ETC=/hostfs/etc # Uncomment if using Redis authentication: # - REDIS_PASSWORD=${REDIS_PASSWORD} # - REDIS_USERNAME=${REDIS_USERNAME} command: ["--config=/etc/otelcol-contrib/config.yaml"] ports: - "13133:13133" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:13133"] interval: 10s timeout: 5s retries: 3
# Uncomment if collecting Redis logs:# volumes:# redis-logs:Conseil
Si vous avez activé des fonctionnalités facultatives (logs, métriques d'hôte, TLS ou authentification) lors des étapes précédentes, décommentez les lignes correspondantes dans le fichier Docker Compose ci-dessus.
Créer le fichier d'environnement
Docker Compose lit les valeurs spécifiques au déploiement à partir d'un fichier .env dans le même répertoire que votre docker-compose.yml, ce qui garde votre clé de licence hors du fichier compose. Créez le fichier .env :
$NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY$OTEL_EXPORTER_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT$# Set the New Relic OTLP endpoint for your region.$# See https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlpRemplacez les espaces réservés par vos propres valeurs :
| Variable | Requis | Description |
|---|---|---|
NEW_RELIC_LICENSE_KEY | Oui | Votre clé de licence d'ingestion New Relic. |
OTEL_EXPORTER_OTLP_ENDPOINT | Oui | Point de terminaison OTLP New Relic pour votre région. Pour plus d'informations, consultez le point de terminaison OTLP New Relic. |
Démarrer et vérifier
Démarrer le collecteur en arrière-plan :
$docker compose up -dConfirmez que les conteneurs s'exécutent avec docker compose ps — le collecteur devrait afficher un état running. S'il s'est arrêté, vérifiez ses logs avec docker compose logs otel-collector — les causes les plus courantes sont des erreurs d'indentation YAML et un point de terminaison Redis inaccessible.
Confirmez ensuite que vos métriques parviennent à New Relic. Attendez environ une minute après le démarrage, puis exécutez cette requête dans le générateur de requêtes:
SELECT count(*) FROM Metric WHERE metricName LIKE 'redis.%' AND instrumentation.provider = 'opentelemetry' SINCE 5 minutes agoUn nombre non nul confirme que les métriques Redis circulent. S'il renvoie 0, consultez Dépanner Redis (OpenTelemetry).
Créer la configuration du collecteur
Cette configuration récupère les métriques de redis_exporter et les envoie à New Relic. Elle gère ces tâches principales :
Scrapez le point de terminaison Prometheus
redis_exportervia le RécepteurprometheusRenommer les métriques Prometheus avec les noms de métrique Redis de New Relic
Façonnez les données — réduisez la cardinalité, convertissez les compteurs en deltas et taguez-les pour la synthèse d'entité
Exportez les métriques traitées vers New Relic via OTLP
Créez
otel-collector-config.yamldans le répertoire de votre projet :extensions:health_check:endpoint: "0.0.0.0:13133"receivers:prometheus:config:scrape_configs:- job_name: 'redis'scrape_interval: 10sstatic_configs:- targets: ['redis-exporter:9121'] # Update with your Redis exporter host:portmetric_relabel_configs:- source_labels: [__name__]regex: '(go_|process_|promhttp_|redis_exporter_).*'action: dropprocessors:memory_limiter:check_interval: 5slimit_mib: 512spike_limit_mib: 128resource_detection:detectors: [env, system]timeout: 5soverride: falsesystem:resource_attributes:host.name:enabled: truehost.id:enabled: true# Required: Set a unique identifier for your Redis entity.# The Prometheus receiver does not provide server.address/server.port,# so redis.instance.id is required for entity creation in New Relic.resource/redis_identity:attributes:- key: redis.instance.idvalue: "my-redis-instance:6379" # Update with a unique name for this Redis instanceaction: upsertattributes/entity_tags:actions:- key: instrumentation.providervalue: opentelemetryaction: upsertmetricstransform:transforms:- include: redis_uptime_in_secondsaction: updatenew_name: redis.uptime- include: redis_connected_clientsaction: updatenew_name: redis.clients.connected- include: redis_blocked_clientsaction: updatenew_name: redis.clients.blocked- include: redis_memory_used_bytesaction: updatenew_name: redis.memory.used- include: redis_memory_max_bytesaction: updatenew_name: redis.maxmemory- include: redis_mem_fragmentation_ratioaction: updatenew_name: redis.memory.fragmentation_ratio- include: redis_memory_used_rss_bytesaction: updatenew_name: redis.memory.rss- include: redis_memory_used_peak_bytesaction: updatenew_name: redis.memory.peak- include: redis_memory_used_lua_bytesaction: updatenew_name: redis.memory.lua- include: redis_connections_received_totalaction: updatenew_name: redis.connections.received- include: redis_rejected_connections_totalaction: updatenew_name: redis.connections.rejected- include: redis_commands_processed_totalaction: updatenew_name: redis.commands.processed- include: redis_keyspace_hits_totalaction: updatenew_name: redis.keyspace.hits- include: redis_keyspace_misses_totalaction: updatenew_name: redis.keyspace.misses- include: redis_evicted_keys_totalaction: updatenew_name: redis.keys.evicted- include: redis_expired_keys_totalaction: updatenew_name: redis.keys.expired- include: redis_net_input_bytes_totalaction: updatenew_name: redis.net.input- include: redis_net_output_bytes_totalaction: updatenew_name: redis.net.output- include: redis_connected_slavesaction: updatenew_name: redis.slaves.connected- include: redis_db_keysaction: updatenew_name: redis.db.keys- include: redis_db_keys_expiringaction: updatenew_name: redis.db.expires- include: redis_rdb_changes_since_last_saveaction: updatenew_name: redis.rdb.changes_since_last_save- include: redis_db_avg_ttl_secondsaction: updatenew_name: redis.db.avg_ttl- include: redis_latest_fork_secondsaction: updatenew_name: redis.latest_fork- include: redis_master_repl_offsetaction: updatenew_name: redis.replication.offset- include: redis_repl_backlog_first_byte_offsetaction: updatenew_name: redis.replication.backlog_first_byte_offset- include: redis_commands_totalaction: updatenew_name: redis.cmd.calls- include: redis_commands_duration_seconds_totalaction: updatenew_name: redis.cmd.usec- include: redis_cpu_sys_seconds_totalaction: updatenew_name: redis.cpu.timeoperations:- action: add_labelnew_label: statenew_value: sys- include: redis_cpu_user_seconds_totalaction: updatenew_name: redis.cpu.timeoperations:- action: add_labelnew_label: statenew_value: usercumulativetodelta:include:match_type: regexpmetrics:- redis\.commands\.processed- redis\.connections\.received- redis\.connections\.rejected- redis\.keys\.evicted- redis\.keys\.expired- redis\.keyspace\.hits- redis\.keyspace\.misses- redis\.net\.input- redis\.net\.output- redis\.cpu\.time- redis\.cmd\.calls- redis\.cmd\.usec- redis\.uptimefilter/cardinality:metrics:datapoint:- 'metric.name == "redis.cpu.time" and attributes["state"] != "sys" and attributes["state"] != "user"'- 'metric.name == "redis.cmd.calls" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'- 'metric.name == "redis.cmd.usec" and attributes["cmd"] != "get" and attributes["cmd"] != "set" and attributes["cmd"] != "del" and attributes["cmd"] != "hget" and attributes["cmd"] != "hset" and attributes["cmd"] != "hgetall" and attributes["cmd"] != "lpush" and attributes["cmd"] != "rpop" and attributes["cmd"] != "zadd" and attributes["cmd"] != "expire"'transform/metadata_nullify:metric_statements:- context: metricstatements:- set(description, "")- set(unit, "")batch:send_batch_size: 2048send_batch_max_size: 4096timeout: 10sexporters:otlp_http:endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT}headers:api-key: ${env:NEW_RELIC_LICENSE_KEY}compression: gzipservice:extensions: [health_check]pipelines:metrics/redis:receivers: [prometheus]processors: [memory_limiter, resource_detection, resource/redis_identity, attributes/entity_tags, metricstransform, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch]exporters: [otlp_http]Ce que fait cette configuration
Chaque composant du pipeline a une tâche spécifique :
Composant Description health_checkExpose un point de terminaison de santé sur 0.0.0.0:13133afin que vous puissiez confirmer que le collecteur est en cours d'exécution.prometheusRécepteurRécupère le point de terminaison redis_exporter(par défautredis-exporter:9121) toutes les 10 secondes et supprime les propres métriquesgo_*,process_*,promhttp_*etredis_exporter_*de l'exportateur.memory_limiterLimite l'utilisation de la mémoire du collecteur (limite souple de 512 Mio, pic de 128 Mio) pour protéger le conteneur. resource_detectionDétecte l'hôte et ajoute host.nameethost.id, liant les métriques Redis à l'entité hôte sous-jacente.resource/redis_identityDéfinit redis.instance.id, qui identifie l'entité Redis dans New Relic. C'est requis ici car le récepteur Prometheus ne fournit passerver.addressniserver.port.attributes/entity_tagsAjoute instrumentation.provider: opentelemetryà chaque métrique afin que vous puissiez limiter les requêtes au chemin OpenTelemetry.metricstransformRenomme les métriques Prometheus de l'exportateur (par exemple, redis_uptime_in_seconds) avec les noms Redis de New Relic (redis.uptime) et ajoute l'étiquettestateaux métriques de processeur.cumulativetodeltaConvertit les compteurs cumulatifs — commandes, succès d’espace clé, évictions, etc. — en valeurs delta afin que New Relic affiche correctement les taux. filter/cardinalitySupprime les points de données à forte cardinalité (états du processeur autres que useretsys, et métriques par commande pour les commandes peu communes) afin de contrôler les coûts d'ingestion.transform/metadata_nullifyEfface les descriptions et les unités des métriques pour réduire la taille de la charge. batchRegroupe les points de données avant l’exportation (2 048 par lot, jusqu’à 4 096) et les vide au moins toutes les 10 secondes pour réduire la surcharge du réseau. otlp_httpExporte les métriques traitées vers New Relic via OTLP avec la compression gzip, authentifiées avec votre clé de licence. Important
Le processeur
resource/redis_identityavecredis.instance.idest requis pour l'approche du récepteur Prometheus. Contrairement au récepteur Redis natif, le récepteur Prometheus ne fournit passerver.addressniserver.port— doncredis.instance.idest le seul moyen d'identifier votre entité Redis dans New Relic. Définissez-le sur un nom unique et descriptif pour chaque instance (par ex.,prod-redis-cache:6379).
Facultatif : activer le monitoring du Cluster Redis
Si votre Redis s'exécute en mode Cluster, démarrez redis_exporter avec l'indicateur --is-cluster pour collecter automatiquement les métriques d'état du cluster à partir de tous les nœuds :
$redis_exporter --redis.addr=redis://localhost:7000 --is-clusterLa configuration du Récepteur Prometheus ci-dessus renomme déjà les métriques du cluster (par exemple, redis_cluster_state → redis.cluster.state). Pour créer une entité de cluster distincte dans New Relic, ajoutez un attribut de ressource redis.cluster.name à un pipeline distinct qui n’inclut PAS redis.instance.id:
resource/cluster: attributes: - key: redis.cluster.name value: "my-redis-cluster" # Update with your cluster name action: upsertAjoutez un pipeline de cluster à votre section de service :
metrics/cluster: receivers: [prometheus] processors: [memory_limiter, resource_detection, resource/cluster, attributes/entity_tags, metricstransform, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http]Important
L’entité de cluster nécessite que redis.cluster.name soit présent ET que redis.instance.id soit absent. Si les deux sont définis sur les mêmes métriques, seule l’entité d’instance sera créée. Utilisez des pipelines distincts pour les métriques d’instance et de cluster.
Facultatif : collecter les logs Redis
Au-delà des métriques, le collecteur peut transférer le fichier de log de Redis à New Relic afin que vous puissiez corréler les événements de log — redémarrages, événements de persistance ou erreurs — avec les pics de métriques sur la même entité.
Important
Par défaut, Redis dans Docker écrit les logs dans stdout (et non dans un fichier). Pour collecter les logs avec le récepteur filelog, vous devez configurer Redis pour qu’il écrive dans un fichier de log et le partager via un volume Docker entre les conteneurs Redis et du collecteur.
Ajoutez ceci à votre service Redis dans docker-compose.yml:
redis: image: redis:7 command: > sh -c "touch /data/redis.log && chmod 644 /data/redis.log && redis-server --logfile /data/redis.log" volumes: - redis-logs:/dataEt ajoutez le volume partagé à votre service de collecteur :
otel-collector: volumes: - redis-logs:/var/log/redis:roAjoutez ensuite au bas de votre docker-compose.yml:
volumes: redis-logs:Ajoutez le récepteur filelog à votre otel-collector-config.yaml:
receivers: # ... existing prometheus receiver ... file_log/redis: include: - /var/log/redis/redis.log start_at: end operators: - type: regex_parser regex: '^\d+:[XCSM] \d+ \w+ \d+ \d+:\d+:\d+\.\d+ (?P<level>.) ' on_error: send resource: db.system: redisLes lignes de log du fichier n’ont pas de contexte de connexion Redis en elles-mêmes — vous devez attacher explicitement des attributs d’identité pour que New Relic associe les logs à votre entité Redis. Ajoutez un processeur resource/redis_logs avec des valeurs codées en dur correspondant à l’identité de votre entité Redis:
processors: # ... existing processors ... resource/redis_logs: attributes: - key: redis.instance.id value: "my-redis-instance:6379" # Must match the value in resource/redis_identity action: upsert - key: instrumentation.provider value: opentelemetry action: upsertAjoutez un pipeline de logs distinct à la section Service :
service: pipelines: metrics/redis: receivers: [prometheus] processors: [memory_limiter, resource_detection, resource/redis_identity, attributes/entity_tags, metricstransform, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] logs/redis: receivers: [file_log/redis] processors: [memory_limiter, resource/redis_logs, batch] exporters: [otlp_http]Facultatif : collecter les métriques de l’hôte
Les performances de Redis suivent souvent la pression sur les ressources de l'hôte — saturation du processeur, épuisement de la mémoire ou contention des I/O disque. Ajoutez le récepteur hostmetrics pour collecter les métriques système aux côtés de Redis afin de pouvoir corréler les deux dans New Relic. Le paramètre root_path: /hostfs est requis lors de l'exécution dans un conteneur Docker afin que le collecteur lise le système de fichiers de l'hôte, et non celui du conteneur :
receivers: # ... existing receivers ... host_metrics: collection_interval: 10s root_path: /hostfs scrapers: cpu: metrics: system.cpu.utilization: {enabled: true} system.cpu.time: {enabled: true} load: metrics: system.cpu.load_average.1m: {enabled: true} system.cpu.load_average.5m: {enabled: true} system.cpu.load_average.15m: {enabled: true} memory: metrics: system.memory.usage: {enabled: true} system.memory.utilization: {enabled: true} disk: metrics: system.disk.io: {enabled: true} system.disk.operations: {enabled: true} filesystem: metrics: system.filesystem.usage: {enabled: true} system.filesystem.utilization: {enabled: true} network: metrics: system.network.io: {enabled: true} system.network.packets: {enabled: true}Ajoutez un pipeline metrics/host séparé pour les métriques d'hôte (n'ajoutez pas host_metrics au pipeline Redis) :
service: pipelines: metrics/redis: receivers: [prometheus] processors: [memory_limiter, resource_detection, resource/redis_identity, attributes/entity_tags, metricstransform, cumulativetodelta, filter/cardinality, transform/metadata_nullify, batch] exporters: [otlp_http] metrics/host: receivers: [host_metrics] processors: [memory_limiter, resource_detection, attributes/entity_tags, batch] exporters: [otlp_http]Créer le fichier Docker Compose
Créez docker-compose.yml pour exécuter le redis_exporter et le collecteur aux côtés de votre Redis existant. Le fichier .env dans le même répertoire est automatiquement chargé par Docker Compose :
services: redis-exporter: image: oliver006/redis_exporter:latest environment: - REDIS_ADDR=redis://redis:6379 # Update with your Redis service name:port # Uncomment if using Redis authentication: # - REDIS_PASSWORD=${REDIS_PASSWORD} # - REDIS_USER=${REDIS_USERNAME} ports: - "9121:9121" healthcheck: test: ["CMD-SHELL", "redis_exporter --version || exit 1"] interval: 10s timeout: 5s retries: 3
otel-collector: image: otel/opentelemetry-collector-contrib:latest env_file: .env volumes: - ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml:ro - /etc/machine-id:/etc/machine-id:ro environment: - NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY} - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT} command: ["--config=/etc/otelcol-contrib/config.yaml"] ports: - "13133:13133" depends_on: redis-exporter: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:13133"] interval: 10s timeout: 5s retries: 3Conseil
Pour utiliser le collecteur NRDOT à la place, remplacez l'image otel-collector par newrelic/nrdot-collector:latest et mettez à jour le chemin de montage de la configuration vers /etc/otel/config.yaml.
Créer le fichier d'environnement
Docker Compose lit les valeurs spécifiques au déploiement à partir d'un fichier .env dans le même répertoire que votre docker-compose.yml, ce qui garde votre clé de licence hors du fichier compose. Créez le fichier .env :
$NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY$OTEL_EXPORTER_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT$# Set the New Relic OTLP endpoint for your region.$# See https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlpRemplacez les espaces réservés par vos propres valeurs :
| Variable | Requis | Description |
|---|---|---|
NEW_RELIC_LICENSE_KEY | Oui | Votre clé de licence d'ingestion New Relic. |
OTEL_EXPORTER_OTLP_ENDPOINT | Oui | Point de terminaison OTLP New Relic pour votre région. Pour plus d'informations, consultez le point de terminaison OTLP New Relic. |
Démarrer et vérifier
Démarrez le collecteur et redis_exporter en arrière-plan :
$docker compose up -dConfirmez que les conteneurs sont en cours d'exécution avec docker compose ps — le collecteur et redis-exporter devraient tous deux afficher un statut running. Si le collecteur s'est arrêté, vérifiez ses logs avec docker compose logs otel-collector — les causes les plus courantes sont des erreurs d'indentation YAML, un redis_exporter inaccessible ou l'exportateur qui ne s'exécute pas.
Confirmez ensuite que vos métriques parviennent à New Relic. Attendez environ une minute après le démarrage, puis exécutez cette requête dans le générateur de requêtes:
SELECT count(*) FROM Metric WHERE metricName LIKE 'redis.%' AND instrumentation.provider = 'opentelemetry' SINCE 5 minutes agoUn nombre non nul confirme que les métriques Redis circulent. S'il renvoie 0, consultez Dépanner Redis (OpenTelemetry).
Conseil
Corréler l'APM avec Redis: pour connecter votre application APM et l'instance Redis dans les cartes de service, incluez db.system="redis" ainsi que le modèle d'identifiant d'entité de votre choix — soit redis.instance.id, soit server.address et server.port — en tant qu'attributs de ressource dans vos métriques APM. Les valeurs doivent correspondre à ce que vous avez configuré dans le collecteur. Cela permet une visibilité inter-services et un dépannage plus rapide au sein de New Relic.
Prochaines étapes
- Installation auto-hébergée: monitorer Redis sur des machines virtuelles/bare metal
- Installation sur Kubernetes: déployer sur Kubernetes avec DaemonSet
- Consultez vos données: explorez les dashboards et configurez des alertes
- Référence des métriques: liste complète des métriques disponibles
- Dépannage: problèmes courants et solutions