Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quarkus LGTM for multiple services #46250

Open
BrianSetz opened this issue Feb 13, 2025 · 1 comment
Open

Quarkus LGTM for multiple services #46250

BrianSetz opened this issue Feb 13, 2025 · 1 comment
Labels
area/metrics kind/enhancement New feature or request

Comments

@BrianSetz
Copy link

Describe the bug

When running multiple services in dev mode, the services can see that LGTM is already running and re-use it:

Service A (starts first, starts LGTM stack)

13:35:52 INFO traceId=, parentId=, spanId=, sampled= [io.qu.ob.de.ObservabilityDevServiceProcessor] (build-52) Dev Service Lgtm started, config: {grafana.endpoint=http://localhost:32845, quarkus.otel.exporter.otlp.endpoint=http://localhost:32843, otel-collector.url=localhost:32843, quarkus.otel.exporter.otlp.protocol=http/protobuf}

Service B (start second, find existing LGTM stack)

13:45:08 INFO traceId=, parentId=, spanId=, sampled= [io.qu.ob.de.ObservabilityDevServiceProcessor] (build-41) Dev Service Lgtm re-used, config: {grafana.endpoint=http://localhost:32845, otel-collector.url=localhost:32843}

But, only the first service (Service A) is configured correctly:

Image

Service B is not:

Image

Resulting in Service B reporting:

13:45:45 WARNING traceId=, parentId=, spanId=, sampled= [io.qu.op.ru.ex.ot.se.VertxGrpcSender] (vert.x-eventloop-thread-5) Failed to export TraceRequestMarshalers. The request could not be executed. Full error message: Connection refused: localhost/127.0.0.1:4317

Which makes sense, sort of, since the collector is running on port 32843, and not 4317.

Looking at the logs, the config for Service A is set to config: {grafana.endpoint=http://localhost:32845, quarkus.otel.exporter.otlp.endpoint=http://localhost:32843, otel-collector.url=localhost:32843, quarkus.otel.exporter.otlp.protocol=http/protobuf} where as Service B only receives config: {grafana.endpoint=http://localhost:32845, otel-collector.url=localhost:32843} which isn't all the options it needs?

Expected behavior

Running two services in dev mode while using LGTM should allow both services to discover the LGTM stack and connect to the correct ports.

Actual behavior

Only the first service connects to the right ports, all other services do not discover the ports correctly.

How to Reproduce?

Reproducer:

  1. Start one LGTM-enabled service
  2. Start another LGTM-enabled service
  3. Open dev UI and inspect configuration, e.g. look at quarkus.otel.exporter.otlp.endpoint

Output of uname -a or ver

Linux p15v 6.8.0-52-generic #53-Ubuntu SMP PREEMPT_DYNAMIC Sat Jan 11 00:06:25 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Output of java -version

OpenJDK 21

Quarkus version or git rev

3.18.2

Build tool (ie. output of mvnw --version or gradlew --version)

Gradle 8.12.1

Additional information

No response

@BrianSetz BrianSetz added the kind/bug Something isn't working label Feb 13, 2025
@BrianSetz BrianSetz changed the title LGTM multiple services Quarkus LGTM for multiple services Feb 13, 2025
Copy link

quarkus-bot bot commented Feb 13, 2025

/cc @brunobat (micrometer), @ebullient (metrics,micrometer), @jmartisk (metrics)

@geoand geoand added kind/enhancement New feature or request and removed kind/bug Something isn't working labels Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/metrics kind/enhancement New feature or request
Projects
Status: Todo
Status: No status
Development

No branches or pull requests

2 participants