Skip to main content
Source: Al0079ManualSpanRecommendedAnalyzer.cs

Description

Complex async patterns such as parallel tasks, fan-out/fan-in, or background processing benefit from manual spans to accurately capture the execution flow.

Bad Code

public async Task ProcessBatch(IEnumerable<Order> orders)
{
    await Task.WhenAll(orders.Select(ProcessOrder));
    // No span to group the parallel work
}

Good Code

public async Task ProcessBatch(IEnumerable<Order> orders)
{
    using var activity = source.StartActivity("ProcessBatch");
    await Task.WhenAll(orders.Select(ProcessOrder));
}

Properties

  • Category: OpenTelemetry
  • Severity: Info
  • Enabled by default: True
  • Code fix available: False

Configuration

dotnet_diagnostic.AL0079.severity = suggestion