Skip to main content

Spring

Spring Boot apps export OpenTelemetry over OTLP to the avuru gateway. The eBPF sensor already maps the service; this adds rich in-process spans (HTTP routes, JDBC statements, custom business spans).

Quick start

# Flagship install — the chart is published to GHCR as an OCI artifact,
# eBPF auto-discovers your services. No repo to add.
helm install avuruobs oci://ghcr.io/avuruvision/charts/avuruobs \
--version <X.Y.Z> -n avuruobs --create-namespace

# Point apps at the gateway (OTLP):
# http://avuruobs-gateway:4318 (HTTP)
# http://avuruobs-gateway:4317 (gRPC)

# Open the UI:
kubectl -n avuruobs port-forward svc/avuruobs-ui 8080:80

Add the OpenTelemetry Java agent (zero-code) and point it at the gateway:

java -javaagent:opentelemetry-javaagent.jar \
-Dotel.exporter.otlp.endpoint=http://avuruobs-gateway:4318 \
-Dotel.service.name=checkout \
-jar checkout.jar

Signals collected

SignalStatusNotes
Traces✅ SupportedHTTP, JDBC, custom spans
Metrics✅ SupportedJVM + HTTP server metrics
Logs⚠️ PartialVia OTLP log appender
Profiling❌ NoUse the eBPF profiler instead

Configuration

⚙️ Config builder

Interactive builder for schema integrations/spring is coming soon. For now, copy the YAML from the example below and edit it by hand.

otel.exporter.otlp.endpoint=http://avuruobs-gateway:4318
otel.exporter.otlp.protocol=http/protobuf
otel.service.name=checkout
otel.resource.attributes=deployment.environment=prod

Verification

# Drive a request, then look for the service in the avuru UI → Service Map.
curl -s http://localhost:8080/api/checkout >/dev/null

The checkout service should appear with in-process spans nested under the eBPF-discovered trace.

Troubleshooting

  • No spans? Confirm the agent endpoint and that the gateway is reachable from the pod (:4318).
  • Service name unknown_service:java? Set otel.service.name.
  • Logs missing? The OTLP log appender is opt-in; wire it in logback.xml.

References