public static String getClusterName()

in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/utils/ContainerInsightsUtil.java [76:116]


    public static String getClusterName() {
        if (isK8s()) {
            CloseableHttpClient client = getHttpClient();
            HttpGet getRequest = new HttpGet(K8S_URL + CI_CONFIGMAP_PATH);

            String k8sCredentialHeader = getK8sCredentialHeader();
            if (k8sCredentialHeader != null) {
                getRequest.setHeader(AUTH_HEADER_NAME, k8sCredentialHeader);
            }

            try {
                CloseableHttpResponse response = client.execute(getRequest);

                try {
                    HttpEntity entity = response.getEntity();
                    String json = EntityUtils.toString(entity);

                    ObjectMapper mapper = new ObjectMapper();
                    String clusterName = mapper.readTree(json).at("/data/cluster.name").asText();

                    if (logger.isDebugEnabled()) {
                        logger.debug("Container Insights Cluster Name: " + clusterName);
                    }

                    return clusterName;

                } catch (IOException e) {
                    logger.error("Error parsing response from Kubernetes", e);
                } finally {
                    response.close();
                }

                client.close();

            } catch (IOException  e) {
                logger.error("Error querying for Container Insights ConfigMap", e);
            }
        }

        return null;
    }