Observability, Audit Trail and Cost Governance
Observability, Audit Trail and Cost Governance
Section titled “Observability, Audit Trail and Cost Governance”Objetivo
Section titled “Objetivo”A camada packages/observability cria a primeira base de logs estruturados, trace context, audit trail, security events, métricas operacionais e registros de uso/custo do Standard. O desenho é multi-tenant, API-first e sem dependência obrigatória de vendor.
Logs Estruturados
Section titled “Logs Estruturados”Todo log estruturado contém:
timestamplevelmessagetrace_id, quando disponívelservicemoduleenvironment- contexto seguro de tenant, organization e assessment quando aplicável
metadata_safe
O logger do MVP armazena entradas em memória para testes e define contrato para export futuro para Cloudflare Workers Logs, Analytics Engine, Logpush ou outro backend.
Redaction
Section titled “Redaction”Campos sensíveis são redigidos recursivamente:
passwordtokenapi_keyauthorizationcookiesecretprivate_keyaccess_keyrefresh_tokenid_tokendocument_textchunk_textpromptcompletionraw_llm_outputfile_contentextracted_textsigned_url
metadata_safe rejeita campos proibidos em audit, security e usage records.
Trace Context
Section titled “Trace Context”ObservabilityTraceContext modela:
trace_idparent_trace_idspan_idtenant_idorganization_idassessment_idactor_idworkflow_run_idagent_run_idrequest_idstarted_at
O API Gateway já resolve trace_id por x-trace-id, cf-ray ou UUID e propaga para respostas, erros, audit events e métricas.
Audit Trail
Section titled “Audit Trail”AuditEventService registra eventos de negócio relevantes sem conteúdo sensível integral. Exemplos implementados no MVP:
agent_run_startedagent_run_completedworkflow_startedworkflow_signal_receivedworkflow_completedreport_downloaded
Os demais eventos obrigatórios estão modelados no schema para integração incremental.
Security Events
Section titled “Security Events”SecurityEventService separa eventos de segurança dos logs comuns. Integrações iniciais:
- auth ausente;
- tenant context ausente;
- tenant context mismatch;
- permission denied;
- approval permission denied;
- tool use blocked;
- agent guardrail triggered.
Eventos contêm severity, outcome, source, message_safe, trace_id e metadata segura.
Métricas Operacionais
Section titled “Métricas Operacionais”MetricsService registra métricas por tenant/assessment quando possível.
Métricas iniciais integradas:
request_countrequest_duration_mserror_countauth_error_countforbidden_error_countkb_search_countkb_search_duration_msagent_run_countworkflow_run_countworkflow_step_duration_msreport_download_count
Cost and Usage Tracking
Section titled “Cost and Usage Tracking”CostTrackingService registra usage sem exigir preços reais:
service_nameoperation_nameusage_quantityusage_unitprovidermodel_nameresource_idcost_estimate, quandoPricingProviderestiver configuradometadata_safe
O PricingProviderPlaceholder retorna null; portanto o MVP registra usage sem custo estimado. Isso evita hardcode de pricing como verdade permanente.
Agent Runtime
Section titled “Agent Runtime”Integrações iniciais:
- audit para
agent_run_startedeagent_run_completed; - metric
agent_run_count; - usage por
agent_runquando tokens são informados pelo provider; - security event quando tool não permitida é bloqueada;
- security event quando guardrail bloqueia output.
Prompts e outputs integrais não são logados.
Workflows
Section titled “Workflows”Integrações iniciais:
- audit para workflow started, signal received e completed;
- metric
workflow_run_count; - metric
workflow_step_duration_msno processamento de signal.
O workflow continua usando Assessment Engine para transições e approval gates.
Cloudflare e AI Gateway
Section titled “Cloudflare e AI Gateway”O pacote prepara campos para:
- Cloudflare Workers Logs;
- Cloudflare Analytics;
- AI Gateway correlation;
- Queue message telemetry;
- R2/Vectorize usage;
- export futuro para ferramentas externas.
Não há account_id, gateway name ou secret hardcoded.
Privacidade e Confidencialidade
Section titled “Privacidade e Confidencialidade”Regras:
- não logar documentos completos;
- não logar chunks completos;
- não logar query integral de KB, usar
query_hash; - não logar prompts completos;
- não logar outputs completos de agente;
- não logar signed URLs;
- não logar tokens, API keys, secrets ou credenciais.
Limitações do MVP
Section titled “Limitações do MVP”- Repositórios são in-memory no gateway local.
- Não há backend persistente PostgreSQL para observability ainda.
- Métricas são records discretos, não time-series real.
- Rate limiting ainda é placeholder.
- Pricing real não configurado.
- Integrações de workers/jobs são pontos mínimos via API; consumers Cloudflare ainda precisam adapters reais.
Decisões em Aberto
Section titled “Decisões em Aberto”- Backend final de métricas: PostgreSQL, Analytics Engine, Prometheus bridge ou combinação.
- Política de retenção por tipo de evento.
- Sampling de logs/trace em produção.
- Modelo de budgets/thresholds por tenant.
- Integração final com AI Gateway usage e billing.