• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MapColonies / shigola / bf16266bf
57%
master: 44%

Build:
Build:
LAST BUILD BRANCH: chore/drop-vendor
DEFAULT BRANCH: master
Ran 09 Sep 2026 01:51PM UTC
Jobs 1
Files 125
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Sep 2026 01:47PM UTC coverage: 55.336% (+1.1%) from 54.242%
bf16266bf

push

github

web-flow
feat(tracing): add OpenTelemetry tracing, exporting OTLP to Tempo (MAPCO-11497) (#21)

* build(deps): vendor the OTLP trace exporters and the OTel trace SDK

The OpenTelemetry API, SDK and otelhttp were already in the module graph as
indirect dependencies, pulled in by the GCS cache's transitive closure, and the
trace SDK and OTLP exporters were not there at all. Promote the six that
shigola is about to import directly and add
go.opentelemetry.io/otel/exporters/otlp/otlptrace, which brings the OTLP proto
package, cenkalti/backoff and grpc-gateway with it.

gRPC and protobuf are already vendored, so the incremental link cost is the
exporter and its proto definitions rather than a new transport.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* feat(tracing): add a tracing seam with a no-op default

Its own package, not part of observability. That one is a metrics abstraction
which Mimir consumes unchanged, so OTEL metrics are never wanted: nothing here
registers a prometheus collector, and the HTTP decorator pins otelhttp's meter
provider to a no-op explicitly rather than relying on nobody ever installing a
global one.

Off is a distinct implementation rather than a flag read inside each method.
Null returns its argument from every Instrumented* method, so a process with
tracing disabled carries no decorator at all — not one that starts a discarded
span per cache read. That makes "no measurable overhead when disabled" a
property of the wiring instead of a claim about how cheap a dropped span is.

The cache decorator is transparent by contract: a read failure is still a miss,
never an error, and the returned tuple is the wrapped cache's. It records the
error on the span either way but sets the span's *status* to error only when
the failure is the cache's own, which is the same line the prometheus
observer's countReadError draws — a trace saying a tier failed while
shigola_cache_tier_errors_total says it did not would be worse than e... (continued)

417 of 599 new or added lines in 21 files covered. (69.62%)

2 existing lines in 2 files now uncovered.

5714 of 10326 relevant lines covered (55.34%)

124.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
49
0.0
internal/faketracer/faketracer.go
29
69.15
tracing/otlp.go
18
50.69
10.52% atlas/atlas.go
16
19.78
-4.22% cmd/shigola/cmd/root.go
14
0.0
internal/ttools/metrics.go
10
0.0
tracing/flush.go
10
76.19
tracing/provider.go
7
70.0
2.71% atlas/map.go
7
0.0
0.0% cmd/shigola/cmd/server.go
5
66.67
tracing/tracing.go
4
55.47
-0.88% cmd/shigola/cmd/cache/seed_purge.go
3
0.0
cmd/internal/register/tracing.go
2
96.77
tracing/cache.go
2
97.59
tracing/config.go
2
88.24
tracing/db.go
2
87.5
tracing/http.go
2
77.78
tracing/none.go

Coverage Regressions

Lines Coverage ∆ File
1
50.69
10.52% atlas/atlas.go
1
19.78
-4.22% cmd/shigola/cmd/root.go
Jobs
ID Job ID Ran Files Coverage
1 bf16266bf.1 09 Sep 2026 01:51PM UTC 125
55.34
GitHub Action Run
Source Files on build bf16266bf
  • Tree
  • List 125
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • bf16266b on github
  • Prev Build on development (#65BC333C9)
  • Next Build on development (#456DB4385)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc