Polish "Support Otlp Tracing's GRPC port from service connections"

See gh-41333
This commit is contained in:
Moritz Halbritter
2024-09-06 11:59:05 +02:00
parent 7baa553760
commit bac330354b
10 changed files with 59 additions and 42 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.otlp;
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
import org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.testsupport.container.TestImage;
@@ -32,7 +33,8 @@ class GrafanaOpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegratio
@DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.GRAFANA_OTEL_LGTM)
void runCreatesConnectionDetails(OtlpTracingConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUrl()).startsWith("http://").endsWith("/v1/traces");
assertThat(connectionDetails.getUrl(Transport.HTTP)).startsWith("http://").endsWith("/v1/traces");
assertThat(connectionDetails.getUrl(Transport.GRPC)).startsWith("http://").endsWith("/v1/traces");
}
}

View File

@@ -16,6 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.otlp;
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
import org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.testsupport.container.TestImage;
@@ -32,8 +33,8 @@ class OpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests
@DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.OPENTELEMETRY)
void runCreatesConnectionDetails(OtlpTracingConnectionDetails connectionDetails) {
assertThat(connectionDetails.getGrpcEndpoint()).startsWith("http://").endsWith("/v1/traces");
assertThat(connectionDetails.getUrl()).startsWith("http://").endsWith("/v1/traces");
assertThat(connectionDetails.getUrl(Transport.HTTP)).startsWith("http://").endsWith("/v1/traces");
assertThat(connectionDetails.getUrl(Transport.GRPC)).startsWith("http://").endsWith("/v1/traces");
}
}

View File

@@ -16,6 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.otlp;
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
import org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails;
import org.springframework.boot.docker.compose.core.RunningService;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory;
@@ -26,6 +27,7 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeC
* {@link OtlpTracingConnectionDetails} for an OTLP service.
*
* @author Eddú Meléndez
* @author Moritz Halbritter
*/
class OpenTelemetryTracingDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<OtlpTracingConnectionDetails> {
@@ -64,13 +66,12 @@ class OpenTelemetryTracingDockerComposeConnectionDetailsFactory
}
@Override
public String getUrl() {
return "http://%s:%d/v1/traces".formatted(this.host, this.httPort);
}
@Override
public String getGrpcEndpoint() {
return "http://%s:%d/v1/traces".formatted(this.host, this.grpcPort);
public String getUrl(Transport transport) {
int port = switch (transport) {
case HTTP -> this.httPort;
case GRPC -> this.grpcPort;
};
return "http://%s:%d/v1/traces".formatted(this.host, port);
}
}