internal static void SetCommonAttributes()

in src/Elastic.Transport/Diagnostics/OpenTelemetry/OpenTelemetry.cs [42:68]


	internal static void SetCommonAttributes(Activity? activity, ITransportConfiguration settings)
	{
		if (activity is null)
			return;

		if (settings.ProductRegistration.DefaultOpenTelemetryAttributes is not null)
		{
			foreach (var attribute in settings.ProductRegistration.DefaultOpenTelemetryAttributes)
			{
				activity?.SetTag(attribute.Key, attribute.Value);
			}
		}

		var productSchemaVersion = string.Empty;
		foreach (var attribute in activity.TagObjects)
		{
			if (attribute.Key.Equals(OpenTelemetryAttributes.DbElasticsearchSchemaUrl, StringComparison.Ordinal))
			{
				if (attribute.Value is string schemaVersion)
					productSchemaVersion = schemaVersion;
			}
		}
		
		// We add the client schema version only when it differs from the product schema version
		if (!productSchemaVersion.Equals(OpenTelemetrySchemaVersion, StringComparison.Ordinal))
			activity?.SetTag(OpenTelemetryAttributes.ElasticTransportSchemaVersion, OpenTelemetrySchemaVersion);
	}