Hello everyone,
We are running Rust in compute and for opentelemetry we currently use the log streaming endpoint that exists for honeycomb, but now we want to use a dedicated collector for better sampling.
I know there is a library for the JS compute implementation (GitHub - fastly/compute-js-opentelemetry: An implementation of OpenTelemetry for Fastly Compute) but is there also a library for Rust we could use to send opentelemetry traces via OTLP to our collector?
Thanks in advance
Martin
Unfortunately the answer is no, we have not produced implementations in Rust or in Go, only the one in JavaScript. Keep in mind that the JS implementation is a not full OTel client, it’s a wrapper around an existing client which adapts that client to the Fastly Compute platform (in particular the handling of outbound HTTP requests).
The opentelemetry-otlp crate for Rust makes use of reqwest to make its outbound HTTP requests; I’ll ask around to see if we’ve got any sharable examples for that.
One of our developers made a version of that crate with Fastly Compute support, but unfortunately it still can’t be used because the code in the crate makes use of threads - and that requires support for wasm32-wasip2, but our platform only supports wasm32-wasip1 today. If you can find other suitable crates they might have less built-in functionality and be more compatible with the Compute platform.
Thanks for looking into it Kevin. We look for a workaround within the HTTPS log stream endpoint. The collector supports also a variety of other inputs, so maybe we could use to our advantage.
Do you know when your platform will support wasm32-wasip2?
We do not have any information to share about that support.