From b5b5bc512b3396b42e4b33cdd9a88906ffdbba00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B8=D0=BC=D0=B8=D0=BD?= Date: Sun, 3 May 2026 22:19:32 +0300 Subject: [PATCH] fix(otel): use OTLP HTTP/protobuf to tempo:4318 instead of gRPC:4317 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stack trace showed io.opentelemetry.exporter.internal.http.HttpExporter sending to :4317 — Tempo on 4317 expects gRPC frames, gets HTTP, sends RST. Switch endpoint to :4318 (Tempo OTLP HTTP receiver) and protocol to http/protobuf so the SDK and Tempo speak the same protocol. The gRPC config never took effect — Spring Boot SDK on micrometer-tracing- otlp pulls in only the HTTP exporter by default; gRPC needs the explicit opentelemetry-exporter-otlp jar. --- ordinis-app/src/main/resources/application.yml | 4 ++-- ordinis-read-api/src/main/resources/application.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ordinis-app/src/main/resources/application.yml b/ordinis-app/src/main/resources/application.yml index 24acf7a..1b5078f 100644 --- a/ordinis-app/src/main/resources/application.yml +++ b/ordinis-app/src/main/resources/application.yml @@ -36,8 +36,8 @@ management: otel: exporter: otlp: - endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://tempo.monitoring:4317} - protocol: grpc + endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://tempo.monitoring:4318} + protocol: http/protobuf resource: attributes: service.name: ${spring.application.name} diff --git a/ordinis-read-api/src/main/resources/application.yml b/ordinis-read-api/src/main/resources/application.yml index 0899ebb..438f216 100644 --- a/ordinis-read-api/src/main/resources/application.yml +++ b/ordinis-read-api/src/main/resources/application.yml @@ -35,7 +35,7 @@ management: otel: exporter: otlp: - endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://tempo.monitoring:4317} + endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://tempo.monitoring:4318} resource: attributes: service.name: ${spring.application.name}