Skip to content

Commit 35c1865

Browse files
committed
spring boot micrometer
1 parent 815008d commit 35c1865

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

jvm-common/src/main/kotlin/org/digma/intellij/plugin/idea/execution/flavor/SpringBootMicrometerInstrumentationFlavor.kt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import com.intellij.execution.configurations.RunConfiguration
44
import com.intellij.execution.configurations.RunnerSettings
55
import com.intellij.execution.configurations.SimpleProgramParameters
66
import com.intellij.openapi.module.Module
7+
import org.digma.intellij.plugin.analytics.LOCAL_ENV
8+
import org.digma.intellij.plugin.analytics.LOCAL_TESTS_ENV
9+
import org.digma.intellij.plugin.analytics.isCentralized
710
import org.digma.intellij.plugin.errorreporting.ErrorReporter
811
import org.digma.intellij.plugin.execution.RunConfigurationInstrumentationService
912
import org.digma.intellij.plugin.idea.execution.JavaToolOptionsBuilder
@@ -16,6 +19,10 @@ import org.digma.intellij.plugin.idea.execution.getModuleMetadata
1619
import org.digma.intellij.plugin.idea.execution.isMicrometerTracingInSettings
1720

1821

22+
private const val ENVIRONMENT_RESOURCE_ATTRIBUTE = "MANAGEMENT_OPENTELEMETRY_RESOURCE-ATTRIBUTES_digma_environment"
23+
private const val ENVIRONMENT_ID_RESOURCE_ATTRIBUTE = "MANAGEMENT_OPENTELEMETRY_RESOURCE-ATTRIBUTES_digma_environment_id"
24+
25+
1926
//SpringBootMicrometerInstrumentationFlavor supports the same gradle/maven tasks as DefaultInstrumentationFlavor.
2027
class SpringBootMicrometerInstrumentationFlavor : DefaultInstrumentationFlavor() {
2128

@@ -109,8 +116,24 @@ class SpringBootMicrometerInstrumentationFlavor : DefaultInstrumentationFlavor()
109116
return try {
110117
val isTest = isTest(instrumentationService, configuration, params)
111118

119+
if (needToAddDigmaEnvironmentAttribute(parametersExtractor)) {
120+
val envAttribute = if (isTest) {
121+
"$ENVIRONMENT_RESOURCE_ATTRIBUTE=$LOCAL_TESTS_ENV"
122+
} else {
123+
"$ENVIRONMENT_RESOURCE_ATTRIBUTE=$LOCAL_ENV"
124+
}
125+
126+
otelResourceAttributesBuilder.withOtelResourceAttribute(envAttribute)
127+
}
128+
129+
if (!hasEnvironmentIdAttribute(parametersExtractor) &&
130+
isCentralized(configuration.project)
131+
) {
132+
otelResourceAttributesBuilder.withUserId()
133+
}
134+
112135
otelResourceAttributesBuilder
113-
.withCommonResourceAttributes(isTest, parametersExtractor)
136+
.withScmCommitId()
114137
.build()
115138

116139
} catch (e: Throwable) {
@@ -120,6 +143,19 @@ class SpringBootMicrometerInstrumentationFlavor : DefaultInstrumentationFlavor()
120143
}
121144

122145

146+
private fun needToAddDigmaEnvironmentAttribute(parametersExtractor: ParametersExtractor): Boolean {
147+
return !hasEnvironmentAttribute(parametersExtractor) && !hasEnvironmentIdAttribute(parametersExtractor)
148+
}
149+
150+
private fun hasEnvironmentAttribute(parametersExtractor: ParametersExtractor): Boolean {
151+
return parametersExtractor.extractEnvValue(ENVIRONMENT_RESOURCE_ATTRIBUTE) != null
152+
}
153+
154+
private fun hasEnvironmentIdAttribute(parametersExtractor: ParametersExtractor): Boolean {
155+
return parametersExtractor.extractEnvValue(ENVIRONMENT_ID_RESOURCE_ATTRIBUTE) != null
156+
}
157+
158+
123159
//actually not relevant because this flavor never calls withOtelAgent
124160
override fun useOtelAgent(): Boolean {
125161
return false

0 commit comments

Comments
 (0)