Observabilidad
Observabilidad
Sección titulada «Observabilidad»Ambos tiempos de ejecución proporcionan características de observabilidad para despliegues en producción.
Rust: Registro estructurado
Sección titulada «Rust: Registro estructurado»ai-lib-rust utiliza el ecosistema tracing:
use tracing_subscriber;
// Enable loggingtracing_subscriber::init();
// All AI-Lib operations emit structured log eventslet client = AiClient::new("openai/gpt-4o").await?;Niveles de registro:
INFO— Resúmenes de solicitud/respuestaDEBUG— Carga de protocolo, etapas de la canalizaciónTRACE— Frames individuales, coincidencias JSONPath
Rust: Estadísticas de llamadas
Sección titulada «Rust: Estadísticas de llamadas»Cada solicitud devuelve estadísticas de uso:
let (response, stats) = client.chat() .user("Hello") .execute_with_stats() .await?;
println!("Model: {}", stats.model);println!("Provider: {}", stats.provider);println!("Prompt tokens: {}", stats.prompt_tokens);println!("Completion tokens: {}", stats.completion_tokens);println!("Total tokens: {}", stats.total_tokens);println!("Latency: {}ms", stats.latency_ms);Python: Métricas (Prometheus)
Sección titulada «Python: Métricas (Prometheus)»from ai_lib_python.telemetry import MetricsCollector
metrics = MetricsCollector()
client = await AiClient.builder() \ .model("openai/gpt-4o") \ .metrics(metrics) \ .build()
# After some requests...prometheus_text = metrics.export_prometheus()Métricas rastreadas:
ai_lib_requests_total— Conteo de solicitudes por modelo/proveedorai_lib_request_duration_seconds— Histograma de latenciaai_lib_tokens_total— Uso de tokens por tipoai_lib_errors_total— Conteo de errores por tipo
Python: Trazado distribuido (OpenTelemetry)
Sección titulada «Python: Trazado distribuido (OpenTelemetry)»from ai_lib_python.telemetry import Tracer
tracer = Tracer( service_name="my-app", endpoint="http://jaeger:4317",)
client = await AiClient.builder() \ .model("openai/gpt-4o") \ .tracer(tracer) \ .build()Los trazados incluyen spans para:
- Carga de protocolo
- Compilación de solicitudes
- Transporte HTTP
- Procesamiento de la canalización
- Mapeo de eventos
Python: Monitoreo de salud
Sección titulada «Python: Monitoreo de salud»from ai_lib_python.telemetry import HealthChecker
health = HealthChecker()status = await health.check()
print(f"Healthy: {status.is_healthy}")print(f"Details: {status.details}")Python: Retroalimentación del usuario
Sección titulada «Python: Retroalimentación del usuario»Recolecte retroalimentación sobre las respuestas de IA:
from ai_lib_python.telemetry import FeedbackCollector
feedback = FeedbackCollector()
# After getting a responsefeedback.record( request_id=stats.request_id, rating=5, comment="Helpful response",)Observabilidad de resiliencia
Sección titulada «Observabilidad de resiliencia»Monitoree el estado del circuit breaker y el limitador de velocidad:
// Rustlet state = client.circuit_state(); // Closed, Open, HalfOpenlet inflight = client.current_inflight();# Pythonsignals = client.signals_snapshot()print(f"Circuit: {signals.circuit_state}")print(f"Inflight: {signals.current_inflight}")