< Summary

Information
Class: AsiBackbone.OpenTelemetry.OpenTelemetryGovernanceEventNameMapper
Assembly: AsiBackbone.OpenTelemetry
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.OpenTelemetry/OpenTelemetryGovernanceEventNameMapper.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 42
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
GetEventName(...)100%66100%
IsFailureStatus(...)100%22100%

File(s)

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

#LineLine coverage
 1using AsiBackbone.Core.Emissions;
 2
 3namespace AsiBackbone.OpenTelemetry;
 4
 5/// <summary>
 6/// Maps provider-neutral governance emission categories and provider statuses to stable OpenTelemetry event names.
 7/// </summary>
 8internal static class OpenTelemetryGovernanceEventNameMapper
 9{
 210    private static readonly Dictionary<GovernanceEmissionEventType, string> EventNames =
 211        new()
 212        {
 213            [GovernanceEmissionEventType.Decision] = OpenTelemetryGovernanceInstrumentation.DecisionEvaluatedEventName,
 214            [GovernanceEmissionEventType.Acknowledgment] = OpenTelemetryGovernanceInstrumentation.AcknowledgmentRecorded
 215            [GovernanceEmissionEventType.CapabilityToken] = OpenTelemetryGovernanceInstrumentation.CapabilityTokenIssued
 216            [GovernanceEmissionEventType.Gateway] = OpenTelemetryGovernanceInstrumentation.GatewayCompletedEventName,
 217            [GovernanceEmissionEventType.AuditResidue] = OpenTelemetryGovernanceInstrumentation.AuditResidueCreatedEvent
 218            [GovernanceEmissionEventType.AuditLifecycle] = OpenTelemetryGovernanceInstrumentation.LifecycleRecordedEvent
 219            [GovernanceEmissionEventType.Outbox] = OpenTelemetryGovernanceInstrumentation.OutboxUpdatedEventName
 220        };
 21
 222    private static readonly string[] FailureStatusMarkers = ["fail", "dead", "retry"];
 23
 24    internal static string GetEventName(
 25        GovernanceEmissionEventType eventType,
 26        string? emitterStatus)
 27    {
 6628        return eventType is GovernanceEmissionEventType.ProviderEmission
 6629            ? IsFailureStatus(emitterStatus)
 6630                ? OpenTelemetryGovernanceInstrumentation.EmissionFailedEventName
 6631                : OpenTelemetryGovernanceInstrumentation.EmissionDeliveredEventName
 6632            : EventNames.TryGetValue(eventType, out string? eventName)
 6633            ? eventName
 6634            : OpenTelemetryGovernanceInstrumentation.GenericGovernanceEventName;
 35    }
 36
 37    private static bool IsFailureStatus(string? status)
 38    {
 3239        return status is not null
 10040            && FailureStatusMarkers.Any(marker => status.Contains(marker, StringComparison.OrdinalIgnoreCase));
 41    }
 42}