CLRDivingNET / DotNetCoreProfiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inject DevOps-things using ICorProfilerCallback

Build Status

This project has a goal to demonstrate injection of the following devops-related things into .net core 3.1 apps:

Limitations

Project structure

ICorProfilerCallback implementation

See src/profiler.

Interceptors

See samples/Interception:

Observers

See src/Interception.Observers:

  • EntityFrameworkCoreObserver observers and measure execution time of entity framework core queries
  • HttpHandlerDiagnostrics observers and measure execution time of outgoing http requests

Method parameter validation

See src/Interception.Attributes:

  • NotNullAttribute checks if a passed parameter value is not null,
  • GreatThenZeroAttribute checks if a passed int value is positive

Prometheus/Statsd reporter

See src/Interception.OpenTracing.Statd is an implementation of OpenTracing to report the metrics into statsd.

(max by (traceId) (finishDate{quantile="0.99"}) - on (traceId) min by (traceId) (startDate{quantile="0.99"})) * on(traceId) group_left(service, type) metric_info{quantile="0.99"}

Samples

See samples.

Development environment

See devenv.md.

About

License:MIT License


Languages

Language:C++ 69.1%Language:C 23.2%Language:CMake 2.4%Language:C# 1.4%Language:Shell 1.1%Language:Assembly 0.8%Language:TeX 0.7%Language:Roff 0.7%Language:Makefile 0.3%Language:Dockerfile 0.1%Language:Perl 0.1%Language:M4 0.1%Language:Go 0.1%Language:Pawn 0.1%Language:Batchfile 0.0%Language:PowerShell 0.0%Language:Objective-C 0.0%Language:Mustache 0.0%