1
resposta

Sugestão de melhoria para enunciado/resposta

Bom dia/tarde!

get_nginx() {
  local metrics=$(curl -s "http://localhost/nginx_status")
  if [[ -n "$metrics" ]]; then
    local active_connections=$(awk 'NR==1 {print $3}' <<< "$metrics")
    local requests_per_second=$(awk 'NR==3 {print $2}' <<< "$metrics")
    echo "Active connections: $active_connections"
    echo "Requests per second: $requests_per_second"
  else
    echo "Failure in collecting Nginx metrics."
  fi
}

get_nginx

Acredito que a solução dá a entender que ela retorna o valor da quantidade de requisições processadas por segundo, mas não acho que seja o caso. Ao analisar a documentação do nginx https://nginx.org/en/docs/http/ngx_http_stub_status_module.html ele cita que o segundo valor é a quantidade de requisições manipuladas naquele instante.
Acho que a variável deveria ser renomeada ou efetivamente calcular quantidade por segundo.

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá amigo.
Tudo bem?
O script fornecido está capturando a métrica de requisições processadas naquele momento, e não a quantidade por segundo.
Para calcular a taxa de requisições por segundo, é necessário medir a diferença entre dois intervalos de tempo.
Portanto, a sugestão de renomear a variável ou ajustar o cálculo para refletir a taxa por segundo é muito válida.
Obrigado por compartilhar.
Bons estudos.