Skip to content

Conversation

@lxfontes
Copy link
Member

Sets up OTEL for logs / traces ( no metrics yet ).

OTEL configuration is driven by SDK environment variables.

We are tracking:

  • Scheduling: Workload start / status / stop
  • Wasm Entrypoints: http server and wasmcloud messaging
  • Plugins lifecycle: bind / unbind operations

For Plugin Authors: Any HostApi interaction is observed by the runtime, so no need to instrument those unless you're enriching context.

An example setup would look like:

Start Aspire Dashboard ( Otel receiver ) with

docker run --rm -it \
    -p 18888:18888 -p 5318:18889 \
    --name aspire-dashboard \
    -e DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS="true" \
    -e ASPIRE_ALLOW_UNSECURED_TRANSPORT=true \
    mcr.microsoft.com/dotnet/aspire-dashboard:9.1

Configure Otel:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:5318
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

Start wash:

cargo run --  -C ./examples/blobby dev

You should be able to see:

Screenshot 2026-01-27 at 3 07 08 PM

@lxfontes lxfontes requested a review from a team as a code owner January 27, 2026 20:10
@if0ne
Copy link
Contributor

if0ne commented Jan 28, 2026

I've been waiting for this. Could you add support for passing metadata map values from cli/env? https://docs.rs/tonic/latest/tonic/metadata/struct.MetadataMap.html

I want to use OpenObserve for observability, and it requires basic authentication headers.

@lxfontes
Copy link
Member Author

@if0ne metadata as in http headers or host/workload attributes?

for headers: the current code will respect https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_headers so basic auth is `export OTEL_EXPORTER_OTLP_HEADERS="Authorization: Bearer xxxx"

for metadata, was thinking of surfacing all or a subset of workloads' annotations as they can be enriched at many layers ( kube crd, operator itself, host ).

@if0ne
Copy link
Contributor

if0ne commented Jan 28, 2026

@if0ne metadata as in http headers or host/workload attributes?

for headers: the current code will respect https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_headers so basic auth is `export OTEL_EXPORTER_OTLP_HEADERS="Authorization: Bearer xxxx"

for metadata, was thinking of surfacing all or a subset of workloads' annotations as they can be enriched at many layers ( kube crd, operator itself, host ).

As http headers. Thanks, I didn’t notice this env.

lxfontes and others added 7 commits January 28, 2026 15:19
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
Signed-off-by: Bailey Hayes <bailey@cosmonic.com>
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
@lxfontes lxfontes force-pushed the lxfontes/otel-onboard branch from 7ea6c46 to 035d88c Compare January 28, 2026 20:42
Signed-off-by: Lucas Fontes <lucas@cosmonic.com>
@lxfontes lxfontes added this pull request to the merge queue Jan 28, 2026
Merged via the queue into main with commit f42ca54 Jan 28, 2026
9 checks passed
@lxfontes lxfontes deleted the lxfontes/otel-onboard branch January 28, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants