private static void UpdateServiceWithEnvironmentConfig()

in src/Elastic.CommonSchema/EcsDocument.DefaultService.cs [25:57]


	private static void UpdateServiceWithEnvironmentConfig(Service service, IDictionary<string, string> resourceAttributes)
	{
		//ServiceName
		var oTelServiceName = Environment.GetEnvironmentVariable("OTEL_SERVICE_NAME");
		var apmServiceName = Environment.GetEnvironmentVariable("ELASTIC_APM_SERVICE_NAME");
		if (!string.IsNullOrEmpty(oTelServiceName))
			service.Name = oTelServiceName;
		else if (resourceAttributes.TryGetValue("service.name", out var resourceServiceName))
			service.Name = resourceServiceName;
		else if (!string.IsNullOrEmpty(apmServiceName))
			service.Name = apmServiceName;

		//ServiceVersion
		var apmServiceVersion = Environment.GetEnvironmentVariable("ELASTIC_APM_SERVICE_VERSION");
		if (resourceAttributes.TryGetValue("service.version", out var resourceServiceVersion))
			service.Version = resourceServiceVersion;
		else if (!string.IsNullOrEmpty(apmServiceVersion))
			service.Version = apmServiceVersion;

		//ServiceNodeName
		var apmServiceNodeName = Environment.GetEnvironmentVariable("ELASTIC_APM_SERVICE_NODE_NAME");
		if (resourceAttributes.TryGetValue("service.instance.id", out var resourceServiceNodeName))
			service.NodeName = resourceServiceNodeName;
		else if (!string.IsNullOrEmpty(apmServiceNodeName))
			service.NodeName = apmServiceNodeName;

		// Environment
		var apmEnvironment = Environment.GetEnvironmentVariable("ELASTIC_APM_ENVIRONMENT");
		if (resourceAttributes.TryGetValue("deployment.environment", out var resourceEnvironment))
			service.Environment = resourceEnvironment;
		else if (!string.IsNullOrWhiteSpace(apmEnvironment))
			service.Environment = apmEnvironment;
	}