Where the OTLP endpoint points, by running context One OpenObserve store is reached under a different host name depending on where the emitter runs: localhost from a plain host run, the compose service name openobserve from a bridge-networked container, and localhost again from a host-networked container where the compose DNS name would not resolve. The port is the one the store publishes (services.openobserve.port); only a bridge-networked container reaches it on the image's fixed listen port, 5080. WHERE THE EMITTER RUNS ONE STORE the agent on your host osprey web / osprey query host resolves to localhost bridge-networked container the containerized dispatch worker host must be openobserve, port must be 5080 host-networked container network_mode: host host must be localhost leave OSPREY_OTEL_OPENOBSERVE_HOST unset OSPREY_OTEL_OPENOBSERVE_HOST=openobserve OSPREY_OTEL_OPENOBSERVE_HOST=localhost OpenObserve http://<host>:<port>/api/<org> one store, reached by three names the port follows services.openobserve.port — only the bridge case uses the image's fixed 5080; do not hardcode endpoint: hardcoding endpoint: points every context at one host and silently drops the records from the others