public static bool TryCompress()

in src/Elastic.OpenTelemetry.Core/Extensions/ActivityExtensions.cs [14:50]


	public static bool TryCompress(this Activity buffered, Activity sibling)
	{
		Composite? composite = null;

		var property = buffered.GetCustomProperty("Composite");

		if (property is Composite c)
			composite = c;

		var isAlreadyComposite = composite is not null;

		var canBeCompressed = isAlreadyComposite
			? buffered.TryToCompressComposite(sibling, composite!)
			: buffered.TryToCompressRegular(sibling, ref composite);

		if (!canBeCompressed)
			return false;

		if (!isAlreadyComposite)
		{
			composite ??= new Composite();
			composite.Count = 1;
			composite.DurationSum = buffered.Duration.Milliseconds;
		}

		composite!.Count++;
		composite.DurationSum += sibling.Duration.Milliseconds;

		buffered.SetCustomProperty("Composite", composite);

		var endTime = sibling.StartTimeUtc.Add(sibling.Duration);
		buffered.SetEndTime(endTime);

		sibling.ActivityTraceFlags &= ~ActivityTraceFlags.Recorded;

		return true;
	}