• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Instrumentation Puma

|View as Markdown (English)

L’agent New Relic Ruby peut échantillonner les statistiques de serveur à l’échelle du cluster de Puma à partir du processus maître Puma et les signaler comme Ruby/Puma/* métriques de tranche de temps.

Cette instrumentation est désactivée par défaut.

Exigences minimales

Exigence

Détails

Version de l'agent Ruby

10.7.0 ou version ultérieure

Version Puma

6.6.0 ou version ultérieure

Mode Puma

Mode unique, ou mode cluster avec

preload_app!

activé.

Activer l’instrumentation

Pour activer l’instrumentation Puma, définissez disable_puma_instrumentation sur false dans votre newrelic.yml:

disable_puma_instrumentation: false

L’agent échantillonne les statistiques du processus maître Puma, il ne collecte donc les métriques que là où l’agent est chargé dans le maître :

  • Mode unique (sans workers) : les métriques sont toujours collectées.

  • Mode cluster (un ou plusieurs workers) : les métriques sont collectées uniquement lorsque votre application est préchargée, de sorte que l'agent soit chargé dans le master plutôt que dans un worker. Ajoutez preload_app! à votre puma.rb:

    workers 2
    preload_app!

    Important

    Sur Puma v6.x, vous devez définir preload_app! explicitement. Puma v6.x n’applique pas sa valeur par défaut preload_app à partir du bloc de configuration, donc une application en cluster avec workers défini mais sans preload_app! explicite charge l’agent dans un worker et aucune métrique Puma n’est collectée. Lorsque cela se produit, l’agent enregistre un avertissement.

Ajuster le taux d’échantillonnage

Par défaut, l'agent échantillonne les statistiques Puma toutes les 60 secondes. Modifiez cela avec la configuration puma.sample_rate dans votre newrelic.yml:

puma.sample_rate: 30

Ce qu’il capture

Toutes les métriques sont enregistrées sous l'espace de nommage Ruby/Puma/. Les valeurs par worker sont additionnées à travers le cluster.

métrique

Description

Ruby/Puma/backlog

Nombre de requests en attente d’un thread disponible.

Ruby/Puma/running

Nombre de threads de travail actuellement générés dans le pool de threads.

Ruby/Puma/pool_capacity

Capacité de requête de réserve : threads inactifs plus threads non encore générés mais toujours autorisés jusqu’à

max_threads

.

Ruby/Puma/max_threads

Nombre maximum de threads configuré.

Ruby/Puma/requests_count

Nombre cumulé de requests traitées depuis le démarrage des workers.

Ruby/Puma/workers

Nombre de workers Puma. Signalé en mode cluster uniquement.

Exemple de requête

Effectuez une requête sur ces métriques avec NRQL en utilisant le type Metric. Remplacez YOUR_APP_NAME par le nom de votre application.

Pour afficher toutes les métriques Puma à la fois :

FROM Metric SELECT average(newrelic.timeslice.value)
WHERE appName = 'YOUR_APP_NAME' AND metricTimesliceName LIKE 'Ruby/Puma/%'
FACET metricTimesliceName TIMESERIES LIMIT MAX SINCE 1 hour ago

Pour afficher une seule métrique, filtrez par son nom :

FROM Metric SELECT average(newrelic.timeslice.value)
WHERE appName = 'YOUR_APP_NAME' AND metricTimesliceName = 'Ruby/Puma/requests_count'
TIMESERIES LIMIT MAX SINCE 1 hour ago

Comment ça marche

Lorsqu’il est activé, l’agent démarre un thread de rapport dans le processus maître Puma pour fournir ces métriques. Cela exécute une connexion d’agent supplémentaire dans le maître, aux côtés des connexions de vos workers Puma.

L’instrumentation enregistre uniquement des jauges et des compteurs entiers via NewRelic::Agent.record_metric. Il ne capture aucune donnée de request, de requête ou d’utilisateur.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.