Sad Tux - Windows bias detected
This page contains Windows bias

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

Detected Bias Types
windows_first
windows_tools
powershell_heavy
missing_linux_example
Summary
The documentation exhibits a strong Windows bias. Windows-specific tools (Visual Studio, WindowsServer VM images, cmd.exe) are mentioned exclusively or before any Linux equivalents. The only package installation example is given in PowerShell, and there are no Linux or cross-platform alternatives provided for key steps such as environment setup, package installation, or VM configuration. The documentation does not address how to use Application Insights with Azure Batch on Linux pools, nor does it provide Linux shell commands or mention .NET Core cross-platform compatibility.
Recommendations
  • Add Linux-based prerequisites, such as instructions for installing .NET SDK on Ubuntu or other distributions.
  • Provide equivalent Linux shell (bash) commands for NuGet package installation (e.g., 'dotnet add package').
  • Include examples and configuration steps for deploying Application Insights on Azure Batch pools running Linux VMs (e.g., Ubuntu images).
  • Mention and demonstrate how to run the sample code on .NET Core/.NET 6+ for cross-platform compatibility.
  • Show how to use Linux-native tools and commands for staging files and running tasks (e.g., using bash scripts instead of cmd.exe).
  • Clarify which features or libraries are Windows-only (e.g., Microsoft.ApplicationInsights.WindowsServer) and suggest alternatives or limitations for Linux.
  • Add screenshots or walkthroughs for monitoring Linux-based compute nodes in the Azure portal.
GitHub Create Pull Request

Scan History

Date Scan Status Result
2026-01-12 00:00 #99 completed Biased Biased
2026-01-11 06:20 #98 completed Biased Biased
2026-01-10 00:00 #92 completed Clean Clean
2026-01-06 22:28 #78 completed Clean Clean
2025-12-29 18:00 #48 cancelled Biased Biased
2025-12-15 00:00 #7 completed Clean Clean
2025-12-14 05:05 #6 completed Clean Clean

Flagged Code Snippets

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",
 };
...
...
 // 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
};
...