Skip to content

Commit

Permalink
bug: opentelemetry-exporter-jaeger gone (#2438)
Browse files Browse the repository at this point in the history
* bug: opentelemetry-exporter-jaeger gone

see: micronaut-projects/micronaut-tracing#539

* add more testing
  • Loading branch information
sdelamo authored Apr 15, 2024
1 parent 2f746e8 commit 7a8d1c1
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ public String getDescription() {
@Override
public void apply(GeneratorContext generatorContext) {
generatorContext.addDependency(exporterDependency());
addConfiguration(generatorContext);
}

protected void addConfiguration(GeneratorContext generatorContext) {
generatorContext.getConfiguration().addCommaSeparatedValue("otel.traces.exporter", exporterValue());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,35 @@
package io.micronaut.starter.feature.opentelemetry;

import io.micronaut.core.annotation.NonNull;
import io.micronaut.starter.application.generator.GeneratorContext;
import jakarta.inject.Singleton;

import java.util.Locale;

@Singleton
public class OpenTelemetryExporterJaeger extends OpenTelemetryExporterFeature {
private static final String EXPORTER_JAEGER = "Jaeger";

@NonNull
@Override
public String getName() {
return "tracing-opentelemetry-exporter-" + EXPORTER_JAEGER.toLowerCase(Locale.ROOT);
}

@NonNull
@Override
public String getTitle() {
return "OpenTelemetry Exporter " + EXPORTER_JAEGER;
}

@NonNull
public String exporterName() {
return EXPORTER_JAEGER;
return OpenTelemetryExporterOtlp.EXPORTER_OTLP;
}

@Override
protected void addConfiguration(GeneratorContext generatorContext) {
super.addConfiguration(generatorContext);
generatorContext.getConfiguration().put("otel.exporter.otlp.endpoint", "http://localhost:4317");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

@Singleton
public class OpenTelemetryExporterOtlp extends OpenTelemetryExporterFeature {
private static final String EXPORTER_OTLP = "OTLP";
public static final String EXPORTER_OTLP = "OTLP";

@NonNull
public String exporterName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import io.micronaut.starter.ApplicationContextSpec
import io.micronaut.starter.BuildBuilder
import io.micronaut.starter.application.ApplicationType
import io.micronaut.starter.application.generator.GeneratorContext
import io.micronaut.starter.build.BuildTestUtil
import io.micronaut.starter.build.BuildTestVerifier
import io.micronaut.starter.feature.Category
import io.micronaut.starter.fixture.CommandOutputFixture
import io.micronaut.starter.options.BuildTool
Expand Down Expand Up @@ -31,7 +33,9 @@ class OpenTelemetryExporterJaegerSpec extends ApplicationContextSpec implements
GeneratorContext commandContext = buildGeneratorContext(['tracing-opentelemetry-exporter-jaeger'])

then:
commandContext.configuration.get('otel.traces.exporter') == 'jaeger'
commandContext.configuration.get('otel.traces.exporter') == 'otlp'
commandContext.configuration.get('otel.exporter.otlp.endpoint') == 'http://localhost:4317'

}

@Unroll
Expand All @@ -52,36 +56,19 @@ class OpenTelemetryExporterJaegerSpec extends ApplicationContextSpec implements
applicationType << (ApplicationType.values().toList() - ApplicationType.CLI)
}

void 'test gradle tracing-opentelemetry-exporter-jaeger feature for language=#language'(Language language) {
void 'test gradle tracing-opentelemetry-exporter-jaeger feature for language=#language'(Language language, BuildTool buildTool) {
when:
String template = new BuildBuilder(beanContext, BuildTool.GRADLE)
String template = new BuildBuilder(beanContext, buildTool)
.language(language)
.features(['tracing-opentelemetry-exporter-jaeger'])
.render()
BuildTestVerifier verifier = BuildTestUtil.verifier(buildTool, language, template)

then:
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-jaeger")')

where:
language << Language.values().toList()
}

void 'test maven tracing-opentelemetry-exporter-jaeger feature for language=#language'(Language language) {
when:
String template = new BuildBuilder(beanContext, BuildTool.MAVEN)
.language(language)
.features(['tracing-opentelemetry-exporter-jaeger'])
.render()
verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-otlp")
!verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-jaeger")

then:
template.contains("""
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-jaeger</artifactId>
<scope>compile</scope>
</dependency>
""")
where:
language << Language.values().toList()
[language, buildTool] << [Language.values().toList(), BuildTool.values()].combinations()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package io.micronaut.starter.feature.opentelemetry
import io.micronaut.starter.ApplicationContextSpec
import io.micronaut.starter.BuildBuilder
import io.micronaut.starter.application.ApplicationType
import io.micronaut.starter.build.BuildTestUtil
import io.micronaut.starter.build.BuildTestVerifier
import io.micronaut.starter.feature.Category
import io.micronaut.starter.options.BuildTool
import io.micronaut.starter.options.Language
Expand Down Expand Up @@ -33,7 +35,7 @@ class OpenTelemetryJaegerSpec extends ApplicationContextSpec {

then:
assertAnnotationProcessorInGradleTemplate(template, "io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation", language)
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-jaeger")')
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-otlp")')
template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-grpc")')
!template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry")')
!template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")')
Expand All @@ -52,7 +54,7 @@ class OpenTelemetryJaegerSpec extends ApplicationContextSpec {

then:
assertAnnotationProcessorInGradleTemplate(template, "io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation", language)
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-jaeger")')
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-otlp")')
!template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry")')
template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")')
!template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-grpc")')
Expand All @@ -73,7 +75,7 @@ class OpenTelemetryJaegerSpec extends ApplicationContextSpec {

then:
assertAnnotationProcessorInGradleTemplate(template, "io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation", language)
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-jaeger")')
template.contains('implementation("io.opentelemetry:opentelemetry-exporter-otlp")')
template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry")')
!template.contains('implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")')

Expand All @@ -87,67 +89,39 @@ class OpenTelemetryJaegerSpec extends ApplicationContextSpec {

void 'test maven tracing-opentelemetry-jaeger feature for language=#language'(Language language) {
when:
String template = new BuildBuilder(beanContext, BuildTool.MAVEN)
BuildTool buildTool = BuildTool.MAVEN
String template = new BuildBuilder(beanContext, buildTool)
.language(language)
.features(['tracing-opentelemetry-jaeger'])
.render()
BuildTestVerifier verifier = BuildTestUtil.verifier(buildTool, template)

then:
template.contains("""
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-jaeger</artifactId>
<scope>compile</scope>
</dependency>
""")
!template.contains("""
<dependency>
<groupId>io.micronaut.tracing</groupId>
<artifactId>micronaut-tracing-opentelemetry</artifactId>
<scope>compile</scope>
</dependency>
""")
template.contains("""
<dependency>
<groupId>io.micronaut.tracing</groupId>
<artifactId>micronaut-tracing-opentelemetry-http</artifactId>
<scope>compile</scope>
</dependency>
""")
!verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-jaeger")
verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-otlp")
!verifier.hasDependency("io.micronaut.tracing", "micronaut-tracing-opentelemetry")
verifier.hasDependency("io.micronaut.tracing", "micronaut-tracing-opentelemetry-http")

where:
language << Language.values().toList()
}

void 'for function test maven tracing-opentelemetry-jaeger feature for language=#language'(Language language) {
when:
BuildTool buildTool = BuildTool.MAVEN
String template = new BuildBuilder(beanContext, BuildTool.MAVEN)
.applicationType(ApplicationType.FUNCTION)
.language(language)
.features(['tracing-opentelemetry-jaeger'])
.render()
BuildTestVerifier verifier = BuildTestUtil.verifier(buildTool, template)

then:
template.contains("""
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-jaeger</artifactId>
<scope>compile</scope>
</dependency>
""")
template.contains("""
<dependency>
<groupId>io.micronaut.tracing</groupId>
<artifactId>micronaut-tracing-opentelemetry</artifactId>
<scope>compile</scope>
</dependency>
""")
!template.contains("""
<dependency>
<groupId>io.micronaut.tracing</groupId>
<artifactId>micronaut-tracing-opentelemetry-http</artifactId>
<scope>compile</scope>
</dependency>
""")
!verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-jaeger")
verifier.hasDependency("io.opentelemetry", "opentelemetry-exporter-otlp")
verifier.hasDependency("io.micronaut.tracing", "micronaut-tracing-opentelemetry")
!verifier.hasDependency("io.micronaut.tracing", "micronaut-tracing-opentelemetry-http")

where:
language << Language.values().toList()
}
Expand Down

0 comments on commit 7a8d1c1

Please sign in to comment.