Skip to content

Commit

Permalink
Remove duplicate and unnecessary code in micrometer1shim (#4682)
Browse files Browse the repository at this point in the history
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
  • Loading branch information
bogdandrutu committed Aug 12, 2022
1 parent e118297 commit abbafb3
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 112 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,25 @@
import static io.opentelemetry.micrometer1shim.Bridging.name;
import static io.opentelemetry.micrometer1shim.Bridging.tagsAsAttributes;

import io.micrometer.core.instrument.AbstractMeter;
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.config.NamingConvention;
import io.micrometer.core.instrument.util.MeterEquivalence;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.metrics.DoubleCounter;
import io.opentelemetry.api.metrics.Meter;
import java.util.Collections;
import javax.annotation.Nullable;

@SuppressWarnings("HashCodeToString")
final class OpenTelemetryCounter implements Counter, RemovableMeter {
final class OpenTelemetryCounter extends AbstractMeter implements Counter, RemovableMeter {

private final Id id;
// TODO: use bound instruments when they're available
private final DoubleCounter otelCounter;
private final Attributes attributes;

private volatile boolean removed = false;

OpenTelemetryCounter(Id id, NamingConvention namingConvention, Meter otelMeter) {
this.id = id;
super(id);

this.attributes = tagsAsAttributes(id, namingConvention);
String conventionName = name(id, namingConvention);
Expand Down Expand Up @@ -63,24 +60,8 @@ public Iterable<Measurement> measure() {
return Collections.emptyList();
}

@Override
public Id getId() {
return id;
}

@Override
public void onRemove() {
removed = true;
}

@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(@Nullable Object o) {
return MeterEquivalence.equals(this, o);
}

@Override
public int hashCode() {
return MeterEquivalence.hashCode(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,18 @@
import static io.opentelemetry.micrometer1shim.Bridging.name;
import static io.opentelemetry.micrometer1shim.Bridging.tagsAsAttributes;

import io.micrometer.core.instrument.AbstractMeter;
import io.micrometer.core.instrument.FunctionCounter;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.config.NamingConvention;
import io.micrometer.core.instrument.util.MeterEquivalence;
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.metrics.ObservableDoubleCounter;
import java.util.Collections;
import java.util.function.ToDoubleFunction;
import javax.annotation.Nullable;

@SuppressWarnings("HashCodeToString")
final class OpenTelemetryFunctionCounter<T> implements FunctionCounter, RemovableMeter {
final class OpenTelemetryFunctionCounter<T> extends AbstractMeter
implements FunctionCounter, RemovableMeter {

private final Id id;
private final ObservableDoubleCounter observableCount;

OpenTelemetryFunctionCounter(
Expand All @@ -31,7 +29,7 @@ final class OpenTelemetryFunctionCounter<T> implements FunctionCounter, Removabl
T obj,
ToDoubleFunction<T> countFunction,
Meter otelMeter) {
this.id = id;
super(id);

String name = name(id, namingConvention);
observableCount =
Expand All @@ -57,24 +55,8 @@ public Iterable<Measurement> measure() {
return Collections.emptyList();
}

@Override
public Id getId() {
return id;
}

@Override
public void onRemove() {
observableCount.close();
}

@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(@Nullable Object o) {
return MeterEquivalence.equals(this, o);
}

@Override
public int hashCode() {
return MeterEquivalence.hashCode(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

package io.opentelemetry.micrometer1shim;

import io.micrometer.core.instrument.AbstractMeter;
import io.micrometer.core.instrument.FunctionTimer;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.config.NamingConvention;
import io.micrometer.core.instrument.util.MeterEquivalence;
import io.micrometer.core.instrument.util.TimeUtils;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.metrics.Meter;
Expand All @@ -18,12 +18,9 @@
import java.util.concurrent.TimeUnit;
import java.util.function.ToDoubleFunction;
import java.util.function.ToLongFunction;
import javax.annotation.Nullable;

@SuppressWarnings("HashCodeToString")
final class OpenTelemetryFunctionTimer<T> implements FunctionTimer, RemovableMeter {

private final Id id;
final class OpenTelemetryFunctionTimer<T> extends AbstractMeter
implements FunctionTimer, RemovableMeter {
private final TimeUnit baseTimeUnit;
private final ObservableLongCounter observableCount;
private final ObservableDoubleCounter observableTotalTime;
Expand All @@ -37,8 +34,7 @@ final class OpenTelemetryFunctionTimer<T> implements FunctionTimer, RemovableMet
TimeUnit totalTimeFunctionUnit,
TimeUnit baseTimeUnit,
Meter otelMeter) {

this.id = id;
super(id);
this.baseTimeUnit = baseTimeUnit;

String name = Bridging.name(id, namingConvention);
Expand Down Expand Up @@ -97,25 +93,9 @@ public Iterable<Measurement> measure() {
return Collections.emptyList();
}

@Override
public Id getId() {
return id;
}

@Override
public void onRemove() {
observableCount.close();
observableTotalTime.close();
}

@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(@Nullable Object o) {
return MeterEquivalence.equals(this, o);
}

@Override
public int hashCode() {
return MeterEquivalence.hashCode(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,18 @@
import static io.opentelemetry.micrometer1shim.Bridging.name;
import static io.opentelemetry.micrometer1shim.Bridging.tagsAsAttributes;

import io.micrometer.core.instrument.AbstractMeter;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.config.NamingConvention;
import io.micrometer.core.instrument.util.MeterEquivalence;
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.metrics.ObservableDoubleGauge;
import java.util.Collections;
import java.util.function.ToDoubleFunction;
import javax.annotation.Nullable;

@SuppressWarnings("HashCodeToString")
final class OpenTelemetryGauge<T> implements Gauge, RemovableMeter {
final class OpenTelemetryGauge<T> extends AbstractMeter implements Gauge, RemovableMeter {

private final Id id;
private final ObservableDoubleGauge observableGauge;

OpenTelemetryGauge(
Expand All @@ -31,8 +29,7 @@ final class OpenTelemetryGauge<T> implements Gauge, RemovableMeter {
@Nullable T obj,
ToDoubleFunction<T> objMetric,
Meter otelMeter) {

this.id = id;
super(id);

String name = name(id, namingConvention);
observableGauge =
Expand All @@ -57,24 +54,8 @@ public Iterable<Measurement> measure() {
return Collections.emptyList();
}

@Override
public Id getId() {
return id;
}

@Override
public void onRemove() {
observableGauge.close();
}

@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(@Nullable Object o) {
return MeterEquivalence.equals(this, o);
}

@Override
public int hashCode() {
return MeterEquivalence.hashCode(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,25 @@
import static io.opentelemetry.micrometer1shim.Bridging.statisticInstrumentName;
import static io.opentelemetry.micrometer1shim.Bridging.tagsAsAttributes;

import io.micrometer.core.instrument.AbstractMeter;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.config.NamingConvention;
import io.micrometer.core.instrument.util.MeterEquivalence;
import io.opentelemetry.api.common.Attributes;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;

@SuppressWarnings("HashCodeToString")
final class OpenTelemetryMeter implements Meter, RemovableMeter {
final class OpenTelemetryMeter extends AbstractMeter implements Meter, RemovableMeter {

private final Id id;
private final List<AutoCloseable> observableInstruments;

OpenTelemetryMeter(
Id id,
NamingConvention namingConvention,
Iterable<Measurement> measurements,
io.opentelemetry.api.metrics.Meter otelMeter) {
this.id = id;
super(id);
Attributes attributes = tagsAsAttributes(id, namingConvention);

List<AutoCloseable> observableInstruments = new ArrayList<>();
Expand Down Expand Up @@ -82,11 +79,6 @@ final class OpenTelemetryMeter implements Meter, RemovableMeter {
this.observableInstruments = observableInstruments;
}

@Override
public Id getId() {
return id;
}

@Override
public Iterable<Measurement> measure() {
UnsupportedReadLogger.logWarning();
Expand All @@ -103,15 +95,4 @@ public void onRemove() {
throw new IllegalStateException("SDK instruments should never throw on close()", e);
}
}

@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(@Nullable Object o) {
return MeterEquivalence.equals(this, o);
}

@Override
public int hashCode() {
return MeterEquivalence.hashCode(this);
}
}

0 comments on commit abbafb3

Please sign in to comment.