internal static TraceSpan CreateSpan()

in src/Util/TelemetryUtilities.cs [19:41]


        internal static TraceSpan CreateSpan(
            AmazonS3Client client,
            string operationName,
            Attributes initialAttributes = null,
            SpanKind spanKind = SpanKind.INTERNAL,
            SpanContext parentContext = null)
        {
            if (initialAttributes == null)
                initialAttributes = new Attributes();

            initialAttributes.Set(TelemetryConstants.MethodAttributeKey, operationName);

            initialAttributes.Set(TelemetryConstants.SystemAttributeKey, TelemetryConstants.SystemAttributeValue);
            initialAttributes.Set(TelemetryConstants.ServiceAttributeKey, Constants.S3TransferTracerScope);

            var spanName = $"{nameof(TransferUtility)}.{operationName}";

            var tracerProvider = client.Config.TelemetryProvider.TracerProvider;

            var tracer = tracerProvider.GetTracer($"{TelemetryConstants.TelemetryScopePrefix}.{Constants.S3TransferTracerScope}");

            return tracer.CreateSpan(spanName, initialAttributes, spanKind, parentContext);
        }