Add smoke test for logs signal (#5108)
* add smoke test for logs signal * very important to remove the unused variable in the groovy test * run on LTS jdks
This commit is contained in:
parent
6eeb6ccfd0
commit
7266aefb58
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.smoketest
|
||||
|
||||
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest
|
||||
import java.time.Duration
|
||||
import spock.lang.IgnoreIf
|
||||
|
||||
import static io.opentelemetry.smoketest.TestContainerManager.useWindowsContainers
|
||||
import static java.util.stream.Collectors.toList
|
||||
|
||||
@IgnoreIf({ useWindowsContainers() })
|
||||
class LogsSmokeTest extends SmokeTest {
|
||||
|
||||
protected String getTargetImage(String jdk) {
|
||||
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk$jdk-20211213.1570880324"
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, String> getExtraEnv() {
|
||||
return Map.of("OTEL_LOGS_EXPORTER", "otlp")
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TargetWaitStrategy getWaitStrategy() {
|
||||
return new TargetWaitStrategy.Log(Duration.ofMinutes(1), ".*Started SpringbootApplication in.*")
|
||||
}
|
||||
|
||||
def "Should export logs"(int jdk) {
|
||||
setup:
|
||||
startTarget(jdk)
|
||||
|
||||
when:
|
||||
client().get("/greeting").aggregate().join()
|
||||
Collection<ExportLogsServiceRequest> logs = waitForLogs()
|
||||
|
||||
then:
|
||||
logs.size() > 0
|
||||
|
||||
def logRecords = logs.stream()
|
||||
.flatMap(log -> log.getResourceLogsList().stream())
|
||||
.flatMap(log -> log.getInstrumentationLibraryLogsList().stream())
|
||||
.flatMap(log -> log.getLogsList().stream())
|
||||
.collect(toList())
|
||||
logRecords.size() >= logs.size()
|
||||
|
||||
cleanup:
|
||||
stopTarget()
|
||||
|
||||
where:
|
||||
jdk << [8, 11, 17]
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.smoketest
|
||||
|
||||
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest
|
||||
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest
|
||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest
|
||||
import io.opentelemetry.proto.common.v1.AnyValue
|
||||
|
@ -121,6 +122,10 @@ abstract class SmokeTest extends Specification {
|
|||
return telemetryRetriever.waitForMetrics()
|
||||
}
|
||||
|
||||
protected Collection<ExportLogsServiceRequest> waitForLogs() {
|
||||
return telemetryRetriever.waitForLogs()
|
||||
}
|
||||
|
||||
protected static Set<String> getLoggedTraceIds(ToStringConsumer output) {
|
||||
output.toUtf8String().lines()
|
||||
.flatMap(SmokeTest.&findTraceId)
|
||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.smoketest
|
|||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.google.protobuf.GeneratedMessageV3
|
||||
import com.google.protobuf.util.JsonFormat
|
||||
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest
|
||||
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest
|
||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest
|
||||
import io.opentelemetry.testing.internal.armeria.client.WebClient
|
||||
|
@ -37,6 +38,10 @@ class TelemetryRetriever {
|
|||
return waitForTelemetry("get-metrics", { ExportMetricsServiceRequest.newBuilder() })
|
||||
}
|
||||
|
||||
Collection<ExportLogsServiceRequest> waitForLogs() {
|
||||
return waitForTelemetry("get-logs", { ExportLogsServiceRequest.newBuilder() })
|
||||
}
|
||||
|
||||
private <T extends GeneratedMessageV3, B extends GeneratedMessageV3.Builder> Collection<T> waitForTelemetry(String path, Supplier<B> builderConstructor) {
|
||||
def content = waitForContent(path)
|
||||
|
||||
|
|
Loading…
Reference in New Issue