package com.yammer.metrics.core;
import com.google.common.base.Optional;
import com.yammer.telemetry.tracing.Span;
import com.yammer.telemetry.tracing.SpanHelper;
public class InstrumentedTimerContext extends TimerContext {
private final Optional<Span> currentSpan;
private final MetricName metricName;
public InstrumentedTimerContext(InstrumentedTimer timer, Clock clock) {
super(timer, clock);
currentSpan = SpanHelper.currentSpan();
metricName = timer.getMetricName();
for (Span span : SpanHelper.currentSpan().asSet()) {
span.addAnnotation("Start Timer", String.valueOf(metricName));
}
}
@Override
public void stop() {
try {
super.stop();
} finally {
for (Span span : currentSpan.asSet()) {
span.addAnnotation("Stop Timer", String.valueOf(metricName));
}
}
}
}