Files
fn_registry/functions/datascience/metrics_drift.md
T
egutierrez aca2348a20 chore: auto-commit (97 archivos)
- .claude/CLAUDE.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- bash/functions/infra/build_cpp_windows.sh
- cpp/CMakeLists.txt
- cpp/PATTERNS.md
- cpp/framework/app_base.cpp
- cpp/framework/app_base.h
- dev/issues/README.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 18:11:24 +02:00

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path params output
metrics_drift function go datascience 1.0.0 pure func MetricsDrift(historical []int64, current int64, percentile float64) (drift float64, baseline int64) Calcula la deriva relativa de una medicion actual respecto a una linea base historica. La linea base se obtiene como el percentil indicado del historico. drift = (current - baseline) / baseline. Retorna drift=0, baseline=0 si el historico esta vacio o la linea base es cero.
metrics
drift
percentile
statistics
monitoring
baseline
percentile_int64_go_datascience
false
sort
true
historico vacio retorna drift 0 baseline 0
baseline cero retorna drift 0 baseline 0
drift positivo cuando current supera baseline
drift negativo cuando current es menor que baseline
functions/datascience/metrics_drift_test.go functions/datascience/metrics_drift.go
name desc
historical Ventana de mediciones previas en la misma unidad que current (ms, bytes, etc.). No necesita estar ordenada.
name desc
current Medicion actual a comparar contra la linea base historica.
name desc
percentile Percentil para calcular la linea base: 0.5 = mediana, 0.95 = p95. Rango [0.0, 1.0].
drift es la desviacion relativa como fraccion (0.47 = +47% por encima de la linea base, -0.5 = 50% por debajo). baseline es el valor del percentil sobre el historico.

Ejemplo

historical := []int64{100, 120, 95, 110, 105}  // ms de respuesta previos
current := int64(200)                            // ms de la ejecucion actual

drift, baseline := MetricsDrift(historical, current, 0.5)
// baseline ≈ 105 (mediana)
// drift ≈ 0.905 (+90.5% sobre la mediana)

// Con p95 como referencia de "worst case normal"
_, p95 := MetricsDrift(historical, current, 0.95)
// p95 = 120

Notas

Funcion pura. El historico se ordena internamente (copia defensiva) antes de calcular el percentil con Percentile de percentile_int64_go_datascience. No muta el slice de entrada.

El drift puede ser negativo (mejora) o positivo (degradacion). El caller decide el umbral de alarma (ej. drift > 0.5 = degradacion mayor al 50%).

Util para el agente fn-analizador para comparar duration_ms de la ejecucion actual contra el historico de executions en operations.db.