dotnet / dotnet/diagnostics

Low memory, cross platform .Net Core library for processing diagnostic & trace information

Open
#380 12 comments 0 reactions 0 assignees View on GitHub
documentation enhancement
Dominant language
C++
Stars
1.3k
Forks
404
Avg merge
2d 3h
Merged PRs (30d)
38

Description

The Windows and Office 365 Security teams have implemented native Windows ETW libraries & managed .Net wrappers, given the existing .Net managed libraries and approaches suffer from various issues. From the [Hidden Treasure: Intrusion Detection with ETW (Part 2)](https://blogs.technet.microsoft.com/office365security/hidden-treasure-intrusion-detection-with-etw-part-2/) article:

> The TDH APIs are what all ETW APIs ultimately call. While they offer a great deal of power, they’re still Win32-style APIs that are cumbersome to use. TraceEvent is a library used by the PerfView tool and has the benefits of being a well-designed .NET API. Unfortunately, it doesn’t perform well for scenarios where we want to keep memory usage to a minimum. System.Diagnostics.Tracing has the advantage of being part of the .NET BCL but we’ve observed intermittent exceptions and unexpected behavior in the past. Additionally, it suffers from the same memory consumption issue that TraceEvent does.

> In response to these challenges, Office 365 Security chose to implement our own API with three primary goals:

> Intuitive and flexible API
High performance – filtering events in the native layer
Available both in .NET and native C++

Having checked with both teams this week, neither team requires a **High performance, low memory, cross platform .Net Core library for processing diagnostic & trace information**. As such, this request is to discuss creating such a library or to optimize the existing ones, possibly taking the great work these teams have already done and applying to cross platform and .Net Core scenarios.

Moreover, the scope of this request encompasses all diagnostic & trace information, for example this library should be able to process real-time ETW traces on Windows, EventCounter on Windows / Linux etc.

Have linked to [Tracing and Counters Interest Group - Announcements](https://github.com/dotnet/coreclr/issues/25524)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.