Skip to content

Introduce ABP Diagnostics Module #15932

@mgochmuradov

Description

@mgochmuradov

Describe the solution you'd like

An ideal solution would be to use a new Volo.Abp.Diagnostics module like:

[DependsOn(typeof(AbpDiagnosticsModule))]
// Or even
[DependsOn(typeof(AbpDiagnosticsOpenTelemetryModule))]

this should register interceptors for diagnostics.

Then in any class

[Diagnostics]
public class Worker : ITransientDependency
{
    [Diagnostics("Doing work")]
    public async Task DoWork()
    {
        // code
    }
}

this should intercept this method and start an Activity with the name Worker : Doing work

And if AbpDiagnosticsOpenTelemetryModule is used, then send tracing information to the OpenTelemetry Collector

Additional context

Diagnostics is a critical concept in shipping a product.
Diagnostics can help to analyze and fix applications' performance issues.

I have already implemented it for use in our company and can contribute to it by creating a PR.

Here is an example of what you get:
image
image

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions