Skip to content

Commit 85a614a

Browse files
authored
Add convenient method FinishedSpan::getDuration (#265)
1 parent 5b9edf9 commit 85a614a

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpanTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ void should_calculate_instant_from_brave_timestamps() {
5858

5959
then(finishedSpan.getStartTimestamp().toEpochMilli()).isEqualTo(TimeUnit.MICROSECONDS.toMillis(startMicros));
6060
then(finishedSpan.getEndTimestamp().toEpochMilli()).isEqualTo(TimeUnit.MICROSECONDS.toMillis(endMicros));
61+
then(finishedSpan.getDuration().toNanos()).isEqualTo(TimeUnit.MICROSECONDS.toNanos(endMicros - startMicros));
6162
}
6263

6364
@Test

micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpanTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ void should_calculate_instant_from_otel_timestamps() {
142142

143143
then(finishedSpan.getStartTimestamp().toEpochMilli()).isEqualTo(TimeUnit.NANOSECONDS.toMillis(startMicros));
144144
then(finishedSpan.getEndTimestamp().toEpochMilli()).isEqualTo(TimeUnit.NANOSECONDS.toMillis(endMicros));
145+
then(finishedSpan.getDuration().toNanos()).isEqualTo(endMicros - startMicros);
145146
}
146147

147148
@Test

micrometer-tracing/src/main/java/io/micrometer/tracing/exporter/FinishedSpan.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.micrometer.tracing.exporter;
1717

18+
import java.time.Duration;
1819
import java.time.Instant;
1920
import java.util.Collection;
2021
import java.util.Collections;
@@ -34,6 +35,7 @@
3435
*
3536
* @author OpenZipkin Brave Authors
3637
* @author Marcin Grzejszczak
38+
* @author Yanming Zhou
3739
* @since 1.0.0
3840
*/
3941
public interface FinishedSpan {
@@ -60,6 +62,14 @@ public interface FinishedSpan {
6062
*/
6163
Instant getEndTimestamp();
6264

65+
/**
66+
* @return span's duration
67+
* @since 1.2.0
68+
*/
69+
default Duration getDuration() {
70+
return Duration.between(getStartTimestamp(), getEndTimestamp());
71+
}
72+
6373
/**
6474
* Sets the tags.
6575
* @param tags tags to set

0 commit comments

Comments
 (0)