Update to otel-java 0.6.0 (#662)
* Working against otel-java 0.6.0-SNAPSHOT * Muzzle fix * Better comment * Now works with otel-java 0.6.0 * Fix muzzle
This commit is contained in:
parent
8fa37618a0
commit
d96a771dd0
|
@ -230,8 +230,11 @@ public abstract class HttpServerTracer<REQUEST, CONNECTION, STORAGE> {
|
|||
}
|
||||
|
||||
private <C> SpanContext extract(final C carrier, final HttpTextFormat.Getter<C> getter) {
|
||||
// Using Context.ROOT here may be quite unexpected, but the reason is simple.
|
||||
// We want either span context extracted from the carrier or invalid one.
|
||||
// We DO NOT want any span context potentially lingering in the current context.
|
||||
final Context context =
|
||||
getPropagators().getHttpTextFormat().extract(Context.current(), carrier, getter);
|
||||
getPropagators().getHttpTextFormat().extract(Context.ROOT, carrier, getter);
|
||||
final Span span = getSpan(context);
|
||||
return span.getContext();
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ package io.opentelemetry.auto.tooling;
|
|||
|
||||
import io.opentelemetry.auto.config.Config;
|
||||
|
||||
public class DefaultExporterConfig implements io.opentelemetry.sdk.contrib.auto.config.Config {
|
||||
public class DefaultExporterConfig implements io.opentelemetry.sdk.extensions.auto.config.Config {
|
||||
private final String prefix;
|
||||
|
||||
public DefaultExporterConfig(final String prefix) {
|
||||
|
|
|
@ -69,9 +69,9 @@ public class ExporterClassLoader extends URLClassLoader {
|
|||
// A small hack to prevent other exporters from being loaded by this classloader if they
|
||||
// should happen to appear on the classpath.
|
||||
if (name.equals(
|
||||
"META-INF/services/io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory")
|
||||
"META-INF/services/io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory")
|
||||
|| name.equals(
|
||||
"META-INF/services/io.opentelemetry.sdk.contrib.auto.config.MetricExporterFactory")) {
|
||||
"META-INF/services/io.opentelemetry.sdk.extensions.auto.config.MetricExporterFactory")) {
|
||||
return findResources(name);
|
||||
}
|
||||
return super.getResources(name);
|
||||
|
|
|
@ -20,8 +20,8 @@ import com.google.common.collect.ImmutableMap;
|
|||
import io.opentelemetry.OpenTelemetry;
|
||||
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
||||
import io.opentelemetry.context.propagation.HttpTextFormat;
|
||||
import io.opentelemetry.contrib.trace.propagation.B3Propagator;
|
||||
import io.opentelemetry.contrib.trace.propagation.JaegerPropagator;
|
||||
import io.opentelemetry.extensions.trace.propagation.B3Propagator;
|
||||
import io.opentelemetry.extensions.trace.propagation.JaegerPropagator;
|
||||
import io.opentelemetry.trace.propagation.HttpTraceContext;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
|
@ -19,8 +19,8 @@ package io.opentelemetry.auto.tooling;
|
|||
import io.opentelemetry.auto.bootstrap.spi.TracerCustomizer;
|
||||
import io.opentelemetry.auto.config.Config;
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.MetricExporterFactory;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.MetricExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.metrics.export.IntervalMetricReader;
|
||||
import io.opentelemetry.sdk.metrics.export.MetricExporter;
|
||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
package io.opentelemetry.auto.typed.base;
|
||||
|
||||
import io.opentelemetry.common.AttributeValue;
|
||||
import io.opentelemetry.common.Attributes;
|
||||
import io.opentelemetry.trace.EndSpanOptions;
|
||||
import io.opentelemetry.trace.Event;
|
||||
import io.opentelemetry.trace.Span;
|
||||
import io.opentelemetry.trace.SpanContext;
|
||||
import io.opentelemetry.trace.Status;
|
||||
import java.util.Map;
|
||||
|
||||
// TODO: This should be moved into the API.
|
||||
public class DelegatingSpan implements Span {
|
||||
|
@ -68,13 +68,12 @@ public class DelegatingSpan implements Span {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addEvent(final String name, final Map<String, AttributeValue> attributes) {
|
||||
public void addEvent(final String name, final Attributes attributes) {
|
||||
delegate.addEvent(name, attributes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEvent(
|
||||
final String name, final Map<String, AttributeValue> attributes, final long timestamp) {
|
||||
public void addEvent(final String name, final Attributes attributes, final long timestamp) {
|
||||
delegate.addEvent(name, attributes, timestamp);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,10 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.tooling
|
||||
|
||||
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config
|
||||
import io.opentelemetry.sdk.contrib.auto.config.MetricExporterFactory
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config
|
||||
import io.opentelemetry.sdk.extensions.auto.config.MetricExporterFactory
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory
|
||||
import io.opentelemetry.sdk.metrics.export.MetricExporter
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter
|
||||
import java.nio.charset.StandardCharsets
|
||||
|
|
|
@ -18,8 +18,8 @@ package io.opentelemetry.auto.exporters.jaeger;
|
|||
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.opentelemetry.exporters.jaeger.JaegerGrpcSpanExporter;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter;
|
||||
|
||||
public class JaegerExporterFactory implements SpanExporterFactory {
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
package io.opentelemetry.auto.exporters.logging;
|
||||
|
||||
import io.opentelemetry.common.AttributeValue;
|
||||
import io.opentelemetry.common.ReadableKeyValuePairs.KeyValueConsumer;
|
||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public class LoggingExporter implements SpanExporter {
|
||||
private final String prefix;
|
||||
|
@ -34,25 +34,29 @@ public class LoggingExporter implements SpanExporter {
|
|||
for (final SpanData span : list) {
|
||||
System.out.print(
|
||||
prefix + " " + span.getName() + " " + span.getSpanId().toLowerBase16() + " ");
|
||||
for (final Map.Entry<String, AttributeValue> attr : span.getAttributes().entrySet()) {
|
||||
System.out.print(attr.getKey() + "=");
|
||||
final AttributeValue value = attr.getValue();
|
||||
switch (value.getType()) {
|
||||
case STRING:
|
||||
System.out.print('"' + value.getStringValue() + '"');
|
||||
break;
|
||||
case BOOLEAN:
|
||||
System.out.print(value.getBooleanValue());
|
||||
break;
|
||||
case LONG:
|
||||
System.out.print(value.getLongValue());
|
||||
break;
|
||||
case DOUBLE:
|
||||
System.out.print(value.getDoubleValue());
|
||||
break;
|
||||
}
|
||||
System.out.print(" ");
|
||||
}
|
||||
span.getAttributes()
|
||||
.forEach(
|
||||
new KeyValueConsumer<AttributeValue>() {
|
||||
@Override
|
||||
public void consume(String key, AttributeValue value) {
|
||||
System.out.print(key + "=");
|
||||
switch (value.getType()) {
|
||||
case STRING:
|
||||
System.out.print('"' + value.getStringValue() + '"');
|
||||
break;
|
||||
case BOOLEAN:
|
||||
System.out.print(value.getBooleanValue());
|
||||
break;
|
||||
case LONG:
|
||||
System.out.print(value.getLongValue());
|
||||
break;
|
||||
case DOUBLE:
|
||||
System.out.print(value.getDoubleValue());
|
||||
break;
|
||||
}
|
||||
System.out.print(" ");
|
||||
}
|
||||
});
|
||||
}
|
||||
System.out.println();
|
||||
return ResultCode.SUCCESS;
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.exporters.logging;
|
||||
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter;
|
||||
|
||||
public class LoggingExporterFactory implements SpanExporterFactory {
|
||||
|
|
|
@ -18,8 +18,8 @@ package io.opentelemetry.auto.exporters.otlp;
|
|||
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.opentelemetry.exporters.otlp.OtlpGrpcMetricExporter;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.MetricExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.MetricExporterFactory;
|
||||
import io.opentelemetry.sdk.metrics.export.MetricExporter;
|
||||
|
||||
public class OtlpMetricExporterFactory implements MetricExporterFactory {
|
||||
|
|
|
@ -18,8 +18,8 @@ package io.opentelemetry.auto.exporters.otlp;
|
|||
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.opentelemetry.exporters.otlp.OtlpGrpcSpanExporter;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter;
|
||||
|
||||
public class OtlpSpanExporterFactory implements SpanExporterFactory {
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
import io.opentelemetry.auto.tooling.ExporterClassLoader
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory
|
||||
import spock.lang.Shared
|
||||
import spock.lang.Specification
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
package io.opentelemetry.auto.exporters.zipkin;
|
||||
|
||||
import io.opentelemetry.exporters.zipkin.ZipkinSpanExporter;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.Config;
|
||||
import io.opentelemetry.sdk.contrib.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.Config;
|
||||
import io.opentelemetry.sdk.extensions.auto.config.SpanExporterFactory;
|
||||
import io.opentelemetry.sdk.trace.export.SpanExporter;
|
||||
import zipkin2.reporter.okhttp3.OkHttpSender;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ configurations.all {
|
|||
|
||||
ext {
|
||||
versions = [
|
||||
opentelemetry: '0.5.0',
|
||||
opentelemetry: '0.6.0',
|
||||
|
||||
slf4j : "1.7.30",
|
||||
guava : "20.0", // Last version to support Java 7
|
||||
|
@ -26,10 +26,10 @@ ext {
|
|||
deps = [
|
||||
// OpenTelemetry
|
||||
opentelemetryApi : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-api', version: versions.opentelemetry),
|
||||
opentelemetryApiAutoAnnotations: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-contrib-auto-annotations', version: versions.opentelemetry),
|
||||
opentelemetryTraceProps : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-contrib-trace-propagators', version: versions.opentelemetry),
|
||||
opentelemetryApiAutoAnnotations: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-extension-auto-annotations', version: versions.opentelemetry),
|
||||
opentelemetryTraceProps : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-extension-trace-propagators', version: versions.opentelemetry),
|
||||
opentelemetrySdk : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk', version: versions.opentelemetry),
|
||||
opentelemetrySdkAutoConfig : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-contrib-auto-config', version: versions.opentelemetry),
|
||||
opentelemetrySdkAutoConfig : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-extension-auto-config', version: versions.opentelemetry),
|
||||
opentelemetryJaeger : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporters-jaeger', version: versions.opentelemetry),
|
||||
opentelemetryOtlp : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporters-otlp', version: versions.opentelemetry),
|
||||
opentelemetryZipkin : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporters-zipkin', version: versions.opentelemetry),
|
||||
|
|
|
@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/instrumentation.gradle"
|
|||
muzzle {
|
||||
pass {
|
||||
group = "io.opentelemetry"
|
||||
module = "opentelemetry-contrib-auto-annotations"
|
||||
module = "opentelemetry-extension-auto-annotations"
|
||||
versions = "(,)"
|
||||
extraDependency 'io.opentracing.contrib.dropwizard:dropwizard-opentracing:0.2.2'
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ package io.opentelemetry.auto.instrumentation.traceannotation;
|
|||
|
||||
import io.opentelemetry.OpenTelemetry;
|
||||
import io.opentelemetry.auto.bootstrap.instrumentation.decorator.BaseDecorator;
|
||||
import io.opentelemetry.contrib.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.extensions.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.trace.Tracer;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ import net.bytebuddy.asm.Advice;
|
|||
|
||||
/**
|
||||
* Instrumentation for methods annotated with {@link
|
||||
* io.opentelemetry.contrib.auto.annotations.WithSpan} annotation.
|
||||
* io.opentelemetry.extensions.auto.annotations.WithSpan} annotation.
|
||||
*
|
||||
* @see WithSpanAnnotationInstrumentation
|
||||
*/
|
||||
|
|
|
@ -23,7 +23,7 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import io.opentelemetry.auto.tooling.Instrumenter;
|
||||
import io.opentelemetry.contrib.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.extensions.auto.annotations.WithSpan;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.description.annotation.AnnotationSource;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -32,7 +32,7 @@ import net.bytebuddy.matcher.ElementMatcher;
|
|||
|
||||
/**
|
||||
* Instrumentation for methods annotated with {@link
|
||||
* io.opentelemetry.contrib.auto.annotations.WithSpan} annotation. As that is Otel annotation, we
|
||||
* io.opentelemetry.extensions.auto.annotations.WithSpan} annotation. As that is Otel annotation, we
|
||||
* provide full support for all its attributes, as opposed to bare minimum functionality of {@link
|
||||
* TraceAnnotationsInstrumentation} for third party annotations.
|
||||
*/
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
package io.opentelemetry.test.annotation;
|
||||
|
||||
import io.opentelemetry.OpenTelemetry;
|
||||
import io.opentelemetry.contrib.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.extensions.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.trace.Tracer;
|
||||
|
||||
public class TracedWithSpan {
|
||||
|
|
|
@ -36,11 +36,10 @@ import io.grpc.Status;
|
|||
import io.opentelemetry.OpenTelemetry;
|
||||
import io.opentelemetry.auto.instrumentation.grpc.common.GrpcHelper;
|
||||
import io.opentelemetry.common.AttributeValue;
|
||||
import io.opentelemetry.common.Attributes;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.trace.Span;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class TracingClientInterceptor implements ClientInterceptor {
|
||||
|
@ -129,9 +128,10 @@ public class TracingClientInterceptor implements ClientInterceptor {
|
|||
|
||||
@Override
|
||||
public void onMessage(final RespT message) {
|
||||
final Map<String, AttributeValue> attributes = new HashMap<>();
|
||||
attributes.put("message.type", AttributeValue.stringAttributeValue("SENT"));
|
||||
attributes.put("message.id", AttributeValue.longAttributeValue(messageId.incrementAndGet()));
|
||||
Attributes attributes =
|
||||
Attributes.of(
|
||||
"message.type", AttributeValue.stringAttributeValue("SENT"),
|
||||
"message.id", AttributeValue.longAttributeValue(messageId.incrementAndGet()));
|
||||
span.addEvent("message", attributes);
|
||||
try (final Scope scope = currentContextWith(span)) {
|
||||
delegate().onMessage(message);
|
||||
|
|
|
@ -33,12 +33,11 @@ import io.grpc.ServerInterceptor;
|
|||
import io.grpc.Status;
|
||||
import io.opentelemetry.auto.instrumentation.grpc.common.GrpcHelper;
|
||||
import io.opentelemetry.common.AttributeValue;
|
||||
import io.opentelemetry.common.Attributes;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.trace.Span;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketAddress;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class TracingServerInterceptor implements ServerInterceptor {
|
||||
|
@ -121,9 +120,10 @@ public class TracingServerInterceptor implements ServerInterceptor {
|
|||
|
||||
@Override
|
||||
public void onMessage(final ReqT message) {
|
||||
final Map<String, AttributeValue> attributes = new HashMap<>();
|
||||
attributes.put("message.type", AttributeValue.stringAttributeValue("RECEIVED"));
|
||||
attributes.put("message.id", AttributeValue.longAttributeValue(messageId.incrementAndGet()));
|
||||
Attributes attributes =
|
||||
Attributes.of(
|
||||
"message.type", AttributeValue.stringAttributeValue("RECEIVED"),
|
||||
"message.id", AttributeValue.longAttributeValue(messageId.incrementAndGet()));
|
||||
span.addEvent("message", attributes);
|
||||
try (final Scope scope = currentContextWith(span)) {
|
||||
delegate().onMessage(message);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
apply from: "$rootDir/gradle/instrumentation.gradle"
|
||||
|
||||
dependencies {
|
||||
// this instrumentation needs to be able to be able to reference both the OpenTelemetry API
|
||||
// this instrumentation needs to be able to reference both the OpenTelemetry API
|
||||
// that is shaded in the bootstrap class loader (for sending telemetry to the agent),
|
||||
// and the OpenTelemetry API that the user brings (in order to capture that telemetry)
|
||||
//
|
||||
|
|
|
@ -84,11 +84,14 @@ public abstract class AbstractInstrumentation extends Instrumenter.Default {
|
|||
packageName + ".metrics.UnshadedMeterProvider",
|
||||
packageName + ".trace.Bridging",
|
||||
packageName + ".trace.Bridging$1",
|
||||
packageName + ".trace.Bridging$2",
|
||||
packageName + ".trace.TracingContextUtils",
|
||||
packageName + ".trace.UnshadedSpan",
|
||||
packageName + ".trace.UnshadedSpan$Builder",
|
||||
packageName + ".trace.UnshadedTracer",
|
||||
packageName + ".trace.UnshadedTracerProvider"
|
||||
packageName + ".trace.UnshadedTracerProvider",
|
||||
packageName + ".LabelsShader",
|
||||
packageName + ".LabelsShader$Consumer"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi;
|
||||
|
||||
import io.opentelemetry.common.Labels;
|
||||
import io.opentelemetry.common.Labels.Builder;
|
||||
import unshaded.io.opentelemetry.common.ReadableKeyValuePairs.KeyValueConsumer;
|
||||
|
||||
/**
|
||||
* This class converts between Labels class that user brings and Labels class that agent has.
|
||||
*
|
||||
* <p>TODO probably not the most performant solution...
|
||||
*/
|
||||
public class LabelsShader {
|
||||
|
||||
public static Labels shade(unshaded.io.opentelemetry.common.Labels labels) {
|
||||
final io.opentelemetry.common.Labels.Builder builder =
|
||||
io.opentelemetry.common.Labels.newBuilder();
|
||||
labels.forEach(new Consumer(builder));
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
static class Consumer implements KeyValueConsumer<String> {
|
||||
|
||||
private final Builder builder;
|
||||
|
||||
public Consumer(Builder builder) {
|
||||
this.builder = builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void consume(String key, String value) {
|
||||
builder.setLabel(key, value);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleCounter;
|
||||
|
||||
class UnshadedDoubleCounter implements DoubleCounter {
|
||||
|
@ -32,13 +33,13 @@ class UnshadedDoubleCounter implements DoubleCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void add(final double delta, final String... labelKeyValuePairs) {
|
||||
shadedDoubleCounter.add(delta, labelKeyValuePairs);
|
||||
public void add(final double delta, final Labels labels) {
|
||||
shadedDoubleCounter.add(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundDoubleCounter bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedDoubleCounter.bind(labelKeyValuePairs));
|
||||
public BoundDoubleCounter bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedDoubleCounter.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements DoubleCounter.BoundDoubleCounter {
|
||||
|
@ -83,8 +84,8 @@ class UnshadedDoubleCounter implements DoubleCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleCounter.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleCounter.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import io.opentelemetry.metrics.AsynchronousInstrument;
|
||||
import java.util.Map;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleSumObserver;
|
||||
|
||||
class UnshadedDoubleSumObserver implements DoubleSumObserver {
|
||||
|
@ -30,41 +31,40 @@ class UnshadedDoubleSumObserver implements DoubleSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultDoubleSumObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<DoubleResult> metricUpdater) {
|
||||
shadedDoubleSumObserver.setCallback(new ShadedResultDoubleSumObserver(metricUpdater));
|
||||
}
|
||||
|
||||
static class ShadedResultDoubleSumObserver
|
||||
implements AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.DoubleSumObserver.ResultDoubleSumObserver> {
|
||||
io.opentelemetry.metrics.DoubleSumObserver.DoubleResult> {
|
||||
|
||||
private final Callback<ResultDoubleSumObserver> metricUpdater;
|
||||
private final Callback<DoubleResult> metricUpdater;
|
||||
|
||||
protected ShadedResultDoubleSumObserver(final Callback<ResultDoubleSumObserver> metricUpdater) {
|
||||
protected ShadedResultDoubleSumObserver(final Callback<DoubleResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.DoubleSumObserver.ResultDoubleSumObserver result) {
|
||||
public void update(final io.opentelemetry.metrics.DoubleSumObserver.DoubleResult result) {
|
||||
metricUpdater.update(new UnshadedResultDoubleSumObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
static class UnshadedResultDoubleSumObserver implements ResultDoubleSumObserver {
|
||||
static class UnshadedResultDoubleSumObserver implements DoubleResult {
|
||||
|
||||
private final io.opentelemetry.metrics.DoubleSumObserver.ResultDoubleSumObserver
|
||||
private final io.opentelemetry.metrics.DoubleSumObserver.DoubleResult
|
||||
shadedResultDoubleSumObserver;
|
||||
|
||||
public UnshadedResultDoubleSumObserver(
|
||||
final io.opentelemetry.metrics.DoubleSumObserver.ResultDoubleSumObserver
|
||||
final io.opentelemetry.metrics.DoubleSumObserver.DoubleResult
|
||||
shadedResultDoubleSumObserver) {
|
||||
this.shadedResultDoubleSumObserver = shadedResultDoubleSumObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final double value, final String... keyValueLabelPairs) {
|
||||
shadedResultDoubleSumObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final double value, final Labels labels) {
|
||||
shadedResultDoubleSumObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,8 +89,8 @@ class UnshadedDoubleSumObserver implements DoubleSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleSumObserver.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleSumObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleUpDownCounter;
|
||||
|
||||
class UnshadedDoubleUpDownCounter implements DoubleUpDownCounter {
|
||||
|
@ -33,13 +34,13 @@ class UnshadedDoubleUpDownCounter implements DoubleUpDownCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void add(final double delta, final String... labelKeyValuePairs) {
|
||||
shadedDoubleUpDownCounter.add(delta, labelKeyValuePairs);
|
||||
public void add(final double delta, final Labels labels) {
|
||||
shadedDoubleUpDownCounter.add(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundDoubleUpDownCounter bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedDoubleUpDownCounter.bind(labelKeyValuePairs));
|
||||
public BoundDoubleUpDownCounter bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedDoubleUpDownCounter.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements BoundDoubleUpDownCounter {
|
||||
|
@ -85,8 +86,8 @@ class UnshadedDoubleUpDownCounter implements DoubleUpDownCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleUpDownCounter.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleUpDownCounter.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import io.opentelemetry.metrics.AsynchronousInstrument;
|
||||
import java.util.Map;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleUpDownSumObserver;
|
||||
|
||||
class UnshadedDoubleUpDownSumObserver implements DoubleUpDownSumObserver {
|
||||
|
@ -30,44 +31,41 @@ class UnshadedDoubleUpDownSumObserver implements DoubleUpDownSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultDoubleUpDownSumObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<DoubleResult> metricUpdater) {
|
||||
shadedDoubleUpDownSumObserver.setCallback(
|
||||
new ShadedResultDoubleUpDownSumObserver(metricUpdater));
|
||||
}
|
||||
|
||||
static class ShadedResultDoubleUpDownSumObserver
|
||||
implements AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver> {
|
||||
io.opentelemetry.metrics.DoubleUpDownSumObserver.DoubleResult> {
|
||||
|
||||
private final Callback<ResultDoubleUpDownSumObserver> metricUpdater;
|
||||
private final Callback<DoubleResult> metricUpdater;
|
||||
|
||||
protected ShadedResultDoubleUpDownSumObserver(
|
||||
final Callback<ResultDoubleUpDownSumObserver> metricUpdater) {
|
||||
protected ShadedResultDoubleUpDownSumObserver(final Callback<DoubleResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver
|
||||
result) {
|
||||
public void update(final io.opentelemetry.metrics.DoubleUpDownSumObserver.DoubleResult result) {
|
||||
metricUpdater.update(new UnshadedResultDoubleUpDownSumObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
static class UnshadedResultDoubleUpDownSumObserver implements ResultDoubleUpDownSumObserver {
|
||||
static class UnshadedResultDoubleUpDownSumObserver implements DoubleResult {
|
||||
|
||||
private final io.opentelemetry.metrics.DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver
|
||||
private final io.opentelemetry.metrics.DoubleUpDownSumObserver.DoubleResult
|
||||
shadedResultDoubleUpDownSumObserver;
|
||||
|
||||
public UnshadedResultDoubleUpDownSumObserver(
|
||||
final io.opentelemetry.metrics.DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver
|
||||
final io.opentelemetry.metrics.DoubleUpDownSumObserver.DoubleResult
|
||||
shadedResultDoubleUpDownSumObserver) {
|
||||
this.shadedResultDoubleUpDownSumObserver = shadedResultDoubleUpDownSumObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final double value, final String... keyValueLabelPairs) {
|
||||
shadedResultDoubleUpDownSumObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final double value, final Labels labels) {
|
||||
shadedResultDoubleUpDownSumObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,9 +91,8 @@ class UnshadedDoubleUpDownSumObserver implements DoubleUpDownSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleUpDownSumObserver.Builder setConstantLabels(
|
||||
final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleUpDownSumObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import io.opentelemetry.metrics.AsynchronousInstrument;
|
||||
import java.util.Map;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleValueObserver;
|
||||
|
||||
class UnshadedDoubleValueObserver implements DoubleValueObserver {
|
||||
|
@ -30,42 +31,40 @@ class UnshadedDoubleValueObserver implements DoubleValueObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultDoubleValueObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<DoubleResult> metricUpdater) {
|
||||
shadedDoubleValueObserver.setCallback(new ShadedResultDoubleValueObserver(metricUpdater));
|
||||
}
|
||||
|
||||
static class ShadedResultDoubleValueObserver
|
||||
implements AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.DoubleValueObserver.ResultDoubleValueObserver> {
|
||||
io.opentelemetry.metrics.DoubleValueObserver.DoubleResult> {
|
||||
|
||||
private final Callback<ResultDoubleValueObserver> metricUpdater;
|
||||
private final Callback<DoubleResult> metricUpdater;
|
||||
|
||||
protected ShadedResultDoubleValueObserver(
|
||||
final Callback<ResultDoubleValueObserver> metricUpdater) {
|
||||
protected ShadedResultDoubleValueObserver(final Callback<DoubleResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.DoubleValueObserver.ResultDoubleValueObserver result) {
|
||||
public void update(final io.opentelemetry.metrics.DoubleValueObserver.DoubleResult result) {
|
||||
metricUpdater.update(new UnshadedResultDoubleValueObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
static class UnshadedResultDoubleValueObserver implements ResultDoubleValueObserver {
|
||||
static class UnshadedResultDoubleValueObserver implements DoubleResult {
|
||||
|
||||
private final io.opentelemetry.metrics.DoubleValueObserver.ResultDoubleValueObserver
|
||||
private final io.opentelemetry.metrics.DoubleValueObserver.DoubleResult
|
||||
shadedResultDoubleValueObserver;
|
||||
|
||||
public UnshadedResultDoubleValueObserver(
|
||||
final io.opentelemetry.metrics.DoubleValueObserver.ResultDoubleValueObserver
|
||||
final io.opentelemetry.metrics.DoubleValueObserver.DoubleResult
|
||||
shadedResultDoubleValueObserver) {
|
||||
this.shadedResultDoubleValueObserver = shadedResultDoubleValueObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final double value, final String... keyValueLabelPairs) {
|
||||
shadedResultDoubleValueObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final double value, final Labels labels) {
|
||||
shadedResultDoubleValueObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,8 +89,8 @@ class UnshadedDoubleValueObserver implements DoubleValueObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleValueObserver.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleValueObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.DoubleValueRecorder;
|
||||
|
||||
class UnshadedDoubleValueRecorder implements DoubleValueRecorder {
|
||||
|
@ -33,13 +34,13 @@ class UnshadedDoubleValueRecorder implements DoubleValueRecorder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void record(final double delta, final String... labelKeyValuePairs) {
|
||||
shadedDoubleValueRecorder.record(delta, labelKeyValuePairs);
|
||||
public void record(final double delta, final Labels labels) {
|
||||
shadedDoubleValueRecorder.record(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundDoubleValueRecorder bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedDoubleValueRecorder.bind(labelKeyValuePairs));
|
||||
public BoundDoubleValueRecorder bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedDoubleValueRecorder.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements DoubleValueRecorder.BoundDoubleValueRecorder {
|
||||
|
@ -85,8 +86,8 @@ class UnshadedDoubleValueRecorder implements DoubleValueRecorder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public DoubleValueRecorder.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public DoubleValueRecorder.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongCounter;
|
||||
|
||||
class UnshadedLongCounter implements LongCounter {
|
||||
|
@ -32,13 +33,13 @@ class UnshadedLongCounter implements LongCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void add(final long delta, final String... labelKeyValuePairs) {
|
||||
shadedLongCounter.add(delta, labelKeyValuePairs);
|
||||
public void add(final long delta, final Labels labels) {
|
||||
shadedLongCounter.add(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundLongCounter bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedLongCounter.bind(labelKeyValuePairs));
|
||||
public BoundLongCounter bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedLongCounter.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements LongCounter.BoundLongCounter {
|
||||
|
@ -82,8 +83,8 @@ class UnshadedLongCounter implements LongCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongCounter.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongCounter.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import io.opentelemetry.metrics.AsynchronousInstrument;
|
||||
import java.util.Map;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongSumObserver;
|
||||
|
||||
class UnshadedLongSumObserver implements LongSumObserver {
|
||||
|
@ -30,41 +31,38 @@ class UnshadedLongSumObserver implements LongSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultLongSumObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<LongResult> metricUpdater) {
|
||||
shadedLongSumObserver.setCallback(new ShadedResultLongSumObserver(metricUpdater));
|
||||
}
|
||||
|
||||
static class ShadedResultLongSumObserver
|
||||
implements AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.LongSumObserver.ResultLongSumObserver> {
|
||||
io.opentelemetry.metrics.LongSumObserver.LongResult> {
|
||||
|
||||
private final Callback<ResultLongSumObserver> metricUpdater;
|
||||
private final Callback<LongResult> metricUpdater;
|
||||
|
||||
protected ShadedResultLongSumObserver(final Callback<ResultLongSumObserver> metricUpdater) {
|
||||
protected ShadedResultLongSumObserver(final Callback<LongResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.LongSumObserver.ResultLongSumObserver result) {
|
||||
public void update(final io.opentelemetry.metrics.LongSumObserver.LongResult result) {
|
||||
metricUpdater.update(new UnshadedResultLongSumObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
static class UnshadedResultLongSumObserver implements ResultLongSumObserver {
|
||||
static class UnshadedResultLongSumObserver implements LongResult {
|
||||
|
||||
private final io.opentelemetry.metrics.LongSumObserver.ResultLongSumObserver
|
||||
shadedResultLongSumObserver;
|
||||
private final io.opentelemetry.metrics.LongSumObserver.LongResult shadedResultLongSumObserver;
|
||||
|
||||
public UnshadedResultLongSumObserver(
|
||||
final io.opentelemetry.metrics.LongSumObserver.ResultLongSumObserver
|
||||
shadedResultLongSumObserver) {
|
||||
final io.opentelemetry.metrics.LongSumObserver.LongResult shadedResultLongSumObserver) {
|
||||
this.shadedResultLongSumObserver = shadedResultLongSumObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final long value, final String... keyValueLabelPairs) {
|
||||
shadedResultLongSumObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final long value, final Labels labels) {
|
||||
shadedResultLongSumObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,8 +87,8 @@ class UnshadedLongSumObserver implements LongSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongSumObserver.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongSumObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongUpDownCounter;
|
||||
|
||||
class UnshadedLongUpDownCounter implements LongUpDownCounter {
|
||||
|
@ -33,13 +34,13 @@ class UnshadedLongUpDownCounter implements LongUpDownCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void add(final long delta, final String... labelKeyValuePairs) {
|
||||
shadedLongUpDownCounter.add(delta, labelKeyValuePairs);
|
||||
public void add(final long delta, final Labels labels) {
|
||||
shadedLongUpDownCounter.add(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundLongUpDownCounter bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedLongUpDownCounter.bind(labelKeyValuePairs));
|
||||
public BoundLongUpDownCounter bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedLongUpDownCounter.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements BoundLongUpDownCounter {
|
||||
|
@ -85,8 +86,8 @@ class UnshadedLongUpDownCounter implements LongUpDownCounter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongUpDownCounter.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongUpDownCounter.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import io.opentelemetry.metrics.AsynchronousInstrument;
|
||||
import java.util.Map;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongUpDownSumObserver;
|
||||
|
||||
class UnshadedLongUpDownSumObserver implements LongUpDownSumObserver {
|
||||
|
@ -30,42 +31,40 @@ class UnshadedLongUpDownSumObserver implements LongUpDownSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultLongUpDownSumObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<LongResult> metricUpdater) {
|
||||
shadedLongUpDownSumObserver.setCallback(new ShadedResultLongUpDownSumObserver(metricUpdater));
|
||||
}
|
||||
|
||||
static class ShadedResultLongUpDownSumObserver
|
||||
implements AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.LongUpDownSumObserver.ResultLongUpDownSumObserver> {
|
||||
io.opentelemetry.metrics.LongUpDownSumObserver.LongResult> {
|
||||
|
||||
private final Callback<ResultLongUpDownSumObserver> metricUpdater;
|
||||
private final Callback<LongResult> metricUpdater;
|
||||
|
||||
protected ShadedResultLongUpDownSumObserver(
|
||||
final Callback<ResultLongUpDownSumObserver> metricUpdater) {
|
||||
protected ShadedResultLongUpDownSumObserver(final Callback<LongResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.LongUpDownSumObserver.ResultLongUpDownSumObserver result) {
|
||||
public void update(final io.opentelemetry.metrics.LongUpDownSumObserver.LongResult result) {
|
||||
metricUpdater.update(new UnshadedResultLongUpDownSumObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
static class UnshadedResultLongUpDownSumObserver implements ResultLongUpDownSumObserver {
|
||||
static class UnshadedResultLongUpDownSumObserver implements LongResult {
|
||||
|
||||
private final io.opentelemetry.metrics.LongUpDownSumObserver.ResultLongUpDownSumObserver
|
||||
private final io.opentelemetry.metrics.LongUpDownSumObserver.LongResult
|
||||
shadedResultLongUpDownSumObserver;
|
||||
|
||||
public UnshadedResultLongUpDownSumObserver(
|
||||
final io.opentelemetry.metrics.LongUpDownSumObserver.ResultLongUpDownSumObserver
|
||||
final io.opentelemetry.metrics.LongUpDownSumObserver.LongResult
|
||||
shadedResultLongUpDownSumObserver) {
|
||||
this.shadedResultLongUpDownSumObserver = shadedResultLongUpDownSumObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final long value, final String... keyValueLabelPairs) {
|
||||
shadedResultLongUpDownSumObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final long value, final Labels labels) {
|
||||
shadedResultLongUpDownSumObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,9 +89,8 @@ class UnshadedLongUpDownSumObserver implements LongUpDownSumObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongUpDownSumObserver.Builder setConstantLabels(
|
||||
final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongUpDownSumObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongValueObserver;
|
||||
|
||||
class UnshadedLongValueObserver implements LongValueObserver {
|
||||
|
@ -29,41 +30,39 @@ class UnshadedLongValueObserver implements LongValueObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCallback(final Callback<ResultLongValueObserver> metricUpdater) {
|
||||
public void setCallback(final Callback<LongResult> metricUpdater) {
|
||||
shadedLongValueObserver.setCallback(new ShadedResultLongValueObserver(metricUpdater));
|
||||
}
|
||||
|
||||
public static class ShadedResultLongValueObserver
|
||||
implements io.opentelemetry.metrics.AsynchronousInstrument.Callback<
|
||||
io.opentelemetry.metrics.LongValueObserver.ResultLongValueObserver> {
|
||||
io.opentelemetry.metrics.LongValueObserver.LongResult> {
|
||||
|
||||
private final Callback<ResultLongValueObserver> metricUpdater;
|
||||
private final Callback<LongResult> metricUpdater;
|
||||
|
||||
public ShadedResultLongValueObserver(final Callback<ResultLongValueObserver> metricUpdater) {
|
||||
public ShadedResultLongValueObserver(final Callback<LongResult> metricUpdater) {
|
||||
this.metricUpdater = metricUpdater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(
|
||||
final io.opentelemetry.metrics.LongValueObserver.ResultLongValueObserver result) {
|
||||
public void update(final io.opentelemetry.metrics.LongValueObserver.LongResult result) {
|
||||
metricUpdater.update(new UnshadedResultLongValueObserver(result));
|
||||
}
|
||||
}
|
||||
|
||||
public static class UnshadedResultLongValueObserver implements ResultLongValueObserver {
|
||||
public static class UnshadedResultLongValueObserver implements LongResult {
|
||||
|
||||
private final io.opentelemetry.metrics.LongValueObserver.ResultLongValueObserver
|
||||
private final io.opentelemetry.metrics.LongValueObserver.LongResult
|
||||
shadedResultLongValueObserver;
|
||||
|
||||
public UnshadedResultLongValueObserver(
|
||||
final io.opentelemetry.metrics.LongValueObserver.ResultLongValueObserver
|
||||
shadedResultLongValueObserver) {
|
||||
final io.opentelemetry.metrics.LongValueObserver.LongResult shadedResultLongValueObserver) {
|
||||
this.shadedResultLongValueObserver = shadedResultLongValueObserver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(final long value, final String... keyValueLabelPairs) {
|
||||
shadedResultLongValueObserver.observe(value, keyValueLabelPairs);
|
||||
public void observe(final long value, final Labels labels) {
|
||||
shadedResultLongValueObserver.observe(value, LabelsShader.shade(labels));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,8 +87,8 @@ class UnshadedLongValueObserver implements LongValueObserver {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongValueObserver.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongValueObserver.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.metrics;
|
||||
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.auto.instrumentation.opentelemetryapi.LabelsShader;
|
||||
import unshaded.io.opentelemetry.common.Labels;
|
||||
import unshaded.io.opentelemetry.metrics.LongValueRecorder;
|
||||
|
||||
class UnshadedLongValueRecorder implements LongValueRecorder {
|
||||
|
@ -33,13 +34,13 @@ class UnshadedLongValueRecorder implements LongValueRecorder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void record(final long delta, final String... labelKeyValuePairs) {
|
||||
shadedLongValueRecorder.record(delta, labelKeyValuePairs);
|
||||
public void record(final long delta, final Labels labels) {
|
||||
shadedLongValueRecorder.record(delta, LabelsShader.shade(labels));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoundLongValueRecorder bind(final String... labelKeyValuePairs) {
|
||||
return new BoundInstrument(shadedLongValueRecorder.bind(labelKeyValuePairs));
|
||||
public BoundLongValueRecorder bind(final Labels labels) {
|
||||
return new BoundInstrument(shadedLongValueRecorder.bind(LabelsShader.shade(labels)));
|
||||
}
|
||||
|
||||
static class BoundInstrument implements LongValueRecorder.BoundLongValueRecorder {
|
||||
|
@ -85,8 +86,8 @@ class UnshadedLongValueRecorder implements LongValueRecorder {
|
|||
}
|
||||
|
||||
@Override
|
||||
public LongValueRecorder.Builder setConstantLabels(final Map<String, String> constantLabels) {
|
||||
shadedBuilder.setConstantLabels(constantLabels);
|
||||
public LongValueRecorder.Builder setConstantLabels(final Labels constantLabels) {
|
||||
shadedBuilder.setConstantLabels(LabelsShader.shade(constantLabels));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,10 +16,11 @@
|
|||
|
||||
package io.opentelemetry.auto.instrumentation.opentelemetryapi.trace;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import io.opentelemetry.common.Attributes.Builder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import unshaded.io.opentelemetry.common.AttributeValue;
|
||||
import unshaded.io.opentelemetry.common.Attributes;
|
||||
import unshaded.io.opentelemetry.common.ReadableKeyValuePairs.KeyValueConsumer;
|
||||
import unshaded.io.opentelemetry.trace.DefaultSpan;
|
||||
import unshaded.io.opentelemetry.trace.EndSpanOptions;
|
||||
import unshaded.io.opentelemetry.trace.Span;
|
||||
|
@ -101,17 +102,20 @@ public class Bridging {
|
|||
}
|
||||
}
|
||||
|
||||
public static Map<String, io.opentelemetry.common.AttributeValue> toShaded(
|
||||
final Map<String, AttributeValue> unshadedAttributes) {
|
||||
final Map<String, io.opentelemetry.common.AttributeValue> shadedAttributes = new HashMap<>();
|
||||
for (final Map.Entry<String, AttributeValue> entry : unshadedAttributes.entrySet()) {
|
||||
final AttributeValue value = entry.getValue();
|
||||
final io.opentelemetry.common.AttributeValue shadedValue = toShadedOrNull(value);
|
||||
if (shadedValue != null) {
|
||||
shadedAttributes.put(entry.getKey(), shadedValue);
|
||||
}
|
||||
}
|
||||
return shadedAttributes;
|
||||
public static io.opentelemetry.common.Attributes toShaded(final Attributes unshadedAttributes) {
|
||||
final Builder builder = io.opentelemetry.common.Attributes.newBuilder();
|
||||
unshadedAttributes.forEach(
|
||||
new KeyValueConsumer<AttributeValue>() {
|
||||
@Override
|
||||
public void consume(String key, AttributeValue attributeValue) {
|
||||
final io.opentelemetry.common.AttributeValue shadedValue =
|
||||
toShadedOrNull(attributeValue);
|
||||
if (shadedValue != null) {
|
||||
builder.setAttribute(key, shadedValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public static io.opentelemetry.common.AttributeValue toShadedOrNull(
|
||||
|
|
|
@ -19,9 +19,9 @@ package io.opentelemetry.auto.instrumentation.opentelemetryapi.trace;
|
|||
import static io.opentelemetry.auto.instrumentation.opentelemetryapi.trace.Bridging.toShaded;
|
||||
import static io.opentelemetry.auto.instrumentation.opentelemetryapi.trace.Bridging.toShadedOrNull;
|
||||
|
||||
import java.util.Map;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import unshaded.io.opentelemetry.common.AttributeValue;
|
||||
import unshaded.io.opentelemetry.common.Attributes;
|
||||
import unshaded.io.opentelemetry.trace.EndSpanOptions;
|
||||
import unshaded.io.opentelemetry.trace.Event;
|
||||
import unshaded.io.opentelemetry.trace.Link;
|
||||
|
@ -80,13 +80,12 @@ class UnshadedSpan implements Span {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addEvent(final String name, final Map<String, AttributeValue> attributes) {
|
||||
public void addEvent(final String name, final Attributes attributes) {
|
||||
shadedSpan.addEvent(name, toShaded(attributes));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEvent(
|
||||
final String name, final Map<String, AttributeValue> attributes, final long timestamp) {
|
||||
public void addEvent(final String name, final Attributes attributes, final long timestamp) {
|
||||
shadedSpan.addEvent(name, toShaded(attributes), timestamp);
|
||||
}
|
||||
|
||||
|
@ -179,8 +178,7 @@ class UnshadedSpan implements Span {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Span.Builder addLink(
|
||||
final SpanContext spanContext, final Map<String, AttributeValue> attributes) {
|
||||
public Span.Builder addLink(final SpanContext spanContext, final Attributes attributes) {
|
||||
shadedBuilder.addLink(toShaded(spanContext));
|
||||
return this;
|
||||
}
|
||||
|
|
|
@ -16,14 +16,10 @@
|
|||
|
||||
import io.opentelemetry.auto.test.AgentTestRunner
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
import unshaded.io.opentelemetry.OpenTelemetry
|
||||
import unshaded.io.opentelemetry.common.Labels
|
||||
import unshaded.io.opentelemetry.metrics.AsynchronousInstrument
|
||||
import unshaded.io.opentelemetry.metrics.DoubleSumObserver
|
||||
import unshaded.io.opentelemetry.metrics.DoubleUpDownSumObserver
|
||||
import unshaded.io.opentelemetry.metrics.DoubleValueObserver
|
||||
import unshaded.io.opentelemetry.metrics.LongSumObserver
|
||||
import unshaded.io.opentelemetry.metrics.LongUpDownSumObserver
|
||||
import unshaded.io.opentelemetry.metrics.LongValueObserver
|
||||
|
||||
import static io.opentelemetry.sdk.metrics.data.MetricData.Descriptor.Type.MONOTONIC_DOUBLE
|
||||
import static io.opentelemetry.sdk.metrics.data.MetricData.Descriptor.Type.MONOTONIC_LONG
|
||||
|
@ -43,34 +39,34 @@ class MeterTest extends AgentTestRunner {
|
|||
def instrument = meter."$builderMethod"("test")
|
||||
.setDescription("d")
|
||||
.setUnit("u")
|
||||
.setConstantLabels(["m": "n", "o": "p"])
|
||||
.setConstantLabels(Labels.of("m", "n", "o", "p"))
|
||||
.build()
|
||||
if (bind) {
|
||||
instrument = instrument.bind()
|
||||
instrument = instrument.bind(Labels.empty())
|
||||
}
|
||||
if (bind) {
|
||||
instrument.add(value1)
|
||||
instrument.add(value2)
|
||||
} else {
|
||||
instrument.add(value1, "q", "r")
|
||||
instrument.add(value2, "q", "r")
|
||||
instrument.add(value1, Labels.of("q", "r"))
|
||||
instrument.add(value2, Labels.of("q", "r"))
|
||||
}
|
||||
|
||||
then:
|
||||
def metricData = metricData(instrumentationName, "test")
|
||||
def metricData = findMetric(OpenTelemetrySdk.getMeterProvider().getMetricProducer().getAllMetrics(), instrumentationName, "test")
|
||||
metricData != null
|
||||
metricData.descriptor.description == "d"
|
||||
metricData.descriptor.unit == "u"
|
||||
metricData.descriptor.type == expectedType
|
||||
metricData.descriptor.constantLabels == ["m": "n", "o": "p"]
|
||||
metricData.descriptor.constantLabels == io.opentelemetry.common.Labels.of("m", "n", "o", "p")
|
||||
metricData.instrumentationLibraryInfo.name == instrumentationName
|
||||
metricData.instrumentationLibraryInfo.version == "1.2.3"
|
||||
metricData.points.size() == 1
|
||||
def point = metricData.points.iterator().next()
|
||||
if (bind) {
|
||||
point.labels == ["w": "x", "y": "z"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("w", "x", "y", "z")
|
||||
} else {
|
||||
point.labels == ["q": "r"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("q", "r")
|
||||
}
|
||||
point.value == expectedValue
|
||||
|
||||
|
@ -96,34 +92,34 @@ class MeterTest extends AgentTestRunner {
|
|||
def instrument = meter."$builderMethod"("test")
|
||||
.setDescription("d")
|
||||
.setUnit("u")
|
||||
.setConstantLabels(["m": "n", "o": "p"])
|
||||
.setConstantLabels(Labels.of("m", "n", "o", "p"))
|
||||
.build()
|
||||
if (bind) {
|
||||
instrument = instrument.bind()
|
||||
instrument = instrument.bind(Labels.empty())
|
||||
}
|
||||
if (bind) {
|
||||
instrument.record(value1)
|
||||
instrument.record(value2)
|
||||
} else {
|
||||
instrument.record(value1, "q", "r")
|
||||
instrument.record(value2, "q", "r")
|
||||
instrument.record(value1, Labels.of("q", "r"))
|
||||
instrument.record(value2, Labels.of("q", "r"))
|
||||
}
|
||||
|
||||
then:
|
||||
def metricData = metricData(instrumentationName, "test")
|
||||
def metricData = findMetric(OpenTelemetrySdk.getMeterProvider().getMetricProducer().getAllMetrics(), instrumentationName, "test")
|
||||
metricData != null
|
||||
metricData.descriptor.description == "d"
|
||||
metricData.descriptor.unit == "u"
|
||||
metricData.descriptor.type == SUMMARY
|
||||
metricData.descriptor.constantLabels == ["m": "n", "o": "p"]
|
||||
metricData.descriptor.constantLabels == io.opentelemetry.common.Labels.of("m", "n", "o", "p")
|
||||
metricData.instrumentationLibraryInfo.name == instrumentationName
|
||||
metricData.instrumentationLibraryInfo.version == "1.2.3"
|
||||
metricData.points.size() == 1
|
||||
def point = metricData.points.iterator().next()
|
||||
if (bind) {
|
||||
point.labels == ["w": "x", "y": "z"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("w", "x", "y", "z")
|
||||
} else {
|
||||
point.labels == ["q": "r"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("q", "r")
|
||||
}
|
||||
point.count == 2
|
||||
point.sum == sum
|
||||
|
@ -146,64 +142,64 @@ class MeterTest extends AgentTestRunner {
|
|||
def instrument = meter."$builderMethod"("test")
|
||||
.setDescription("d")
|
||||
.setUnit("u")
|
||||
.setConstantLabels(["m": "n", "o": "p"])
|
||||
.setConstantLabels(Labels.of("m", "n", "o", "p"))
|
||||
.build()
|
||||
if (builderMethod == "longSumObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<LongSumObserver.ResultLongSumObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.LongResult>() {
|
||||
@Override
|
||||
void update(LongSumObserver.ResultLongSumObserver resultLongSumObserver) {
|
||||
resultLongSumObserver.observe(123, "q", "r")
|
||||
void update(AsynchronousInstrument.LongResult resultLongSumObserver) {
|
||||
resultLongSumObserver.observe(123, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
} else if (builderMethod == "longUpDownSumObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<LongUpDownSumObserver.ResultLongUpDownSumObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.LongResult>() {
|
||||
@Override
|
||||
void update(LongUpDownSumObserver.ResultLongUpDownSumObserver resultLongUpDownSumObserver) {
|
||||
resultLongUpDownSumObserver.observe(123, "q", "r")
|
||||
void update(AsynchronousInstrument.LongResult resultLongUpDownSumObserver) {
|
||||
resultLongUpDownSumObserver.observe(123, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
} else if (builderMethod == "longValueObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<LongValueObserver.ResultLongValueObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.LongResult>() {
|
||||
@Override
|
||||
void update(LongValueObserver.ResultLongValueObserver resultLongObserver) {
|
||||
resultLongObserver.observe(123, "q", "r")
|
||||
void update(AsynchronousInstrument.LongResult resultLongObserver) {
|
||||
resultLongObserver.observe(123, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
} else if (builderMethod == "doubleSumObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<DoubleSumObserver.ResultDoubleSumObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.DoubleResult>() {
|
||||
@Override
|
||||
void update(DoubleSumObserver.ResultDoubleSumObserver resultDoubleSumObserver) {
|
||||
resultDoubleSumObserver.observe(1.23, "q", "r")
|
||||
void update(AsynchronousInstrument.DoubleResult resultDoubleSumObserver) {
|
||||
resultDoubleSumObserver.observe(1.23, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
} else if (builderMethod == "doubleUpDownSumObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.DoubleResult>() {
|
||||
@Override
|
||||
void update(DoubleUpDownSumObserver.ResultDoubleUpDownSumObserver resultDoubleUpDownSumObserver) {
|
||||
resultDoubleUpDownSumObserver.observe(1.23, "q", "r")
|
||||
void update(AsynchronousInstrument.DoubleResult resultDoubleUpDownSumObserver) {
|
||||
resultDoubleUpDownSumObserver.observe(1.23, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
} else if (builderMethod == "doubleValueObserverBuilder") {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<DoubleValueObserver.ResultDoubleValueObserver>() {
|
||||
instrument.setCallback(new AsynchronousInstrument.Callback<AsynchronousInstrument.DoubleResult>() {
|
||||
@Override
|
||||
void update(DoubleValueObserver.ResultDoubleValueObserver resultDoubleObserver) {
|
||||
resultDoubleObserver.observe(1.23, "q", "r")
|
||||
void update(AsynchronousInstrument.DoubleResult resultDoubleObserver) {
|
||||
resultDoubleObserver.observe(1.23, Labels.of("q", "r"))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
then:
|
||||
def metricData = metricData(instrumentationName, "test")
|
||||
def metricData = findMetric(OpenTelemetrySdk.getMeterProvider().getMetricProducer().getAllMetrics(), instrumentationName, "test")
|
||||
metricData != null
|
||||
metricData.descriptor.description == "d"
|
||||
metricData.descriptor.unit == "u"
|
||||
metricData.descriptor.type == expectedType
|
||||
metricData.descriptor.constantLabels == ["m": "n", "o": "p"]
|
||||
metricData.descriptor.constantLabels == io.opentelemetry.common.Labels.of("m", "n", "o", "p")
|
||||
metricData.instrumentationLibraryInfo.name == instrumentationName
|
||||
metricData.instrumentationLibraryInfo.version == "1.2.3"
|
||||
metricData.points.size() == 1
|
||||
def point = metricData.points.iterator().next()
|
||||
point.labels == ["q": "r"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("q", "r")
|
||||
if (builderMethod.startsWith("long")) {
|
||||
point."$valueMethod" == 123
|
||||
} else {
|
||||
|
@ -230,52 +226,54 @@ class MeterTest extends AgentTestRunner {
|
|||
def longCounter = meter.longCounterBuilder("test")
|
||||
.setDescription("d")
|
||||
.setUnit("u")
|
||||
.setConstantLabels(["m": "n", "o": "p"])
|
||||
.setConstantLabels(Labels.of("m", "n", "o", "p"))
|
||||
.build()
|
||||
def doubleMeasure = meter.doubleValueRecorderBuilder("test2")
|
||||
.setDescription("d")
|
||||
.setUnit("u")
|
||||
.setConstantLabels(["m": "n", "o": "p"])
|
||||
.setConstantLabels(Labels.of("m", "n", "o", "p"))
|
||||
.build()
|
||||
|
||||
def batchRecorder = meter.newBatchRecorder("q", "r")
|
||||
batchRecorder.put(longCounter, 5)
|
||||
batchRecorder.put(longCounter, 6)
|
||||
batchRecorder.put(doubleMeasure, 5.5)
|
||||
batchRecorder.put(doubleMeasure, 6.6)
|
||||
batchRecorder.record()
|
||||
meter.newBatchRecorder("q", "r")
|
||||
.put(longCounter, 5)
|
||||
.put(longCounter, 6)
|
||||
.put(doubleMeasure, 5.5)
|
||||
.put(doubleMeasure, 6.6)
|
||||
.record()
|
||||
|
||||
def allMetrics = OpenTelemetrySdk.getMeterProvider().getMetricProducer().getAllMetrics()
|
||||
|
||||
then:
|
||||
def metricData = metricData(instrumentationName, "test")
|
||||
def metricData = findMetric(allMetrics, instrumentationName, "test")
|
||||
metricData != null
|
||||
metricData.descriptor.description == "d"
|
||||
metricData.descriptor.unit == "u"
|
||||
metricData.descriptor.type == MONOTONIC_LONG
|
||||
metricData.descriptor.constantLabels == ["m": "n", "o": "p"]
|
||||
metricData.descriptor.constantLabels == io.opentelemetry.common.Labels.of("m", "n", "o", "p")
|
||||
metricData.instrumentationLibraryInfo.name == instrumentationName
|
||||
metricData.instrumentationLibraryInfo.version == "1.2.3"
|
||||
metricData.points.size() == 1
|
||||
def point = metricData.points.iterator().next()
|
||||
point.labels == ["q": "r"]
|
||||
point.labels == io.opentelemetry.common.Labels.of("q", "r")
|
||||
point.value == 11
|
||||
|
||||
def metricData2 = this.metricData(instrumentationName, "test2")
|
||||
def metricData2 = findMetric(allMetrics, instrumentationName, "test2")
|
||||
metricData2 != null
|
||||
metricData2.descriptor.description == "d"
|
||||
metricData2.descriptor.unit == "u"
|
||||
metricData2.descriptor.type == SUMMARY
|
||||
metricData2.descriptor.constantLabels == ["m": "n", "o": "p"]
|
||||
metricData2.descriptor.constantLabels == io.opentelemetry.common.Labels.of("m", "n", "o", "p")
|
||||
metricData2.instrumentationLibraryInfo.name == instrumentationName
|
||||
metricData2.instrumentationLibraryInfo.version == "1.2.3"
|
||||
metricData2.points.size() == 1
|
||||
def point2 = metricData2.points.iterator().next()
|
||||
point2.labels == ["q": "r"]
|
||||
point2.labels == io.opentelemetry.common.Labels.of("q", "r")
|
||||
point2.count == 2
|
||||
point2.sum == 12.1
|
||||
}
|
||||
|
||||
def metricData(instrumentationName, metricName) {
|
||||
for (def metric : OpenTelemetrySdk.getMeterProvider().getMetricProducer().getAllMetrics()) {
|
||||
def findMetric(Collection<MetricData> allMetrics, instrumentationName, metricName) {
|
||||
for (def metric : allMetrics) {
|
||||
if (metric.instrumentationLibraryInfo.name == instrumentationName && metric.descriptor.name == metricName) {
|
||||
return metric
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
import static io.opentelemetry.auto.test.base.HttpServerTest.ServerEndpoint.SUCCESS;
|
||||
|
||||
import io.opentelemetry.contrib.auto.annotations.WithSpan;
|
||||
import io.opentelemetry.extensions.auto.annotations.WithSpan;
|
||||
import io.reactivex.Single;
|
||||
import io.vertx.core.DeploymentOptions;
|
||||
import io.vertx.core.Handler;
|
||||
|
|
|
@ -19,18 +19,19 @@ package io.opentelemetry.auto.test.asserts
|
|||
import groovy.transform.stc.ClosureParams
|
||||
import groovy.transform.stc.SimpleType
|
||||
import io.opentelemetry.common.AttributeValue
|
||||
|
||||
import io.opentelemetry.common.ReadableAttributes
|
||||
import io.opentelemetry.common.ReadableKeyValuePairs
|
||||
import java.util.regex.Pattern
|
||||
|
||||
class AttributesAssert {
|
||||
private final Map<String, AttributeValue> attributes
|
||||
private final ReadableAttributes attributes
|
||||
private final Set<String> assertedAttributes = new TreeSet<>()
|
||||
|
||||
private AttributesAssert(attributes) {
|
||||
private AttributesAssert(ReadableAttributes attributes) {
|
||||
this.attributes = attributes
|
||||
}
|
||||
|
||||
static void assertAttributes(Map<String, AttributeValue> attributes,
|
||||
static void assertAttributes(ReadableAttributes attributes,
|
||||
@ClosureParams(value = SimpleType, options = ['io.opentelemetry.auto.test.asserts.AttributesAssert'])
|
||||
@DelegatesTo(value = AttributesAssert, strategy = Closure.DELEGATE_FIRST) Closure spec) {
|
||||
def asserter = new AttributesAssert(attributes)
|
||||
|
@ -59,7 +60,7 @@ class AttributesAssert {
|
|||
return
|
||||
}
|
||||
assertedAttributes.add(name)
|
||||
def val = getVal(attributes[name])
|
||||
def val = getVal(attributes.get(name))
|
||||
if (value instanceof Pattern) {
|
||||
assert val =~ value
|
||||
} else if (value instanceof Class) {
|
||||
|
@ -83,12 +84,19 @@ class AttributesAssert {
|
|||
}
|
||||
|
||||
void assertAttributesAllVerified() {
|
||||
def set = new TreeMap<>(attributes).keySet()
|
||||
set.removeAll(assertedAttributes)
|
||||
// The primary goal is to ensure the set is empty.
|
||||
// attributes and assertedAttributes are included via an "always true" comparison
|
||||
// so they provide better context in the error message.
|
||||
assert (attributes.entrySet() != assertedAttributes || assertedAttributes.isEmpty()) && set.isEmpty()
|
||||
Set<String> allAttributes = new TreeSet<>()
|
||||
attributes.forEach(new ReadableKeyValuePairs.KeyValueConsumer<AttributeValue>() {
|
||||
@Override
|
||||
void consume(String key, AttributeValue value) {
|
||||
allAttributes.add(key)
|
||||
}
|
||||
})
|
||||
Set<String> unverifiedAttributes = new TreeSet(allAttributes)
|
||||
unverifiedAttributes.removeAll(assertedAttributes)
|
||||
// The first and second condition in the assert are exactly the same
|
||||
// but both are included in order to provide better context in the error message.
|
||||
// containsAll because tests may assert more attributes than span actually has
|
||||
assert unverifiedAttributes.isEmpty() && assertedAttributes.containsAll(allAttributes)
|
||||
}
|
||||
|
||||
private static Object getVal(AttributeValue attributeValue) {
|
||||
|
|
|
@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/java.gradle"
|
|||
minimumBranchCoverage = 0.5
|
||||
minimumInstructionCoverage = 0.5
|
||||
excludedClassesCoverage += [
|
||||
'io.opentelemetry.auto.test.asserts.*Assert',
|
||||
'io.opentelemetry.auto.test.asserts.*Assert*',
|
||||
'io.opentelemetry.auto.test.base.*',
|
||||
'io.opentelemetry.auto.test.log.*',
|
||||
'io.opentelemetry.auto.test.AgentTestRunner',
|
||||
|
|
Loading…
Reference in New Issue