< Summary

Information
Class: AsiBackbone.OpenTelemetry.OpenTelemetryGovernanceBuilderExtensions
Assembly: AsiBackbone.OpenTelemetry
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.OpenTelemetry/OpenTelemetryGovernanceBuilderExtensions.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 11
Coverable lines: 11
Total lines: 41
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
UseOpenTelemetryEmission(...)100%210%
UseOpenTelemetryEmission(...)100%210%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.OpenTelemetry/OpenTelemetryGovernanceBuilderExtensions.cs

#LineLine coverage
 1using AsiBackbone.Core.Emissions;
 2using AsiBackbone.DependencyInjection;
 3using Microsoft.Extensions.DependencyInjection;
 4
 5namespace AsiBackbone.OpenTelemetry;
 6
 7/// <summary>
 8/// Provides explicit builder facade extension methods for OpenTelemetry governance emission.
 9/// </summary>
 10public static class OpenTelemetryGovernanceBuilderExtensions
 11{
 12    /// <summary>
 13    /// Adds the OpenTelemetry governance emission provider through the AsiBackbone builder facade using default options
 14    /// </summary>
 15    public static IAsiBackboneBuilder UseOpenTelemetryEmission(this IAsiBackboneBuilder builder)
 16    {
 017        return builder.UseOpenTelemetryEmission(_ => { });
 18    }
 19
 20    /// <summary>
 21    /// Adds the OpenTelemetry governance emission provider through the AsiBackbone builder facade using configured opti
 22    /// </summary>
 23    public static IAsiBackboneBuilder UseOpenTelemetryEmission(
 24        this IAsiBackboneBuilder builder,
 25        Action<OpenTelemetryGovernanceEmitterOptions> configure)
 26    {
 027        ArgumentNullException.ThrowIfNull(builder);
 028        ArgumentNullException.ThrowIfNull(configure);
 29
 030        OpenTelemetryGovernanceEmitterOptions options = new();
 031        configure(options);
 032        options.Validate();
 33
 034        _ = builder.Services.AddSingleton(options);
 035        _ = builder.Services.AddSingleton<OpenTelemetryGovernanceEmitter>();
 036        _ = builder.Services.AddSingleton<IAsiBackboneGovernanceEmitter>(serviceProvider =>
 037            serviceProvider.GetRequiredService<OpenTelemetryGovernanceEmitter>());
 38
 039        return builder;
 40    }
 41}