< Summary

Information
Class: Orchestrator.Infrastructure.LangfuseBaggageSpanProcessor
Assembly: Orchestrator
File(s): /home/runner/work/KicktippAi/KicktippAi/src/Orchestrator/Infrastructure/LangfuseBaggageSpanProcessor.cs
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 49
Line coverage: 100%
Branch coverage
100%
Covered branches: 14
Total branches: 14
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
OnStart(...)100%1212100%
OnEnd(...)100%22100%

File(s)

/home/runner/work/KicktippAi/KicktippAi/src/Orchestrator/Infrastructure/LangfuseBaggageSpanProcessor.cs

#LineLine coverage
 1using System.Diagnostics;
 2using OpenTelemetry;
 3using OpenTelemetry.Trace;
 4using OpenAiIntegration;
 5
 6namespace Orchestrator.Infrastructure;
 7
 8/// <summary>
 9/// Copies Langfuse-related baggage entries onto newly started activities so child observations inherit shared trace con
 10/// </summary>
 11public sealed class LangfuseBaggageSpanProcessor : BaseProcessor<Activity>
 12{
 13    public override void OnStart(Activity data)
 14    {
 115        foreach (var baggage in data.Baggage)
 16        {
 117            if (!baggage.Key.StartsWith("langfuse.", StringComparison.Ordinal))
 18            {
 19                continue;
 20            }
 21
 122            if (string.IsNullOrWhiteSpace(baggage.Value))
 23            {
 24                continue;
 25            }
 26
 127            if (data.GetTagItem(baggage.Key) is null)
 28            {
 129                data.SetTag(baggage.Key, baggage.Value);
 30            }
 31        }
 32
 133        foreach (var metadata in LangfuseActivityPropagation.GetObservationMetadata(data))
 34        {
 135            if (data.GetTagItem(metadata.Key) is null)
 36            {
 137                data.SetTag(metadata.Key, metadata.Value);
 38            }
 39        }
 140    }
 41
 42    public override void OnEnd(Activity data)
 43    {
 144        if (data.ParentSpanId == default)
 45        {
 146            LangfuseActivityPropagation.ClearTraceMetadata(data);
 47        }
 148    }
 49}