Skip to content

Commit 34ba012

Browse files
authored
Fix role name config (#1450)
1 parent 5f71146 commit 34ba012

File tree

3 files changed

+75
-4
lines changed

3 files changed

+75
-4
lines changed

agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/configuration/ConfigurationBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ public static void overlayEnvVars(Configuration config) throws IOException {
195195

196196
if (isTrimEmpty(config.role.instance)) {
197197
// only use WEBSITE_INSTANCE_ID as a fallback
198-
config.role.name = getEnv(WEBSITE_INSTANCE_ID);
198+
config.role.instance = getEnv(WEBSITE_INSTANCE_ID);
199199
}
200200
config.role.instance = overlayWithEnvVar(APPLICATIONINSIGHTS_ROLE_INSTANCE, config.role.instance);
201201

@@ -248,7 +248,7 @@ static String trimAndEmptyToNull(String str) {
248248
}
249249

250250
private static boolean isTrimEmpty(String value) {
251-
return value != null && !value.trim().isEmpty();
251+
return value == null || value.trim().isEmpty();
252252
}
253253

254254
public static class ConfigurationException extends RuntimeException {

agent/agent-bootstrap/src/test/java/com/microsoft/applicationinsights/agent/bootstrap/configuration/ConfigurationTest.java

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import com.squareup.moshi.JsonAdapter;
1818
import com.squareup.moshi.JsonReader;
1919
import com.squareup.moshi.Moshi;
20-
import com.squareup.moshi.Moshi.Builder;
2120
import com.squareup.moshi.Types;
2221
import okio.Buffer;
2322
import org.junit.*;
@@ -31,7 +30,11 @@ public class ConfigurationTest {
3130
public EnvironmentVariables envVars = new EnvironmentVariables();
3231

3332
private static Configuration loadConfiguration() throws IOException {
34-
CharSource json = Resources.asCharSource(Resources.getResource("applicationinsights.json"), Charsets.UTF_8);
33+
return loadConfiguration("applicationinsights.json");
34+
}
35+
36+
private static Configuration loadConfiguration(String resourceName) throws IOException {
37+
CharSource json = Resources.asCharSource(Resources.getResource(resourceName), Charsets.UTF_8);
3538
Moshi moshi = MoshiBuilderFactory.createBuilderWithAdaptor();
3639
JsonAdapter<Configuration> jsonAdapter = moshi.adapter(Configuration.class);
3740
return jsonAdapter.fromJson(json.read());
@@ -154,6 +157,9 @@ public void shouldParseProcessorConfiguration() throws IOException {
154157

155158
@Test
156159
public void shouldUseDefaults() throws IOException {
160+
envVars.set("WEBSITE_SITE_NAME", "role name from website env");
161+
envVars.set("WEBSITE_INSTANCE_ID", "role instance from website env");
162+
157163
Configuration configuration = loadConfiguration();
158164

159165
assertEquals("InstrumentationKey=00000000-0000-0000-0000-000000000000", configuration.connectionString);
@@ -176,6 +182,68 @@ public void shouldOverrideConnectionString() throws IOException {
176182
assertEquals("InstrumentationKey=11111111-1111-1111-1111-111111111111", configuration.connectionString);
177183
}
178184

185+
@Test
186+
public void shouldOverrideRoleName() throws IOException {
187+
envVars.set("APPLICATIONINSIGHTS_ROLE_NAME", "role name from env");
188+
envVars.set("WEBSITE_SITE_NAME", "role name from website env");
189+
190+
Configuration configuration = loadConfiguration();
191+
ConfigurationBuilder.overlayEnvVars(configuration);
192+
193+
assertEquals("role name from env", configuration.role.name);
194+
}
195+
196+
@Test
197+
public void shouldOverrideRoleNameWithWebsiteEnvVar() throws IOException {
198+
envVars.set("WEBSITE_SITE_NAME", "role name from website env");
199+
200+
Configuration configuration = loadConfiguration("applicationinsights_NoRole.json");
201+
ConfigurationBuilder.overlayEnvVars(configuration);
202+
203+
assertEquals("role name from website env", configuration.role.name);
204+
}
205+
206+
@Test
207+
public void shouldNotOverrideRoleNameWithWebsiteEnvVar() throws IOException {
208+
envVars.set("WEBSITE_SITE_NAME", "role name from website env");
209+
210+
Configuration configuration = loadConfiguration();
211+
ConfigurationBuilder.overlayEnvVars(configuration);
212+
213+
assertEquals("Something Good", configuration.role.name);
214+
}
215+
216+
@Test
217+
public void shouldOverrideRoleInstance() throws IOException {
218+
envVars.set("APPLICATIONINSIGHTS_ROLE_INSTANCE", "role instance from env");
219+
envVars.set("WEBSITE_INSTANCE_ID", "role instance from website env");
220+
221+
Configuration configuration = loadConfiguration();
222+
ConfigurationBuilder.overlayEnvVars(configuration);
223+
224+
assertEquals("role instance from env", configuration.role.instance);
225+
}
226+
227+
@Test
228+
public void shouldOverrideRoleInstanceWithWebsiteEnvVar() throws IOException {
229+
envVars.set("WEBSITE_INSTANCE_ID", "role instance from website env");
230+
231+
Configuration configuration = loadConfiguration("applicationinsights_NoRole.json");
232+
ConfigurationBuilder.overlayEnvVars(configuration);
233+
234+
assertEquals("role instance from website env", configuration.role.instance);
235+
}
236+
237+
@Test
238+
public void shouldNotOverrideRoleInstanceWithWebsiteEnvVar() throws IOException {
239+
envVars.set("WEBSITE_INSTANCE_ID", "role instance from website env");
240+
241+
Configuration configuration = loadConfiguration();
242+
ConfigurationBuilder.overlayEnvVars(configuration);
243+
244+
assertEquals("xyz123", configuration.role.instance);
245+
}
246+
179247
@Test
180248
public void shouldOverrideSamplingPercentage() throws IOException {
181249
envVars.set("APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE", "0.25");
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"connectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
3+
}

0 commit comments

Comments
 (0)