SAFE-POINT-044 - La Directa redirect-aware probe design¶
Fecha: 2026-06-17
Metadata¶
- active_repo:
C:\APV\openclawai - related_repo:
C:\APV\vps-woocommerce-ladirecta - safe_point_base:
cdfe967dbddef68e6060ac4cd3b06603e30ddf33 - openclaw_vps_touched:
false - woo_vps_touched:
false - runtime_deploy_executed:
false - docker_runtime_executed:
false - grafana_runtime_reloaded:
false - prometheus_runtime_reloaded:
false - alertmanager_runtime_reloaded:
false
Objetivo¶
Disenar y preparar un candidato no desplegado para validar ladirecta.ar
como redirect publico esperado hacia https://ladirecta.com.ar/, sin tocar
runtime O4 ni WooCommerce.
SAFE POINT inicial¶
- Repo local:
C:\APV\openclawai git status -sb:## main...origin/maingit rev-parse HEAD:cdfe967dbddef68e6060ac4cd3b06603e30ddf33
Lectura base¶
docs/runbooks/SAFE-POINT-043-ladirecta-fase-1-dashboards-alerts-candidates.mdinfra/observability/prometheus/targets/blackbox-http-targets.jsoninfra/observability/blackbox/blackbox.ymlinfra/observability/prometheus/prometheus.ymlinfra/observability/prometheus/candidates/ladirecta-phase1-alerts.candidate.ymldocs/tenants/ladirecta/observability/ALERTS-PLAN.mddocs/tenants/ladirecta/observability/METRICS-CATALOG.mddocs/governance/operations/O4-ALERTS-CATALOG.mdinfra/observability/docker-compose.yml
Comportamiento observado el 2026-06-17¶
Validacion solo lectura con curl.exe -fsS -I:
| Target | Resultado observado | Nota |
|---|---|---|
https://ladirecta.ar/ |
301 Moved Permanently |
Location: https://ladirecta.com.ar/ |
http://ladirecta.ar/ |
301 Moved Permanently |
Location: https://ladirecta.com.ar/ |
http://ladirecta.com.ar/ |
301 Moved Permanently |
Location: https://ladirecta.com.ar/ |
https://ladirecta.com.ar/ |
200 OK |
storefront final sano |
Observacion:
- el comportamiento
http -> httpsdeladirecta.com.ary.ares coherente con una politica publica de canonicalizacion - no se asumio que
httpyhttpsdebian responder igual; se documento lo observado
Estado del patron actual¶
blackbox-httpusa el modulo runtimehttp_2xx- ese modulo no declara
follow_redirects: false - por default el exporter sigue redirects y el resultado termina en
200 - por eso hoy
probe_success{job="blackbox-http",instance="https://ladirecta.ar/"}puede ser sano aun cuando la senal operativa real sea un301
Resultado de la investigacion Blackbox¶
Stack versionado relevante:
blackbox-exporter:quay.io/prometheus/blackbox-exporter:v0.28.0
Capacidades confirmadas contra documentacion oficial del exporter:
| Pregunta | Resultado | Decision |
|---|---|---|
modulo con no_follow_redirects |
no como nombre literal |
usar follow_redirects: false |
aceptar 301/302/308 |
si |
usar valid_status_codes |
| exponer status inicial suficiente | si |
probe_http_status_code con follow_redirects: false debe reflejar el 301 inicial |
validar Location exacto |
si, dentro del modulo |
usar fail_if_header_not_matches con regex exacta |
exponer Location exacto como metrica para PromQL |
no |
el valor exacto queda validado dentro del modulo y Prometheus consume solo probe_success + probe_http_status_code |
Limitacion importante:
Prometheusno obtiene un label o metrica dedicada con el valor delLocation- la validacion exacta del header queda encapsulada en el modulo Blackbox
- por lo tanto, la alerta candidata exacta es viable, pero depende de promover el modulo correcto; no puede evaluarse solo con PromQL sobre el job actual
Diseno candidato no desplegado¶
Modulo Blackbox candidato¶
Archivo:
infra/observability/blackbox/candidates/ladirecta-redirect-aware-modules.candidate.yml
Diseno:
- modulo:
http_redirect_3xx_ladirecta_ar_no_follow follow_redirects: falsevalid_status_codes: [301, 302, 308]fail_if_header_not_matchessobreLocation- regex exacta esperada:
^https://ladirecta\.com\.ar/$
Target file candidato¶
Archivo:
infra/observability/prometheus/candidates/blackbox-http-redirect-aware-targets.candidate.json
Alcance:
- solo
https://ladirecta.ar/ - labels tenant/service alineados con el patron actual
Job Prometheus candidato¶
Archivo:
infra/observability/prometheus/candidates/blackbox-http-redirect-aware-job.candidate.yml
Diseno:
- job:
blackbox-http-redirect-aware - modulo:
http_redirect_3xx_ladirecta_ar_no_follow - target file dedicado, separado del job
blackbox-http
Regla candidata ajustada¶
Archivo:
infra/observability/prometheus/candidates/ladirecta-phase1-alerts.candidate.yml
Diseno:
EcommerceLaDirectaArRedirectBrokenqueda atada ajob="blackbox-http-redirect-aware"- la regla depende de
probe_success == 0 - la semantica exacta del redirect esperado vive dentro del modulo y no en la expresion PromQL
Por que se separa en job dedicado¶
- evita mezclar probes
2xxnormales con probes3xxesperados - preserva claridad operativa en dashboards y alertas
- permite agregar futuros redirects esperados sin contaminar el job general
- reduce riesgo de interpretar un
301esperado como caida o como200final
Archivos creados o actualizados¶
docs/runbooks/SAFE-POINT-044-ladirecta-redirect-aware-probe-design.mdinfra/observability/blackbox/candidates/ladirecta-redirect-aware-modules.candidate.ymlinfra/observability/prometheus/candidates/blackbox-http-redirect-aware-targets.candidate.jsoninfra/observability/prometheus/candidates/blackbox-http-redirect-aware-job.candidate.ymlinfra/observability/prometheus/candidates/ladirecta-phase1-alerts.candidate.yml
Lo que no se hizo¶
- no se modifico
infra/observability/blackbox/blackbox.ymlruntime - no se modifico
infra/observability/prometheus/prometheus.ymlruntime - no se modificaron
targets/*.jsonruntime - no se hizo deploy ni reload de
Prometheus,Grafana,AlertmanageroBlackbox - no se toco
WooCommerce,WordPress,DNS,Cloudflare, firewall, secretos ni repo relacionado
Pendiente para runtime futuro¶
- copiar el modulo candidato al
blackbox.ymlactivo - agregar el target file dedicado en la ruta runtime de
Prometheus - insertar el job
blackbox-http-redirect-awareenprometheus.yml - recargar
blackbox-exporteryPrometheusen un SAFE POINT separado - validar en runtime:
probe_success{job="blackbox-http-redirect-aware",instance="https://ladirecta.ar/"} = 1probe_http_status_code{job="blackbox-http-redirect-aware",instance="https://ladirecta.ar/"} = 301- solo despues promover la alerta
EcommerceLaDirectaArRedirectBroken
Resultado final¶
- diseno redirect-aware preparado en Git
- patron
candidate / not deployedrespetado - alerta
.arya tiene camino tecnico claro - runtime O4 preservado sin cambios