Skip to content

Unexpected error in .NET Core 3.1 when running "Collect metrics" sample from MS documentation #4522

Open
dotnet/docs
#42770
@zsharp-gls

Description

@zsharp-gls

Description

The "Collecting metrics" article on MS Learn lists that all of its steps should be compatible with .NET Core 3.1 or later. However, I get an Unsupported Command Exception any time I target a .NET Core 3.1 app with dotnet-counters.

My version of the sample in .NET Core 3.1 is available here

When I run the .NET Core 3.1 version, this is the output when I try to use dotnet-counters:

PS C:\Users\zsharp> dotnet-counters monitor -n metric-instr HatCo.HatStore
Unhandled exception: Microsoft.Diagnostics.NETCore.Client.UnsupportedCommandException: GetProcessInfo failed - Command is not supported.
   at Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient.ValidateResponseMessage(IpcMessage responseMessage, String operationName, ValidateResponseOptions options) in /_/src/Microsoft.Diagnostics.NETCore.Client/DiagnosticsClient/DiagnosticsClient.cs:line 750
   at Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient.GetProcessInfoFromResponse(IpcResponse response, String operationName) in /_/src/Microsoft.Diagnostics.NETCore.Client/DiagnosticsClient/DiagnosticsClient.cs:line 707
   at Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient.GetProcessInfo() in /_/src/Microsoft.Diagnostics.NETCore.Client/DiagnosticsClient/DiagnosticsClient.cs:line 444
   at Microsoft.Diagnostics.Tools.Counters.CounterMonitor.Monitor(CancellationToken ct, List`1 counter_list, String counters, IConsole console, Int32 processId, Int32 refreshInterval, String name, String diagnosticPort, Boolean resumeRuntime, Int32 maxHistograms, Int32 maxTimeSeries, TimeSpan duration, Boolean showDeltas) in /_/src/Tools/dotnet-counters/CounterMonitor.cs:line 213
   at System.CommandLine.Invocation.CommandHandler.GetResultCodeAsync(Object value, InvocationContext context)
   at System.CommandLine.Invocation.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseParseErrorReporting>b__21_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass25_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass23_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__22_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseParseDirective>b__20_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseDebugDirective>b__11_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__10_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass14_0.<<UseExceptionHandler>b__0>d.MoveNext()

I also created a branch targeting .NET 5.0, available here. When I run the same command against the .NET 5.0 version, it works just fine.

Configuration

System info

  • Windows 11, version 23H2 (OS Build 22631.3155)
PS C:\Users\zsharp> dotnet --info
.NET SDK:
 Version:           8.0.102
 Commit:            64f1bc458e
 Workload version:  8.0.100-manifests.bc6351c6

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22631
 OS Platform: Windows
 RID:         win-x64
 Base Path:   C:\Program Files\dotnet\sdk\8.0.102\

.NET workloads installed:
 Workload version: 8.0.100-manifests.bc6351c6
There are no installed workloads to display.

dotnet-counter version

PS C:\Users\zsharp> dotnet tool list -g
Package Id                     Version         Commands
--------------------------------------------------------------
dotnet-counters                8.0.510501      dotnet-counters

Other Info

I'm running this in a Windows PowerShell session with Administrator permissions. When I run without Administrator permissions, I get Unhandled exception: System.UnauthorizedAccessException: Access to the path is denied.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions