2. Health & Sistema#
GET/health#
Verifica se o serviço e suas dependencias (MySQL, Redis) estão funcionando.
Auth: Nenhuma
Resposta 200:
{
"status": "ok",
"service": "biazap-api",
"checks": {
"mysql": "ok",
"redis": "ok"
}
}
Resposta 503 (degradado):
{
"status": "degraded",
"service": "biazap-api",
"checks": {
"mysql": "ok",
"redis": "error: connection refused"
}
}
GET/ready#
Verifica se todas as dependencias (MySQL, Redis, S3) estão funcionando.
Auth: Nenhuma
Resposta 200:
{
"status": "ready",
"checks": {
"mysql": "ok",
"redis": "ok",
"s3": "ok"
}
}
Resposta 503 (degradado):
{
"status": "degraded",
"checks": {
"mysql": "ok",
"redis": "error"
}
}
GET/metrics#
Metricas Prometheus.
Auth: Desabilitado por padrão quando METRICS_BEARER_TOKEN estiver vazio. Para expor:
- defina
METRICS_BEARER_TOKENe envieAuthorization: Bearer <METRICS_BEARER_TOKEN> - ou habilite explicitamente
ALLOW_PUBLIC_METRICS=true
Se ALLOW_PUBLIC_METRICS=false e METRICS_BEARER_TOKEN estiver vazio, a API responde 401.
Resposta: Texto no formato Prometheus exposition.
Exemplos de series expostas (não exaustivo): biazap_active_instances, biazap_connection_states, biazap_messages_total, biazap_send_latency_seconds_*, biazap_webhook_failures_total, biazap_send_failures_total, biazap_throttle_pauses_total, biazap_realtime_events_dropped_total (eventos descartados quando o cliente SSE/WS não acompanha o hub), biazap_queue_depth, biazap_redis_latency_seconds_*, biazap_s3_latency_seconds_*.
Stealth / fingerprint hardening (scaffolding inicial):
biazap_send_interval_msbiazap_connection_opens_totalbiazap_connection_closes_totalbiazap_warmup_phasebiazap_warmup_daily_sentbiazap_warmup_daily_capbiazap_fingerprint_platform_totalbiazap_fingerprint_utls_spec_totalbiazap_fingerprint_utls_pool_active_sizebiazap_fingerprint_utls_assignments_totalbiazap_fingerprint_utls_probe_totalbiazap_fingerprint_utls_burn_totalbiazap_fingerprint_city_totalbiazap_hygiene_applied_totalbiazap_send_blocked_totalbiazap_humanize_typing_emitted_totalbiazap_stealth_debug_mode_activebiazap_ban_events_totalbiazap_audit_emit_failed_totalbiazap_audit_emit_dropped_totalbiazap_appversion_fetch_failed_total
As series do Stealth Mode aparecem no /metrics desde o bootstrap, mesmo antes dos produtores definitivos, para que dashboards e canaries possam ser preparados sem esperar as tasks posteriores.
Em biazap_send_blocked_total, o label reason agora inclui inbound_first quando a instância opt-in recusa um outbound para chat sem inbound previo na janela configurada.