Skip to content

Commit 83ce893

Browse files
slight change on annotations
1 parent 78cfd7a commit 83ce893

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

instrumentation-annotations/src/main/java/io/opentelemetry/instrumentation/annotations/Counted.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
* <p>The name should follow the instrument naming rule: <a
4242
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument-naming-rule">https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument-naming-rule</a>
4343
*
44-
* <p>The default name is {@code method.invocations.total}.
44+
* <p>The default name is {@code method.invocation.count}.
4545
*/
46-
String value() default "method.invocations.total";
46+
String value() default "method.invocation.count";
4747

4848
/**
4949
* Description of the instrument.
@@ -59,7 +59,7 @@
5959
* <p>Unit strings should follow the instrument unit rules: <a
6060
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument-unit">https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument-unit</a>
6161
*/
62-
String unit() default "1";
62+
String unit() default "{invocation}";
6363

6464
/**
6565
* List of key-value pairs to supply additional attributes.

instrumentation-annotations/src/main/java/io/opentelemetry/instrumentation/annotations/MetricAttribute.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
* <p>If not specified and the code is compiled using the `{@code -parameters}` argument to
3232
* `javac`, the parameter name will be used instead. If the parameter name is not available, e.g.,
3333
* because the code was not compiled with that flag, the attribute will be ignored.
34+
*
35+
* <p> Warning: be careful to fill it because it might cause an explosion of the cardinality on your metric
3436
*/
3537
String value() default "";
3638
}

instrumentation-annotations/src/main/java/io/opentelemetry/instrumentation/annotations/Timed.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
*
4444
* <p>The default name is {@code method.invocations.duration}.
4545
*/
46-
String value() default "method.invocations.duration";
46+
String value() default "method.invocation.duration";
4747

4848
/**
4949
* Description for the instrument.
@@ -82,6 +82,8 @@
8282
* will be called on the return value to convert it to a String.
8383
*
8484
* <p>By default, the instrument will not have an attribute with the return value.
85+
*
86+
* <p>Warning: be careful to fill it because it might cause an explosion of the cardinality on your metric
8587
*/
8688
String returnValueAttribute() default "";
8789
}

instrumentation/opentelemetry-instrumentation-annotations-1.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/instrumentationannotations/AnnotationSingletons.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
import static java.util.logging.Level.FINE;
99

10-
import application.io.opentelemetry.instrumentation.annotations.Counted;
11-
import application.io.opentelemetry.instrumentation.annotations.MetricAttribute;
12-
import application.io.opentelemetry.instrumentation.annotations.Timed;
13-
import io.opentelemetry.instrumentation.annotations.WithSpan;
14-
// import io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.Counted;
15-
// import
16-
// io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.MetricAttribute;
17-
// import io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.Timed;
10+
//import application.io.opentelemetry.instrumentation.annotations.Counted;
11+
//import application.io.opentelemetry.instrumentation.annotations.MetricAttribute;
12+
//import application.io.opentelemetry.instrumentation.annotations.Timed;
13+
import application.io.opentelemetry.instrumentation.annotations.WithSpan;
14+
import io.opentelemetry.api.metrics.DoubleHistogram;
15+
import io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.Counted;
16+
import io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.MetricAttribute;
17+
import io.opentelemetry.javaagent.instrumentation.instrumentationannotations.annotations.Timed;
1818
import com.google.common.base.Stopwatch;
1919
import io.opentelemetry.api.GlobalOpenTelemetry;
2020
import io.opentelemetry.api.common.Attributes;
@@ -46,7 +46,7 @@ public final class AnnotationSingletons {
4646
createInstrumenterWithAttributes();
4747
private static final SpanAttributesExtractor ATTRIBUTES = createAttributesExtractor();
4848

49-
private static final ConcurrentMap<String, LongHistogram> HISTOGRAMS =
49+
private static final ConcurrentMap<String, DoubleHistogram> HISTOGRAMS =
5050
new ConcurrentHashMap<>();
5151

5252
private static final ConcurrentMap<String, LongCounter> COUNTERS = new ConcurrentHashMap<>();
@@ -72,7 +72,7 @@ public static void recordHistogramWithAttributes(
7272
extractMetricAttributes(methodRequest, attributesBuilder);
7373
extractAdditionAttributes(timedAnnotation.additionalAttributes(), attributesBuilder);
7474
getHistogram(timedAnnotation)
75-
.record(stopwatch.stop().elapsed().toMillis(), attributesBuilder.build());
75+
.record(stopwatch.stop().elapsed().toMillis()/1000, attributesBuilder.build());
7676
}
7777

7878
private static void extractMetricAttributes(
@@ -206,15 +206,14 @@ private static String spanNameFromMethod(Method method) {
206206
return spanName;
207207
}
208208

209-
private static LongHistogram getHistogram(Timed timedAnnotation) {
209+
private static DoubleHistogram getHistogram(Timed timedAnnotation) {
210210
if (!HISTOGRAMS.containsKey(timedAnnotation.value())) {
211211
synchronized (timedAnnotation.value()) {
212212
if (!HISTOGRAMS.containsKey(timedAnnotation.value())) {
213213
HISTOGRAMS.put(
214214
timedAnnotation.value(),
215215
METER
216216
.histogramBuilder(timedAnnotation.value())
217-
.ofLongs()
218217
.setDescription(timedAnnotation.description())
219218
.setUnit(timedAnnotation.unit())
220219
.build());

0 commit comments

Comments
 (0)