< Summary

Information
Class: AsiBackbone.OpenTelemetry.OpenTelemetryGovernanceBuilderExtensions
Assembly: AsiBackbone.OpenTelemetry
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.OpenTelemetry/OpenTelemetryGovernanceBuilderExtensions.cs
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 41
Line coverage: 100%
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%11100%
UseOpenTelemetryEmission(...)100%11100%

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    {
 617        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    {
 1227        ArgumentNullException.ThrowIfNull(builder);
 828        ArgumentNullException.ThrowIfNull(configure);
 29
 630        OpenTelemetryGovernanceEmitterOptions options = new();
 631        configure(options);
 632        options.Validate();
 33
 434        _ = builder.Services.AddSingleton(options);
 435        _ = builder.Services.AddSingleton<OpenTelemetryGovernanceEmitter>();
 436        _ = builder.Services.AddSingleton<IAsiBackboneGovernanceEmitter>(serviceProvider =>
 837            serviceProvider.GetRequiredService<OpenTelemetryGovernanceEmitter>());
 38
 439        return builder;
 40    }
 41}