API de Métricas¶
O servidor CPqD Texto Fala disponibiliza um conjunto de métricas relacionadas a síntese de fala que podem ser acessadas através da interface HTTP. Através dessas métricas, combinadas com métricas que podem ser coletadas do próprio sistema operacional (CPU, memória, I/O, etc.), o administrador pode avaliar o nível de utilização e desempenho do sistema.
Aviso
Embora várias métricas sejam retornadas pelo CPqD Texto Fala, apenas um certo conjunto deve ser considerado para a monitoração da síntese de fala. As métricas não apresentadas aqui não devem ser usadas. Algumas delas ainda estão em desenvolvimento e podem ser modificadas ou até removidas. Outras métricas são internas e não estão diretamente relacionadas ao CPqD Texto Fala.
Há os seguintes tipos de métrica:
- Contador
- Valor que pode ser incrementado ou subtraído (ex. número de requisições processadas).
- Histograma
- Mede a distribuição estatística em uma sequência de valores. Temos o valor máximo, mínimo, média e desvio padrão, além de quantis. A medida corresponde às amostras mais recentes, dentro de uma janela de aproximadamente 5 min. Essa janela move-se apenas quando ocorrem novas amostras, e não considera o tempo em si.
- Timer
- Taxa de execução de uma função e a distribuição da duração.
- Gauge
- Valor instantâneo de uma medida qualquer.
Métricas CPqD Texto Fala¶
Sessões de síntese¶
- gauges/br.com.cpqd.tts.session.active
- Número de sessões de sínteses ativas no momento.
- histogram/br.com.cpqd.tts.session.activity
- Histograma do número de sessões de síntese ativas (simultâneas).
- timer/br.com.cpqd.tts.license.usage
- Tempo médio de retenção de uma sessão de síntese.
Requisições de síntese¶
- counters/br.com.cpqd.tts.synthesis.requests
- Valor acumulado da quantidade total de requisições de síntese por streaming realizados até o momento.
- counters/br.com.cpqd.tts.textToSpeech.requests
- Valor acumulado da quantidade total de requisições de síntese em memória realizados até o momento.
Processo de síntese¶
- histogram/br.com.cpqd.tts.engine.audio.time
- Histograma da duração do áudio gerado: duração máxima, média, mínimo, e percentis.
- histogram/br.com.cpqd.tts.engine.delay
- Histograma do atraso do motor para início da sínteses (em milisegundos).
- histogram/br.com.cpqd.tts.engine.rate
- Histograma da taxa média de bytes produzida pelo motor de síntese (em bps).
- timers/br.com.cpqd.tts.engine.synthesis.time
- Tempo médio de duração da síntese.
Interface HTTP¶
Através da interface HTTP, as métricas do servidor CPqD Texto Fala podem ser lidas enviando uma requisição HTTP GET para a URL http://localhost:9091/metrics
.
Para exemplificar, abra um console na máquina do servidor CPqD Texto Fala e execute o comando abaixo:
curl http://localhost:9091/metrics?pretty=true
O resultado deve ser similar ao seguinte:
curl http://localhost:9091/metrics?pretty=true
{
"gauges": {
"br.com.cpqd.tts.session.active": {
"value": 0
},
},
"counters": {
"br.com.cpqd.tts.synthesis.requests": {
"count": 0
},
"br.com.cpqd.tts.textToSpeech.requests": {
"count": 0
}
},
"histograms": {
"br.com.cpqd.tts.engine.audio.time": {
"count": 0,
"max": 0,
"mean": 0.0,
"min": 0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0
},
"br.com.cpqd.tts.engine.delay": {
"count": 0,
"max": 0,
"mean": 0.0,
"min": 0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0
},
"br.com.cpqd.tts.engine.rate": {
"count": 0,
"max": 0,
"mean": 0.0,
"min": 0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0
},
"br.com.cpqd.tts.session.activity": {
"count": 0,
"max": 0,
"mean": 0.0,
"min": 0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0
}
},
"timers": {
"br.com.cpqd.tts.engine.synthesis.time": {
"count": 0,
"max": 0.0,
"mean": 0.0,
"min": 0.0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0,
"m15_rate": 0.0,
"m1_rate": 0.0,
"m5_rate": 0.0,
"mean_rate": 0.0,
"duration_units": "seconds",
"rate_units": "calls/second"
},
"br.com.cpqd.tts.license.usage": {
"count": 0,
"max": 0.0,
"mean": 0.0,
"min": 0.0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0,
"m15_rate": 0.0,
"m1_rate": 0.0,
"m5_rate": 0.0,
"mean_rate": 0.0,
"duration_units": "seconds",
"rate_units": "calls/second"
}
}
}