• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Instrumentação Puma

O agente Ruby da New Relic pode amostrar as estatísticas de servidor em todo o cluster do Puma a partir do processo mestre Puma e relatá-las como Ruby/Puma/* métricas de timeslice.

Esta instrumentação está desativada por padrão.

Requerimentos mínimos

Requerimento

Detalhes

Versão do agente Ruby

10.7.0 ou superior

Versão do Puma

6.6.0 ou superior

Modo Puma

Modo único ou modo em cluster com

preload_app!

ativado.

Habilitar a instrumentação

Para habilitar a instrumentação de Puma, defina disable_puma_instrumentation como false em seu newrelic.yml:

disable_puma_instrumentation: false

O agente coleta amostras de estatísticas do processo mestre do Puma, portanto, ele só coleta métricas onde o agente está carregado no mestre:

  • Modo único (sem workers): as métricas são sempre coletadas.

  • Modo clusterizado (um ou mais workers): as métricas são coletadas apenas quando seu aplicativo é pré-carregado, para que o agente seja carregado no master em vez de em um worker. Adicione preload_app! ao seu puma.rb:

    workers 2
    preload_app!

    Importante

    Em Puma v6.x, você deve definir preload_app! explicitamente. Puma v6.x não aplica seu padrão preload_app do bloco de configuração, portanto, um aplicativo em cluster com workers definido, mas sem preload_app! explícito, carrega o agente em um worker e nenhuma métrica do Puma é coletada. Quando isso acontece, o agente registra um aviso.

Ajuste a taxa de amostragem

Por padrão, o agente coleta amostras de estatísticas do Puma a cada 60 segundos. Altere isso com a configuração puma.sample_rate no seu newrelic.yml:

puma.sample_rate: 30

O que ele captura

Todas as métricas são registradas no namespace Ruby/Puma/. Os valores por worker são somados em todo o cluster.

Métrica

Descrição

Ruby/Puma/backlog

Número de requests aguardando uma thread disponível.

Ruby/Puma/running

Número de threads de trabalho atualmente geradas no pool de threads.

Ruby/Puma/pool_capacity

Capacidade de requisição sobressalente: threads ociosas mais threads ainda não criadas, mas ainda permitidas até

max_threads

.

Ruby/Puma/max_threads

Número máximo configurado de threads.

Ruby/Puma/requests_count

Número acumulado de requests processados desde que os workers foram iniciados.

Ruby/Puma/workers

Número de trabalhadores do Puma. Relatado apenas no modo clusterizado.

Exemplo de consulta

Consulte essas métricas com NRQL usando o tipo Metric. Substitua YOUR_APP_NAME pelo nome do seu aplicativo.

Para visualizar todas as métricas do Puma de uma vez:

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

Para visualizar uma única métrica, filtre pelo nome dela:

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

Como funciona

Quando ativado, o agente inicia uma thread de relatórios no processo mestre do Puma para entregar essas métricas. Isso executa uma conexão adicional do agente no mestre, junto com as conexões dos seus workers do Puma.

A instrumentação registra apenas medidores e contadores inteiros por meio de NewRelic::Agent.record_metric. Ela não captura nenhum dado de solicitação, consulta ou usuário.

Copyright © 2026 New Relic Inc.

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