Diagnostics: User Story: Expose .NET Perf Counters in the local machine scenario

Created on 30 Nov 2018  路  13Comments  路  Source: dotnet/diagnostics

As a developer for a .Net Core app, I can see metrics egressed to a console UI or file, so that I can quickly assess if I need to do further performance investigation
(dotnet counters)

Work items:

Most helpful comment

I think its nice to have these user story items that don't get marked done until we've completed the E2E (which includes adding the remaining 3.0 counters) but I moved this out of Preview5. Congrats we now have 0 Preview5 items 馃憤

All 13 comments

Work items:

@shirhatti We're thinking it should be part of dotnet-collect since all of the flags and infrastructure would likely be the same and it should have a "top" like interface.

image

We'll need to decide what things we show (aggregations and counters)

    dotnet-collect - Collect diagnostic information from a .NET process

SYNOPSIS

    dotnet collect [-v, --version] [-h, --help]
                   [-p, --process-id]
                   [-o, --output]
                   <command> [<args>]

OPTIONS

    -v, --version
        Prints the version of the dotnet collect utility.

    -h, --help
        Prints the synopsis and a list of the most commonly used commands. 

    -p, --process-id <PROCESS_ID>
        The process id of the process you want to collect diagnostic information
        from.

    -o, --output <OUTPUT_DIRECTORY>
        The output directory where this diagnostic data should be written to.


================================================================================

NAME

    dotnet-collect-dump - Collect a process dump 

SYNOPSIS

    dotnet collect dump [-h, --help]

DESCRIPTION

    On Windows, dotnet-collect-dump collects a Windows minidump.
    On Linux, dotnet-collect-dump collects a core dump using createdump.

OPTIONS

    -h, --help
        Prints the synopsis and a list of the most commonly used commands. 

================================================================================

NAME

    dotnet-collect-trace - Collect a trace

SYNOPSIS

    dotnet collect dump [-h, --help]
                        [--provider]
                        [--buffer]


OPTIONS

    -h, --help
        Prints the synopsis and a list of the most commonly used commands.

    --provider <PROVIDER_SPEC>
        An EventPipe provider to enable.
        A string in the form '<provider name>:<keywords>:<level>'. 

    --buffer <BUFFER_SIZE_IN_MB>
        The size of the in-memory circular buffer in megabytes.

================================================================================

NAME

    dotnet-monitor

SYNOPSIS

    dotnet monitor [-v, --version] [-h, --help]
                   [--provider]
                   [--buffer]


OPTIONS

    -v, --version
        Prints the version of the dotnet collect utility.

    -h, --help
        Prints the synopsis and a list of the most commonly used commands.

    --provider <PROVIDER_SPEC>
        An EventPipe provider to enable.
        A string in the form '<provider name>:<keywords>:<level>'. 

    --buffer <BUFFER_SIZE_IN_MB>
        The size of the in-memory circular buffer in megabytes.

================================================================================

I just captured some of the raw design related comments here into a doc #107

I created issue #109 to explicitly capture our console UI design work for the set of scenarios we're after. Although there are several separate scenarios, I think we are going to want a fair amount of shared design work to ensure we build something that has consistent look and feel. I'd suggest we do further design commentary in #109.

I'm going to reopen this. We are close but the final work to complete the scenario hasn't been commited yet and there are no instructions written in https://github.com/dotnet/diagnostics/tree/master/documentation.

I tried this and couldn鈥檛 get it to work, guessing this is why

Yes, what you saw during the demo is from my own branch which depends on https://github.com/Microsoft/perfview/pull/915 getting merged. Once this gets merged in, I'll merge in my changes along with the documentation.

Documentation is available in https://github.com/dotnet/diagnostics/blob/master/src/Tools/dotnet-counters/README.md.

I think we can close this as there is a separate issue for tracking additional counters to be added to the runtime - https://github.com/dotnet/coreclr/issues/20372.

Can we follow the pattern all the other tools were using and put the docs here: https://github.com/dotnet/diagnostics/tree/master/documentation
Example: https://github.com/dotnet/diagnostics/blob/master/documentation/dotnet-trace-instructions.md

You could link from the README in the source to the docs folder.

I think its nice to have these user story items that don't get marked done until we've completed the E2E (which includes adding the remaining 3.0 counters) but I moved this out of Preview5. Congrats we now have 0 Preview5 items 馃憤

Removing providing managed APIs for our canonical set of runtime performance counter #83 from this User Story and resolving.

Was this page helpful?
0 / 5 - 0 ratings