Configurando o AppSignal
Primeiro, você deve configurar sua integração AppSignal ou agente standalone para receber métricas do NGINX. Se você configura sua integração AppSignal com variáveis de ambiente, deve definirAPPSIGNAL_ENABLE_NGINX_METRICS como true.
Se você configura sua integração AppSignal com arquivos de configuração, ou usa o agente standalone, pode seguir as instruções relevantes abaixo sobre como habilitar as métricas do NGINX para sua aplicação:
Ruby
Adicioneenable_nginx_metrics: true ao ambiente desejado no arquivo config/appsignal.yml da sua aplicação, por exemplo, o ambiente de produção:
Elixir
Adicioneenable_nginx_metrics: true ao seu bloco de configuração do AppSignal, normalmente localizado em config/config.exs:
Node.js
AdicioneenableNginxMetrics: true ao seu arquivo appsignal.cjs:
Agente standalone
Adicioneenable_nginx_metrics = true ao seu arquivo de configuração /etc/appsignal-agent.conf:
Configurando o NGINX
O próximo passo é configurar seu servidor NGINX para enviar métricas ao AppSignal. Na maioria das distribuições Linux, a configuração padrão do NGINX incluirá arquivos de configuração de uma pasta de configuração, frequentemente localizada em/etc/nginx/conf.d. Salve a seguinte configuração nessa pasta como appsignal-metrics.conf:
Substitua
127.0.0.1:27649 pelo host e porta onde sua integração AppSignal ou agente stand-alone está escutando por métricas do NGINX.http do seu arquivo nginx.conf:
server ou location contém uma diretiva access_log, as métricas para requisições a esse server ou location não serão reportadas ao AppSignal. Para reportar métricas ao AppSignal para essas requisições, você precisará adicionar a seguinte linha dentro do bloco:
Shell
Substitua
127.0.0.1:27649 pelo host e porta onde sua integração AppSignal ou agente stand-alone está escutando por métricas do NGINX.access_log existente dentro do bloco continuará funcionando como antes.
Configurando grupos de requisições
Ao alterar o valor da variável$appsignal_group dentro de um bloco location ou server em sua configuração NGINX, você pode diferenciar entre diferentes tipos de requisições tratadas pelo seu servidor NGINX:
Desabilitando métricas
Você pode usar a diretivaaccess_log off para desabilitar todos os logs de acesso dentro de um bloco location ou server. Observe que isso desabilitará todos os logs de acesso configurados, não apenas aqueles que são enviados ao AppSignal como métricas.
Para reportar métricas apenas de blocos location ou server específicos, remova a seguinte linha do arquivo appsignal-metrics.conf e adicione-a apenas dentro dos blocos location ou server específicos dos quais você gostaria de reportar métricas para o AppSignal:
Substitua
127.0.0.1:27649 pelo host e porta onde sua integração AppSignal ou agente stand-alone está escutando por métricas do NGINX.access_log no bloco server ou http envolvente. Para habilitar esses logs de acesso novamente, repita a diretiva access_log correspondente dentro do bloco location ou server onde você adicionou a linha acima:
Magic dashboard

- Tempo de requisição: o tempo levado pelo seu servidor NGINX para responder a uma requisição, como média por minuto e percentil 95.
- Throughput: uma contagem das requisições tratadas pelo seu servidor NGINX.
- Comprimento da requisição: o comprimento em bytes da requisição recebida do cliente pelo seu servidor NGINX, como média por minuto e percentil 95.
- Comprimento da resposta: o comprimento em bytes da resposta enviada ao cliente pelo seu servidor NGINX, como média por minuto e percentil 95.
- Códigos de status: uma contagem dos códigos de status das respostas enviadas pelo seu servidor NGINX.
- Conexões: um gauge das conexões atualmente tratadas pelo seu servidor NGINX, medidas uma vez por minuto e segmentadas pelo status da conexão.
- Códigos de status upstream: uma contagem dos códigos de status das respostas enviadas pelos servidores upstream dos quais seu servidor NGINX faz proxy.
- Tempo de resposta upstream: o tempo levado para responder a uma requisição pelos servidores upstream dos quais seu servidor NGINX faz proxy, como média por minuto e percentil 95.
- Status do cache upstream: o status do cache (como
HITouMISS) ao tratar uma requisição em cache vinda de um servidor upstream.
Métricas
As seguintes métricas serão enviadas ao AppSignal pelo seu servidor NGINX:nginx_status: Um counter que incrementa para cada requisição tratada pelo seu servidor NGINX. Marcado por:status: O código de status da resposta.group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.
nginx_request_time: Uma distribuição do tempo levado para responder a cada requisição. Marcado por:group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.
nginx_request_length: Uma distribuição dos bytes recebidos na requisição do cliente, para cada requisição. Marcado por:group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.
nginx_bytes_sent: Uma distribuição dos bytes enviados na resposta ao cliente, para cada requisição. Marcado por:group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.
proxy_pass do NGINX, as seguintes métricas também estarão presentes:
nginx_upstream_time: Uma distribuição do tempo levado para se comunicar com o servidor upstream. Marcado por:group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.upstream: O servidor upstream para o qual a requisição foi proxiada.measurement: O tempo específico medido:connect: O tempo que levou para a conexão ser estabelecida.header: O tempo que levou para o cabeçalho da resposta ser enviado.response: O tempo que levou para a resposta completa ser enviada.
nginx_upstream_status: Um counter que incrementa para cada requisição proxiada para um upstream. Marcado por:status: O código de status da resposta.group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.upstream: O servidor upstream para o qual a requisição foi proxiada.
proxy_cache do NGINX, a seguinte métrica também estará presente:
nginx_upstream_cache_status: Um counter que incrementa para cada requisição proxiada para um upstream com cache habilitado. Marcado por:status: O status do cache para a requisição.group: O grupo da requisição, conforme configurado no seu servidor NGINX.hostname: O hostname do servidor que tratou a requisição.
ngx_http_stub_status_module habilitado (como fornecido pela maioria das distribuições Linux), a seguinte métrica também estará presente:
nginx_connections: O número de conexões que seu servidor NGINX está tratando atualmente. Marcado por:hostname: O hostname do servidor que tratou a requisição.measurement: O número específico de conexões medido:active: O número de conexões ativas.reading: O número de conexões onde a requisição está sendo lida.writing: O número de conexões onde a resposta está sendo escrita.waiting: O número de conexões ociosas.