fix(microgpt-serve): use reqwest-blocking-client for OTLP exporter#1100
Merged
fix(microgpt-serve): use reqwest-blocking-client for OTLP exporter#1100
Conversation
The previous fix dropped `rt-tokio` from opentelemetry_sdk to stop the PeriodicReader from using tokio::time, but the OTLP HTTP exporter was still using `reqwest-client` (async reqwest), which also requires a Tokio reactor. When the PeriodicReader OS thread fires its export, it calls into async reqwest with no runtime present, causing the same "no reactor running" panic. Switch to `reqwest-blocking-client` so the entire OTel export path is synchronous and reactor-free. Verified locally: service starts without panic under OTEL_METRIC_EXPORT_INTERVAL=2000ms with a real model.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
rt-tokiofromopentelemetry_sdkto stop thePeriodicReaderfrom usingtokio::time, but the OTLP HTTP exporter was still usingreqwest-client(async reqwest), which also requires a Tokio reactorPeriodicReaderOS thread fires its export, it calls into async reqwest with no runtime present, causing the same "no reactor running" panicreqwest-blocking-clientso the entire OTel export path is synchronous and reactor-freeTest plan
cargo build -p microgpt_serve)OTEL_METRIC_EXPORT_INTERVAL=2000and a real model — no panic after multiple export cycles