Task · SKT-0088

Give each Synthetic Monitoring private probe its own location

Description

Every private probe registered by sm-provision gets the construct default coordinates (sm.DefaultProbeLat/Lon, Frankfurt), so sm_check_info carries one geohash for probes declared in EMEA, US and APAC and a probe map shows a single marker. Add an optional per-probe latitude/longitude to the synthetic_monitoring check/probe declaration, thread it through ResolveSpec, the smstate snapshot and sm-provision, and derive the geohash from it.

Acceptance Criteria

Definition of Done

Implementation Plan

Add optional validated per-probe coordinates, preserve defaults, carry locations through registration and emitted geohash, update example with plausible locations; verify fake HTTP registration and emitter output, regenerate schema once, review and composed gate.

Implementation Notes

Fail-first YAML/default/zero, invalid-coordinate and fake HTTP registration proofs passed. Real handoff snapshot -> built sm-provision -> fake API -> composed runner geohash passes; conflicting shared probe locations preserve existing snapshot. Full gate exposed existing region mutation splitting a shared probe; adjusted that case to change the uniquely named secondary probe, retaining the same stale-registration/no-emission assertion. Focused bound-spec matrix passed. Full baseline/candidate signal-name and label-key dumps byte-identical.

Final Summary

Landed in6ee431e55612028a697972f23ccbb134e1c201f1. Optional paired coordinates retain defaults and explicit zero; real private snapshot -> built provision CLI -> fake HTTP -> composed emitter verifies location/geohash. Invalid/shared conflicts fail before snapshot publication. Example locations, regenerated schema and docs included. Full local just check passed; CodeRabbit complete0 and independent review clear. Exact CI38632786889 all11required jobs success including e2e. No live stack mutation.

References

View the source file on GitHub