diff --git a/src/main/java/org/commcare/formplayer/services/ResponseMetaDataTracker.java b/src/main/java/org/commcare/formplayer/services/ResponseMetaDataTracker.java index 48cb74520..6c4694372 100644 --- a/src/main/java/org/commcare/formplayer/services/ResponseMetaDataTracker.java +++ b/src/main/java/org/commcare/formplayer/services/ResponseMetaDataTracker.java @@ -1,5 +1,7 @@ package org.commcare.formplayer.services; +import io.opentracing.Span; +import io.opentracing.util.GlobalTracer; import org.commcare.formplayer.util.FormplayerDatadog; import org.commcare.formplayer.util.Constants; import org.springframework.beans.factory.annotation.Autowired; @@ -7,6 +9,8 @@ import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; +import datadog.trace.api.interceptor.MutableSpan; + @Component @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class ResponseMetaDataTracker { @@ -23,6 +27,11 @@ public boolean isAttemptRestore() { } public void setAttemptRestore(boolean attemptRestore) { + final Span span = GlobalTracer.get().activeSpan(); + if (span != null && (span instanceof MutableSpan)) { + MutableSpan localRootSpan = ((MutableSpan) span).getLocalRootSpan(); + localRootSpan.setTag("attempt_restore", attemptRestore); + } datadog.addRequestScopedTag(Constants.CATEGORY_TAG, Constants.TimingCategories.COMPLETE_RESTORE); this.attemptRestore = attemptRestore; } @@ -32,6 +41,11 @@ public boolean isNewInstall() { } public void setNewInstall(boolean newInstall) { + final Span span = GlobalTracer.get().activeSpan(); + if (span != null && (span instanceof MutableSpan)) { + MutableSpan localRootSpan = ((MutableSpan) span).getLocalRootSpan(); + localRootSpan.setTag("new_install", newInstall); + } datadog.addRequestScopedTag(Constants.CATEGORY_TAG, Constants.TimingCategories.APP_INSTALL); this.newInstall = newInstall; }