diff --git a/src/Agent.Listener/Agent.cs b/src/Agent.Listener/Agent.cs index 8dc2f15ff0..13fd49b888 100644 --- a/src/Agent.Listener/Agent.cs +++ b/src/Agent.Listener/Agent.cs @@ -277,13 +277,22 @@ public async Task ExecuteCommand(CommandSettings command) var systemVersion = PlatformUtil.GetSystemVersion(); Dictionary telemetryData = new Dictionary - { - { "OS", PlatformUtil.GetSystemId() ?? "" }, - { "OSVersion", systemVersion?.Name?.ToString() ?? "" }, - { "OSBuild", systemVersion?.Version?.ToString() ?? "" }, - { "configuredAsService", $"{configuredAsService}"}, - { "startupType", startupTypeAsString } - }; + { + { "OS", PlatformUtil.GetSystemId() ?? "" }, + { "OSVersion", systemVersion?.Name?.ToString() ?? "" }, + { "OSBuild", systemVersion?.Version?.ToString() ?? "" }, + { "configuredAsService", $"{configuredAsService}"}, + { "startupType", startupTypeAsString } + }; + + // Check for EnableAgent fallback indicator + string fallbackUsed = Environment.GetEnvironmentVariable("VSTS_AGENT_VMEXT_FALLBACK_USED"); + if (!string.IsNullOrEmpty(fallbackUsed) && fallbackUsed.Equals("true", StringComparison.OrdinalIgnoreCase)) + { + telemetryData["EnableAgentVmExtFallbackUsed"] = "true"; + Trace.Info("EnableAgent VM extension fallback detected"); + } + var cmd = new Command("telemetry", "publish"); cmd.Data = JsonConvert.SerializeObject(telemetryData); cmd.Properties.Add("area", "PipelinesTasks"); @@ -296,7 +305,6 @@ public async Task ExecuteCommand(CommandSettings command) Trace.Warning($"Unable to publish telemetry data. {ex}"); } - // Run the agent interactively or as service return await RunAsync(settings, command.GetRunOnce()); }