About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
windows_first
⚠️
windows_tools
⚠️
powershell_heavy
⚠️
missing_linux_example
Summary:
The documentation demonstrates a strong Windows bias: it exclusively references Windows tools (Visual Studio, cmd, WindowsServer images), uses PowerShell/NuGet commands for package installation, and all code/configuration examples assume a Windows environment. There are no Linux equivalents or instructions for cross-platform development, and the only VM image referenced is 'MicrosoftWindowsServer'.
Recommendations:
- Provide equivalent instructions and examples for Linux environments, including how to install Application Insights packages using dotnet CLI or other cross-platform tools.
- Include guidance for developing and running Azure Batch .NET applications on Linux, such as using VS Code or JetBrains Rider instead of only Visual Studio.
- Show how to configure Application Insights for Linux compute nodes, including using a Linux VM image in the pool configuration and appropriate command-line syntax (e.g., bash instead of cmd).
- Add Linux-specific code snippets or highlight any differences in file paths, environment variables, or deployment steps.
- Mention cross-platform compatibility and link to relevant documentation for .NET Core/.NET 5+ on Linux.
Create pull request
Flagged Code Snippets
...
// Batch start task telemetry runner
private const string BatchStartTaskFolderName = "StartTask";
private const string BatchStartTaskTelemetryRunnerName = "Microsoft.Azure.Batch.Samples.TelemetryStartTask.exe";
private const string BatchStartTaskTelemetryRunnerAIConfig = "ApplicationInsights.config";
...
CloudPool pool = client.PoolOperations.CreatePool(
topNWordsConfiguration.PoolId,
targetDedicated: topNWordsConfiguration.PoolNodeCount,
virtualMachineSize: "standard_d1_v2",
VirtualMachineConfiguration: new VirtualMachineConfiguration(
imageReference: new ImageReference(
publisher: "MicrosoftWindowsServer",
offer: "WindowsServer",
sku: "2019-datacenter-core",
version: "latest"),
nodeAgentSkuId: "batch.node.windows amd64");
...
// Create a start task which will run a dummy exe in background that simply emits performance
// counter data as defined in the relevant ApplicationInsights.config.
// Note that the waitForSuccess on the start task was not set so the Compute Node will be
// available immediately after this command is run.
pool.StartTask = new StartTask()
{
CommandLine = string.Format("cmd /c {0}", BatchStartTaskTelemetryRunnerName),
ResourceFiles = resourceFiles
};
...
Install-Package Microsoft.ApplicationInsights.WindowsServer
private static readonly List<string> AIFilesToUpload = new List<string>()
{
// Application Insights config and assemblies
"ApplicationInsights.config",
"Microsoft.ApplicationInsights.dll",
"Microsoft.AI.Agent.Intercept.dll",
"Microsoft.AI.DependencyCollector.dll",
"Microsoft.AI.PerfCounterCollector.dll",
"Microsoft.AI.ServerTelemetryChannel.dll",
"Microsoft.AI.WindowsServer.dll",
// custom telemetry initializer assemblies
"Microsoft.Azure.Batch.Samples.TelemetryInitializer.dll",
};
...