golang-echo-otel-middleware
- Repo stars 0
- Author repo skills-registry
Skill: golang-echo-otel-middleware
Use this skill when adding or configuring github.com/adlandh/echo-otel-middleware/v2 in a Go Echo application, or when writing examples for this middleware.
Essentials
- Import path must include
/v2:github.com/adlandh/echo-otel-middleware/v2. - Alias examples as
echootelmiddlewareto match the package name and README. - This middleware targets Echo v5: use
github.com/labstack/echo/v5and handler signatures with*echo.Context. Middleware()uses global OpenTelemetry tracer provider and propagator; useMiddlewareWithConfigwhen the app owns explicit OTel setup.
Basic Usage
app := echo.New()
app.Use(echootelmiddleware.Middleware())
Use explicit config when a tracer provider or propagator is constructed by the application:
app.Use(echootelmiddleware.MiddlewareWithConfig(echootelmiddleware.OtelConfig{
TracerProvider: tp,
Propagator: otel.GetTextMapPropagator(),
}))
Config Defaults
TracerProvider:otel.GetTracerProvider().Propagator:otel.GetTextMapPropagator().Skipper: Echomiddleware.DefaultSkipper.BodySkipper: no-op, returnsfalse, false.AreHeadersDump:true.IsBodyDump:false.RemoveNewLines:false.LimitNameSizeandLimitValueSize:0, meaning unlimited.
Safe Body Dumping
- Body dumping is opt-in with
IsBodyDump: truebecause it can capture PII, tokens, and secrets. - Prefer
BodySkipperto exclude sensitive endpoints, compressed bodies, uploads, auth payloads, or large responses. BodySkipperonly runs whenIsBodyDumpis true and returns(skipReqBody, skipRespBody).
BodySkipper: func(c *echo.Context) (bool, bool) {
if c.Request().Header.Get("Content-Encoding") == "gzip" {
return true, true
}
return false, false
},
Attribute Limits
LimitNameSizeandLimitValueSizeare byte-based, not rune-based.- Truncation preserves valid UTF-8; values over a limit greater than 10 get a trailing
.... RemoveNewLinesreplaces\nwith spaces in string attributes, useful for backends such as Sentry.
Do Not Assume
- Metrics are not implemented in this middleware; do not add or document metrics unless explicitly requested.
- Echo v4 examples are wrong for this package because context types and imports differ.
<!-- tomevault:4.0:skill_md:2026-05-23 -->Source: adlandh/echo-otel-middleware — distributed by TomeVault.
- Fluxly category
- Writing
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @tomevault-io · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. Import path must include /v2: github.com/adlandh/echo-otel-middleware/v2. Alias examples as echootelmiddleware to match the package name and README. This middleware targets Echo v5: use github.com/labstack/echo/v5 and handler signatures with echo.Context.
Use explicit config when a tracer provider or propagator is constructed by the application:
TracerProvider: otel.GetTracerProvider(). Propagator: otel.GetTextMapPropagator(). Skipper: Echo middleware.DefaultSkipper.
Body dumping is opt-in with IsBodyDump: true because it can capture PII, tokens, and secrets. Prefer BodySkipper to exclude sensitive endpoints, compressed bodies, uploads, auth payloads, or large responses. BodySkipper only runs when IsBodyDump is true and…
LimitNameSize and LimitValueSize are byte-based, not rune-based. Truncation preserves valid UTF-8; values over a limit greater than 10 get a trailing .... RemoveNewLines replaces \n with spaces in string attributes, useful for backends such as Sentry.
Metrics are not implemented in this middleware; do not add or document metrics unless explicitly requested. Echo v4 examples are wrong for this package because context types and imports differ. Source: adlandh/echo-otel-middleware — distributed by TomeVault.
# Skill: golang-echo-otel-middleware
Use this skill when adding or configuring `github.com/adlandh/echo-otel-middleware/v2` in a Go Echo application, or when writing examples for this middleware.
## Essentials
- Import path must include `/v2`: `github.com/adlandh/echo-otel-middleware/v2`.
- Alias examples as `echootelmiddleware` to match the package name and README.
- This middleware targets Echo v5: use `github.com/labstack/echo/v5` and handler signatures with `*echo.Context`.
- `Middleware()` uses global OpenTelemetry tracer provider and propagator; use `MiddlewareWithConfig` when the app owns explicit OTel setup.
## Basic Usage
```go
app := echo.New()
app.Use(echootelmiddleware.Middleware())
```
Use explicit config when a tracer provider or propagator is constructed by the application:
```go
app.Use(echootelmiddleware.MiddlewareWithConfig(echootelmiddleware.OtelConfig{
TracerProvider: tp,
Propagator: otel.GetTextMapPropagator(),
}))
```
## Config Defaults
- `TracerProvider`: `otel.GetTracerProvider()`.
- `Propagator`: `otel.GetTextMapPropagator()`.
- `Skipper`: Echo `middleware.DefaultSkipper`.
- `BodySkipper`: no-op, returns `false, false`.
- `AreHeadersDump`: `true`.
- `IsBodyDump`: `false`.
- `RemoveNewLines`: `false`.
- `LimitNameSize` and `LimitValueSize`: `0`, meaning unlimited.
## Safe Body Dumping
- Body dumping is opt-in with `IsBodyDump: true` because it can capture PII, tokens, and secrets.
- Prefer `BodySkipper` to exclude sensitive endpoints, compressed bodies, uploads, auth payloads, or large responses.
- `BodySkipper` only runs when `IsBodyDump` is true and returns `(skipReqBody, skipRespBody)`.
```go
BodySkipper: func(c *echo.Context) (bool, bool) {
if c.Request().Header.Get("Content-Encoding") == "gzip" {
return true, true
}
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Essentials → Basic Usage → Config Defaults → Safe Body Dumping → Attribute Limits → Do Not Assume
terms -> - Import path must include /v2: github.com/adlandh/echo-otel-middleware/v2. · - TracerProvider: otel.GetTracerProvider(). · - Body dumping is opt-in with IsBodyDump: true because it can capture PII, tokens, and secrets. · - LimitNameSize and LimitValueSize are byte-based, not rune-based. · - Metrics are not implemented in this middleware; do not add or document metrics unless explicitly requested.
files/cmd -> github.com/adlandh/echo-otel-middleware/v2 · /v2 · echootelmiddleware · github.com/labstack/echo/v5 · echo.Context · Middleware() · MiddlewareWithConfig · TracerProvider
body sha256 -> ebb54b593f29
Decide Fit First
Design Intent
How To Use It
Boundaries And Review