< Summary - Syki

Information
Class: Syki.Daemon.Configs.OpenTelemetryConfigs
Assembly: Daemon
File(s): /home/runner/work/syki/syki/Daemon/Configs/OpenTelemetryConfigs.cs
Tag: 4_16869239191
Line coverage
4%
Covered lines: 1
Uncovered lines: 20
Coverable lines: 21
Total lines: 39
Line coverage: 4.7%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddDaemonOpenTelemetryConfigs(...)50%524.76%

File(s)

/home/runner/work/syki/syki/Daemon/Configs/OpenTelemetryConfigs.cs

#LineLine coverage
 1using Npgsql;
 2using OpenTelemetry.Logs;
 3using OpenTelemetry.Trace;
 4using OpenTelemetry.Metrics;
 5using OpenTelemetry.Resources;
 6
 7namespace Syki.Daemon.Configs;
 8
 9public static class OpenTelemetryConfigs
 10{
 11    public const string DomainEventsProcessing =  nameof(DomainEventsProcessing);
 12    public const string CommandsProcessing = nameof(CommandsProcessing);
 13
 14    public static void AddDaemonOpenTelemetryConfigs(this WebApplicationBuilder builder)
 15    {
 416        if (Env.IsTesting()) return;
 17
 018        var settings = builder.Configuration.Tracing();
 19
 020        builder.Services
 021            .AddOpenTelemetry()
 022            .ConfigureResource(resource => resource.AddService("Daemon"))
 023            .WithTracing(tracing =>
 024            {
 025                tracing.AddSource(DomainEventsProcessing);
 026                tracing.AddSource(CommandsProcessing);
 027
 028                tracing
 029                    .AddNpgsql()
 030                    .AddQuartzInstrumentation()
 031                    .AddHttpClientInstrumentation()
 032                    .AddAspNetCoreInstrumentation();
 033
 034                tracing
 035                    .SetSampler(new TraceIdRatioBasedSampler(settings.SamplingRatio))
 036                    .AddOtlpExporter();
 037            });
 038    }
 39}