Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native AOT Diagnostics in .NET 8 #79241

Closed
13 of 20 tasks
Tracked by #69739
LakshanF opened this issue Dec 5, 2022 · 3 comments
Closed
13 of 20 tasks
Tracked by #69739

Native AOT Diagnostics in .NET 8 #79241

LakshanF opened this issue Dec 5, 2022 · 3 comments
Assignees
Labels
area-NativeAOT-coreclr User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@LakshanF
Copy link
Member

LakshanF commented Dec 5, 2022

Goal: Full Diagnostic Capability in NativeAOT Applications

  • Logging
    • EventSource
      • Runtime library EventSource need to work
      • EventSource events can be read from Windows and Linux platforms
      • Create a plan for general EventSource to work (cut from .NET8). New APIs added in .NET8 to enable primitive payloads to be AOT compliant
    • DiagnosticSource can be used for in-proc logging (no serialization) and as out-proc (with serialization) via the EventSource bridge for Runtime libraries
    • ETW Events
      • GC, Contention, Exception, Heap Snapshot (cut from .NET8), Rundown (cut from .NET8)
  • Diagnostic tool support
    • Following dotnet-* tools need to work
      • dotnet-trace, dotnet-counter, dotnet-monitor
  • Open telemetry Plan
  • Debugging support

Work that is needed in .NET 8 to make the above happen

Potential other improvements:

@LakshanF LakshanF added this to the 8.0.0 milestone Dec 5, 2022
@LakshanF LakshanF self-assigned this Dec 5, 2022
@ghost
Copy link

ghost commented Dec 5, 2022

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

Issue Details

Goal: Full Diagnostic Capability in NativeAOT Applications

  • Logging
    • EventSource
      • Runtime library EventSource need to work
      • EventSource events can be read from Windows and Linux platforms
      • Create a plan for general EventSource to work
    • DiagnosticSource can be used for in-proc logging (no serialization) and as out-proc (with serialization) via the EventSource bridge for Runtime libraries
    • ETW Events
      • GC, Contention, Exception, Heap Snapshot, Rundown
  • Diagnostic tool support
    • Following dotnet-* tools need to work
      • dotnet-trace, dotnet-counter, dotnet-monitor
  • Open telemetry Plan
  • Debugging support

Work that is needed in .NET 8 to make the above happen

  • Port EventPipe to NativeAot (and make it possible to be used as an optional feature)
    • Will allow Linux to read EventSource events
    • Will allow Diagnostic tools to work seamlessly
    • Bring up plan
      • Use a tracing sample application (A dotnet-trace like client from here and a target process like here) to bring up EventPipe in NativeAOT
      • EventPipe in NativeAOT works in both Linux and Windows
      • Dotnet-* tools (trace, monitor and counter) work with NativeAOT applications
  • EventSource & DiagnosticSource
    • Work with runtime library owners to ensure that trimming does not break
    • Work on a plan for EventSource source generator for the long-term solution (In .NET 8, compiler warnings will show problems)
  • ETW Events
Author: LakshanF
Assignees: LakshanF
Labels:

area-NativeAOT-coreclr

Milestone: 8.0.0

@agocke
Copy link
Member

agocke commented Aug 10, 2023

Closing out, as work is done for .NET 8

@agocke agocke closed this as completed Aug 10, 2023
@filipnavara
Copy link
Member

Heap Snapshot (cut from .NET8), Rundown (cut from .NET8)

Is there a new issue to follow for these?

@ghost ghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-NativeAOT-coreclr User Story A single user-facing feature. Can be grouped under an epic.
Projects
Archived in project
Development

No branches or pull requests

3 participants