OpenTelemetry support
Trace export, backend compatibility, data controls, and operational limits.
OpenTelemetry support
GoodMem exports server traces through OpenTelemetry (OTel) for API requests, retrieval stages, provider calls, and background job attempts. Export is off by default.
Supported signals
| Signal | GoodMem support |
|---|---|
| Traces | Built-in instrumentation with OTLP export over gRPC or HTTP/protobuf |
| Metrics | The existing Micrometer metrics use the Prometheus /metrics endpoint |
| Logs | Application logs include trace and span IDs when a span is current |
The OTel metric and log exporter settings control separate SDK signals; GoodMem keeps its existing metrics and logs on their current paths. See Server Runtime Footprint for metrics endpoint authentication.
Backend compatibility
GoodMem uses the neutral export profile by default, while the langfuse and langsmith profiles add destination-specific metadata.
The exporter and endpoint settings control where spans go.
| Backend | Version or last verified | Scope |
|---|---|---|
| Jaeger | 2.21 | Neutral profile |
| Tempo | 3.0.3 | Neutral profile |
| Langfuse | 4.46 | Langfuse profile |
| LangSmith | September 2026 | LangSmith profile, link mode |
An OTLP-compatible collector can also route traces to other destinations, such as Datadog or Honeycomb, which we did not verify. Use the destination documentation for its collector exporter and authentication.
Trace data
Traces contain operation names, durations, outcomes, counts, and selected provider metadata, plus principal, API-key, resource, memory, and space identifiers where available. The API-key field contains its UUID. These identifiers can reveal sensitive activity. Restrict access to the collector and backend.
GoodMem trace instrumentation excludes query text, memory content, prompts, generated text, credentials, authentication headers, and SQL bind values. This integration has no content-capture option, so backend input and output panels remain empty. The exporter removes raw exception messages, exception stack traces, and free-form span status descriptions but retains exception types.
Incoming trace context supplies correlation data only; GoodMem authenticates and authorizes each request independently. Remote baggage is off by default.
Operational limits
GoodMem reads telemetry configuration at startup and continues to serve requests if SDK initialization fails. In that case, it disables export and emits a sanitized diagnostic. Use the delivery checks to confirm that spans reach the backend.
A bounded queue holds spans for batch export. Export failures, saturation, or a forced exit can lose spans. Shutdown drains application work before a short, bounded final export. For planned stops, follow the drain and container-stop guidance. For persistent retrieval records, use RetrieveMemory Query Logging, which has separate content controls and retention settings.
Attribute compatibility
goodmem.* attribute names remain stable within a minor version: GoodMem can add names but does not delete or rename existing ones.
The upstream GenAI conventions remain in development; their names and vendor aliases fall outside the GoodMem stability guarantee. See Spans, attributes, and outcomes for the generated attribute inventory.
Connect application traces
One shared application-and-GoodMem trace requires the default parent policy and a caller transport that supplies W3C trace context.
The link policy creates a separate trace with a caller link.
See Connect the caller trace for REST, gRPC, and MCP transport requirements.