Skip to content

Commit 9b7c0fa

Browse files
committed
hiding Azure Monitor behind app setting
1 parent 398fef4 commit 9b7c0fa

File tree

2 files changed

+44
-3
lines changed

2 files changed

+44
-3
lines changed

src/WebJobs.Script.WebHost/WebScriptHostBuilderExtension.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ public static IHostBuilder AddWebScriptHost(this IHostBuilder builder, IServiceP
5757
IEnvironment environment = services.GetService<IEnvironment>();
5858
IScriptWebHostEnvironment hostEnvironment = services.GetService<IScriptWebHostEnvironment>();
5959

60-
if (!hostEnvironment.InStandbyMode &&
60+
// Temporarily hide Azure Monitor support behind an app setting.
61+
string monitorSetting = environment.GetEnvironmentVariable("AZURE_MONITOR_ENABLED");
62+
bool.TryParse(monitorSetting, out bool monitorenabled);
63+
64+
if (monitorenabled &&
65+
!hostEnvironment.InStandbyMode &&
6166
!string.IsNullOrEmpty(environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteHostName)))
6267
{
6368
IEventGenerator eventGenerator = services.GetService<IEventGenerator>();

test/WebJobs.Script.Tests/Configuration/LoggingConfigurationTests.cs

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public void LoggerProviders_ApplicationInsights()
256256
}
257257

258258
[Fact]
259-
public void LoggerProviders_AzureMonitor()
259+
public void LoggerProviders_AzureMonitor_NoAppSetting()
260260
{
261261
IHost host = new HostBuilder()
262262
.ConfigureDefaultTestWebScriptHost()
@@ -275,7 +275,43 @@ public void LoggerProviders_AzureMonitor()
275275
loggerProviders.OfType<HostFileLoggerProvider>().Single();
276276
loggerProviders.OfType<FunctionFileLoggerProvider>().Single();
277277
loggerProviders.OfType<UserLogMetricsLoggerProvider>().Single();
278-
loggerProviders.OfType<AzureMonitorDiagnosticLoggerProvider>().Single();
278+
loggerProviders.OfType<NullLoggerProvider>().Single();
279+
}
280+
281+
[Theory]
282+
[InlineData("1", false)] // only true/false are parsed
283+
[InlineData("true", true)]
284+
[InlineData("false", false)]
285+
[InlineData("nonsense", false)]
286+
public void LoggerProviders_AzureMonitor_AppSetting(string appSettingValue, bool expected)
287+
{
288+
IHost host = new HostBuilder()
289+
.ConfigureDefaultTestWebScriptHost()
290+
.ConfigureServices(s =>
291+
{
292+
TestEnvironment environment = new TestEnvironment();
293+
environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteHostName, "something.azurewebsites.net");
294+
environment.SetEnvironmentVariable("AZURE_MONITOR_ENABLED", appSettingValue);
295+
s.AddSingleton<IEnvironment>(environment);
296+
})
297+
.Build();
298+
299+
IEnumerable<ILoggerProvider> loggerProviders = host.Services.GetService<IEnumerable<ILoggerProvider>>();
300+
301+
Assert.Equal(5, loggerProviders.Count());
302+
loggerProviders.OfType<SystemLoggerProvider>().Single();
303+
loggerProviders.OfType<HostFileLoggerProvider>().Single();
304+
loggerProviders.OfType<FunctionFileLoggerProvider>().Single();
305+
loggerProviders.OfType<UserLogMetricsLoggerProvider>().Single();
306+
307+
if (expected)
308+
{
309+
loggerProviders.OfType<AzureMonitorDiagnosticLoggerProvider>().Single();
310+
}
311+
else
312+
{
313+
loggerProviders.OfType<NullLoggerProvider>().Single();
314+
}
279315
}
280316
}
281317
}

0 commit comments

Comments
 (0)