pub fn new() -> Self {
        // Attempt fetching data from environment variables, and use defaults if not provided.
        fn env_or(env_var: &str, default: &str) -> String {
            std::env::var(env_var).unwrap_or_else(|_| default.to_string())
        }
        Self {
            k8s_pod_name: env_or(Self::K8S_POD_NAME_ENV_VAR, Self::DEFAULT_K8S_POD_NAME),
            k8s_namespace_name: env_or(
                Self::K8S_NAMESPACE_NAME_ENV_VAR,
                Self::DEFAULT_K8S_NAMESPACE_NAME,
            ),
            k8s_cluster_name: env_or(
                Self::K8S_CLUSTER_NAME_ENV_VAR,
                Self::DEFAULT_K8S_CLUSTER_NAME,
            ),
            deployment_environment: env_or(
                Self::DEPLOYMENT_ENVIRONMENT_ENV_VAR,
                Self::DEFAULT_DEPLOYMENT_ENVIRONMENT,
            ),
            service_name: env_or(Self::SERVICE_NAME_ENV_VAR, Self::DEFAULT_SERVICE_NAME),
        }
    }
Creates a filled `ServiceDescriptor` object.
Fetched fields can be overridden.
core/lib/vlog/src/opentelemetry/mod.rs