diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTask.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTask.java
new file mode 100644
index 000000000..fd7ba2001
--- /dev/null
+++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTask.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright 2022-2024 Google LLC
+ * Copyright 2013-2021 CompilerWorks
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.edwmigration.dumper.application.dumper.connector.cloudera.manager;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.io.ByteSink;
+import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
+import com.google.edwmigration.dumper.application.dumper.connector.cloudera.manager.ClouderaManagerHandle.ClouderaClusterDTO;
+import com.google.edwmigration.dumper.application.dumper.task.TaskRunContext;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.Nonnull;
+import org.apache.hc.core5.net.URIBuilder;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The task collects hosts from Cloudera Manager TimeSeries
+ * API The chart is for whole cluster is available on {@code /cmf/home/} and {@code
+ * cmf/clusters/{clusterId}/status} pages in Cloudera Manager UI. The query to chart is written
+ * on tsquery
+ * language.
+ */
+public class ClouderaClusterCPUChartTask extends AbstractClouderaManagerTask {
+ enum TimeSeriesAggregation {
+ RAW,
+ TEN_MINUTELY,
+ HOURLY,
+ SIX_HOURLY,
+ DAILY,
+ WEEKLY,
+ }
+
+ private static final Logger LOG = LoggerFactory.getLogger(ClouderaCMFHostsTask.class);
+ /*
+ SELECT cpu_percent_across_hosts WHERE entityName = "1546336862" AND category = CLUSTER
+ */
+ private static final String TS_CPU_QUERY_TEMPLATE =
+ "SELECT cpu_percent_across_hosts WHERE entityName = \"%s\" AND category = CLUSTER";
+
+ private final ObjectMapper objectMapper = new ObjectMapper();
+
+ private final int includedLastDays;
+ private final TimeSeriesAggregation tsAggregation;
+
+ public ClouderaClusterCPUChartTask() {
+ this(1, TimeSeriesAggregation.RAW);
+ }
+
+ public ClouderaClusterCPUChartTask(int includedLastDays, TimeSeriesAggregation tsAggregation) {
+ super(
+ String.format(
+ "cmf-cluster-cpu-%s-%s.jsonl",
+ includedLastDays, tsAggregation.toString().toLowerCase()));
+ this.includedLastDays = includedLastDays;
+ this.tsAggregation = tsAggregation;
+ }
+
+ @Override
+ protected Void doRun(
+ TaskRunContext context, @Nonnull ByteSink sink, @Nonnull ClouderaManagerHandle handle)
+ throws Exception {
+ CloseableHttpClient httpClient = handle.getHttpClient();
+ List clusters = getClustersFromHandle(handle);
+
+ final String timeSeriesAPIUrl = buildTimeSeriesUrl(handle.getApiURI().toString());
+ try (Writer writer = sink.asCharSink(StandardCharsets.UTF_8).openBufferedStream()) {
+ for (ClouderaClusterDTO cluster : clusters) {
+ String cpuPerClusterQuery = buildQueryToFetchCPUTimeSeriesOnCluster(cluster.getId());
+ LOG.debug(
+ "Execute charts query: [{}] for the cluster: [{}].",
+ cpuPerClusterQuery,
+ cluster.getName());
+
+ LOG.debug(this.tsAggregation.toString());
+
+ URIBuilder uriBuilder = new URIBuilder(timeSeriesAPIUrl);
+ uriBuilder.addParameter("query", cpuPerClusterQuery);
+ uriBuilder.addParameter("desiredRollup", this.tsAggregation.toString());
+ uriBuilder.addParameter("mustUseDesiredRollup", "true");
+ uriBuilder.addParameter("from", buildISODateTime(this.includedLastDays));
+
+ try (CloseableHttpResponse chart = httpClient.execute(new HttpGet(uriBuilder.build()))) {
+ JsonNode jsonNode = objectMapper.readTree(chart.getEntity().getContent());
+ writer.write(jsonNode.toString());
+ writer.write('\n');
+ }
+ }
+ }
+
+ return null;
+ }
+
+ private List getClustersFromHandle(@Nonnull ClouderaManagerHandle handle) {
+ List clusters = handle.getClusters();
+ if (clusters == null) {
+ throw new MetadataDumperUsageException(
+ "Cloudera clusters must be initialized before CPU charts dumping.");
+ }
+ List cpuClusters = new ArrayList<>();
+ for (ClouderaClusterDTO cluster : clusters) {
+ if (cluster.getId() == null) {
+ LOG.warn(
+ "Cloudera cluster id is null for cluster [{}]. " + "Skip CPU metrics for the cluster.",
+ cluster.getName());
+ // todo it's might be critical data for TCO calculation and we should fail the dump
+ // process. Discuss with product
+ } else {
+ cpuClusters.add(cluster);
+ }
+ }
+ return cpuClusters;
+ }
+
+ private String buildTimeSeriesUrl(String apiUri) {
+ return apiUri + "/timeseries";
+ }
+
+ private String buildQueryToFetchCPUTimeSeriesOnCluster(String clusterId) {
+ return String.format(TS_CPU_QUERY_TEMPLATE, clusterId);
+ }
+
+ private String buildISODateTime(int deltaInDays) {
+ ZonedDateTime dt =
+ ZonedDateTime.of(LocalDateTime.now().minusDays(deltaInDays), ZoneId.of("UTC"));
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+ return dt.format(formatter);
+ }
+}
diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaManagerConnector.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaManagerConnector.java
index f6283b190..aecfd61ba 100644
--- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaManagerConnector.java
+++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaManagerConnector.java
@@ -22,6 +22,7 @@
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsInput;
import com.google.edwmigration.dumper.application.dumper.connector.AbstractConnector;
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
+import com.google.edwmigration.dumper.application.dumper.connector.cloudera.manager.ClouderaClusterCPUChartTask.TimeSeriesAggregation;
import com.google.edwmigration.dumper.application.dumper.task.DumpMetadataTask;
import com.google.edwmigration.dumper.application.dumper.task.FormatTask;
import com.google.edwmigration.dumper.application.dumper.task.Task;
@@ -82,6 +83,10 @@ public void addTasksTo(@Nonnull List super Task>> out, @Nonnull ConnectorArg
out.add(new ClouderaCMFHostsTask());
out.add(new ClouderaAPIHostsTask());
out.add(new ClouderaServicesTask());
+ out.add(new ClouderaClusterCPUChartTask(1, TimeSeriesAggregation.HOURLY));
+ out.add(new ClouderaClusterCPUChartTask(7, TimeSeriesAggregation.DAILY));
+ out.add(new ClouderaClusterCPUChartTask(30, TimeSeriesAggregation.DAILY));
+ out.add(new ClouderaClusterCPUChartTask(90, TimeSeriesAggregation.DAILY));
}
@Nonnull
diff --git a/dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTaskTest.java b/dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTaskTest.java
new file mode 100644
index 000000000..ee6901402
--- /dev/null
+++ b/dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/cloudera/manager/ClouderaClusterCPUChartTaskTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2022-2024 Google LLC
+ * Copyright 2013-2021 CompilerWorks
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.edwmigration.dumper.application.dumper.connector.cloudera.manager;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyChar;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.io.ByteSink;
+import com.google.common.io.CharSink;
+import com.google.edwmigration.dumper.application.dumper.connector.cloudera.manager.ClouderaManagerHandle.ClouderaClusterDTO;
+import com.google.edwmigration.dumper.application.dumper.task.TaskRunContext;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.Writer;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ClouderaClusterCPUChartTaskTest {
+ private final ClouderaClusterCPUChartTask task = new ClouderaClusterCPUChartTask();
+ private ClouderaManagerHandle handle;
+ private String servicesJson;
+
+ @Mock private TaskRunContext context;
+ @Mock private ByteSink sink;
+ @Mock private Writer writer;
+ @Mock private CharSink charSink;
+ @Mock private CloseableHttpClient httpClient;
+ private URI uri;
+
+ @Before
+ public void setUp() throws Exception {
+ servicesJson = readFileAsString("/cloudera/manager/cluster-cpu-status.json");
+ uri = URI.create("http://localhost/api");
+ handle = new ClouderaManagerHandle(uri, httpClient);
+
+ when(sink.asCharSink(eq(StandardCharsets.UTF_8))).thenReturn(charSink);
+ when(charSink.openBufferedStream()).thenReturn(writer);
+ }
+
+ @Test
+ public void noClusterId_skipWrites() throws Exception {
+ // GIVEN: There is no cluster with a valid cluster ID
+ handle.initClusters(ImmutableList.of(ClouderaClusterDTO.create(null, "single cluster")));
+
+ // WHEN
+ task.doRun(context, sink, handle);
+
+ // THEN: Task for such clusters should be skipped
+ verify(httpClient, never()).execute(any());
+ verifyNoWrites();
+ }
+
+ @Test
+ public void validCluster_doWrites() throws Exception {
+ // GIVEN: Valid cluster
+ handle.initClusters(ImmutableList.of(ClouderaClusterDTO.create("id1", "first-cluster")));
+
+ CloseableHttpResponse firstResponse = mock(CloseableHttpResponse.class);
+ HttpEntity firstEntity = mock(HttpEntity.class);
+ when(firstResponse.getEntity()).thenReturn(firstEntity);
+ when(firstEntity.getContent()).thenReturn(new ByteArrayInputStream(servicesJson.getBytes()));
+ when(httpClient.execute(argThat(get -> get != null))).thenReturn(firstResponse);
+
+ // WHEN
+ task.doRun(context, sink, handle);
+
+ // THEN: the output should be dumped into the jsonl format
+ Set fileLines = new HashSet<>();
+ verify(writer, times(1))
+ .write(
+ (String)
+ argThat(
+ content -> {
+ String str = (String) content;
+ assertFalse(str.contains("\n"));
+ assertFalse(str.contains("\r"));
+ fileLines.add(str);
+ return true;
+ }));
+ assertEquals(ImmutableSet.of(tojsonl(servicesJson)), fileLines);
+ }
+
+ private void verifyNoWrites() throws IOException {
+ verify(writer, never()).write(anyChar());
+ verify(writer, never()).write(anyString());
+ verify(writer, never()).write(anyString(), anyInt(), anyInt());
+ verify(writer, never()).write(any(char[].class));
+ verify(writer, never()).write(any(char[].class), anyInt(), anyInt());
+ }
+
+ private String readFileAsString(String fileName) throws IOException, URISyntaxException {
+ return new String(Files.readAllBytes(Paths.get(this.getClass().getResource(fileName).toURI())));
+ }
+
+ private String tojsonl(String json) throws Exception {
+ return new ObjectMapper().readTree(json).toString();
+ }
+}
diff --git a/dumper/app/src/test/resources/cloudera/manager/cluster-cpu-status.json b/dumper/app/src/test/resources/cloudera/manager/cluster-cpu-status.json
new file mode 100644
index 000000000..9a282b171
--- /dev/null
+++ b/dumper/app/src/test/resources/cloudera/manager/cluster-cpu-status.json
@@ -0,0 +1,1208 @@
+{
+ "items": [
+ {
+ "timeSeries": [
+ {
+ "metadata": {
+ "metricName": "cpu_percent_across_hosts",
+ "entityName": "cldr2-aw-dl",
+ "startTime": "2024-09-05T11:49:01.190Z",
+ "endTime": "2024-12-04T10:49:01.278Z",
+ "attributes": {
+ "active": "true",
+ "clusterDisplayName": "cldr2-aw-dl",
+ "category": "CLUSTER",
+ "version": "CDH 7.2.18",
+ "entityName": "1546336862",
+ "clusterName": "cldr2-aw-dl"
+ },
+ "unitNumerators": [
+ "percent"
+ ],
+ "unitDenominators": [],
+ "expression": "SELECT cpu_percent_across_hosts WHERE entityName = \"1546336862\" AND category = CLUSTER",
+ "metricCollectionFrequencyMs": 60000,
+ "rollupUsed": "DAILY"
+ },
+ "data": [
+ {
+ "timestamp": "2024-10-15T00:00:00.000Z",
+ "value": 4.275888625592417,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-14T09:55:32.000Z",
+ "sampleValue": 24.7,
+ "count": 1688,
+ "min": 2.3,
+ "minTime": "2024-10-14T18:28:32.000Z",
+ "max": 24.7,
+ "maxTime": "2024-10-14T09:55:32.000Z",
+ "mean": 4.275888625592417,
+ "stdDev": 1.50359156409552,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-16T00:00:00.000Z",
+ "value": 4.1396875,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-15T09:00:52.000Z",
+ "sampleValue": 8.6,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-15T07:01:32.000Z",
+ "max": 8.6,
+ "maxTime": "2024-10-15T09:00:52.000Z",
+ "mean": 4.1396875,
+ "stdDev": 1.4600044391713811,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-17T00:00:00.000Z",
+ "value": 4.099479166666667,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-16T00:00:52.000Z",
+ "sampleValue": 9.5,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-16T00:06:32.000Z",
+ "max": 9.5,
+ "maxTime": "2024-10-16T00:00:52.000Z",
+ "mean": 4.099479166666667,
+ "stdDev": 1.4671497484652594,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-18T00:00:00.000Z",
+ "value": 4.142708333333333,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-17T00:00:53.000Z",
+ "sampleValue": 9.5,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-17T01:13:33.000Z",
+ "max": 9.5,
+ "maxTime": "2024-10-17T00:00:53.000Z",
+ "mean": 4.142708333333333,
+ "stdDev": 1.5040234190151969,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-19T00:00:00.000Z",
+ "value": 4.204375000000001,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-18T17:30:54.000Z",
+ "sampleValue": 9.1,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-18T00:01:33.000Z",
+ "max": 9.1,
+ "maxTime": "2024-10-18T17:30:54.000Z",
+ "mean": 4.204375000000001,
+ "stdDev": 1.5641104274685131,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-20T00:00:00.000Z",
+ "value": 4.1965625,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-19T21:30:54.000Z",
+ "sampleValue": 10.0,
+ "count": 2880,
+ "min": 2.0,
+ "minTime": "2024-10-19T02:06:33.000Z",
+ "max": 10.0,
+ "maxTime": "2024-10-19T21:30:54.000Z",
+ "mean": 4.1965625,
+ "stdDev": 1.579050058121713,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-21T00:00:00.000Z",
+ "value": 4.202951388888889,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-20T00:00:54.000Z",
+ "sampleValue": 9.8,
+ "count": 2880,
+ "min": 2.1,
+ "minTime": "2024-10-20T00:26:34.000Z",
+ "max": 9.8,
+ "maxTime": "2024-10-20T00:00:54.000Z",
+ "mean": 4.202951388888889,
+ "stdDev": 1.5678168387515894,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-22T00:00:00.000Z",
+ "value": 4.221284722222222,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-21T00:00:55.000Z",
+ "sampleValue": 11.3,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-21T02:03:34.000Z",
+ "max": 11.3,
+ "maxTime": "2024-10-21T00:00:55.000Z",
+ "mean": 4.221284722222222,
+ "stdDev": 1.5553876434082372,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-23T00:00:00.000Z",
+ "value": 4.206493055555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-22T22:09:35.000Z",
+ "sampleValue": 13.1,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-22T08:17:34.000Z",
+ "max": 13.1,
+ "maxTime": "2024-10-22T22:09:35.000Z",
+ "mean": 4.206493055555556,
+ "stdDev": 1.5511190573026445,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-24T00:00:00.000Z",
+ "value": 4.254097222222223,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-23T00:00:56.000Z",
+ "sampleValue": 10.8,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-23T14:11:35.000Z",
+ "max": 10.8,
+ "maxTime": "2024-10-23T00:00:56.000Z",
+ "mean": 4.254097222222223,
+ "stdDev": 1.5407728978931883,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-25T00:00:00.000Z",
+ "value": 4.233159722222223,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-24T22:01:57.000Z",
+ "sampleValue": 10.3,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-24T06:16:35.000Z",
+ "max": 10.3,
+ "maxTime": "2024-10-24T22:01:57.000Z",
+ "mean": 4.233159722222223,
+ "stdDev": 1.5679739435919147,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-26T00:00:00.000Z",
+ "value": 4.233263888888889,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-25T08:00:57.000Z",
+ "sampleValue": 9.0,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-25T00:19:35.000Z",
+ "max": 9.0,
+ "maxTime": "2024-10-25T08:00:57.000Z",
+ "mean": 4.233263888888889,
+ "stdDev": 1.5570290507563043,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-27T00:00:00.000Z",
+ "value": 4.249756944444444,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-26T00:00:57.000Z",
+ "sampleValue": 9.1,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-26T01:06:36.000Z",
+ "max": 9.1,
+ "maxTime": "2024-10-26T00:00:57.000Z",
+ "mean": 4.249756944444444,
+ "stdDev": 1.5620165613895602,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-28T00:00:00.000Z",
+ "value": 4.228055555555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-27T00:00:58.000Z",
+ "sampleValue": 9.6,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-26T23:59:36.000Z",
+ "max": 9.6,
+ "maxTime": "2024-10-27T00:00:58.000Z",
+ "mean": 4.228055555555556,
+ "stdDev": 1.5357308679431514,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-29T00:00:00.000Z",
+ "value": 4.228958333333334,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-28T20:43:59.000Z",
+ "sampleValue": 9.7,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-10-28T12:01:36.000Z",
+ "max": 9.7,
+ "maxTime": "2024-10-28T20:43:59.000Z",
+ "mean": 4.228958333333334,
+ "stdDev": 1.5128447235898481,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-30T00:00:00.000Z",
+ "value": 4.222708333333332,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-29T20:00:59.000Z",
+ "sampleValue": 9.5,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-29T00:17:36.000Z",
+ "max": 9.5,
+ "maxTime": "2024-10-29T20:00:59.000Z",
+ "mean": 4.222708333333332,
+ "stdDev": 1.477427106899041,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-10-31T00:00:00.000Z",
+ "value": 4.191597222222223,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-30T22:01:00.000Z",
+ "sampleValue": 9.4,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-30T00:11:37.000Z",
+ "max": 9.4,
+ "maxTime": "2024-10-30T22:01:00.000Z",
+ "mean": 4.191597222222223,
+ "stdDev": 1.4354801335741272,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-01T00:00:00.000Z",
+ "value": 4.165972222222222,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-10-31T01:01:00.000Z",
+ "sampleValue": 9.6,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-10-31T00:17:37.000Z",
+ "max": 9.6,
+ "maxTime": "2024-10-31T01:01:00.000Z",
+ "mean": 4.165972222222222,
+ "stdDev": 1.4200476582780934,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-02T00:00:00.000Z",
+ "value": 4.175659722222222,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-01T04:01:00.000Z",
+ "sampleValue": 8.8,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-01T02:56:37.000Z",
+ "max": 8.8,
+ "maxTime": "2024-11-01T04:01:00.000Z",
+ "mean": 4.175659722222222,
+ "stdDev": 1.4284174570422723,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-03T00:00:00.000Z",
+ "value": 4.229791666666666,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-02T17:14:02.000Z",
+ "sampleValue": 9.6,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-02T00:46:38.000Z",
+ "max": 9.6,
+ "maxTime": "2024-11-02T17:14:02.000Z",
+ "mean": 4.229791666666666,
+ "stdDev": 1.4677361304853809,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-04T00:00:00.000Z",
+ "value": 4.211145833333333,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-03T20:00:03.000Z",
+ "sampleValue": 8.8,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-03T04:47:38.000Z",
+ "max": 8.8,
+ "maxTime": "2024-11-03T20:00:03.000Z",
+ "mean": 4.211145833333333,
+ "stdDev": 1.4583189181212493,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-05T00:00:00.000Z",
+ "value": 4.401805555555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-04T18:22:39.000Z",
+ "sampleValue": 94.7,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-04T14:17:38.000Z",
+ "max": 94.7,
+ "maxTime": "2024-11-04T18:22:39.000Z",
+ "mean": 4.401805555555556,
+ "stdDev": 3.3363882926851014,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-06T00:00:00.000Z",
+ "value": 4.260486111111112,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-05T00:00:04.000Z",
+ "sampleValue": 9.3,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-05T00:06:39.000Z",
+ "max": 9.3,
+ "maxTime": "2024-11-05T00:00:04.000Z",
+ "mean": 4.260486111111112,
+ "stdDev": 1.4721241348379919,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-07T00:00:00.000Z",
+ "value": 4.215243055555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-06T00:00:04.000Z",
+ "sampleValue": 9.1,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-06T17:06:39.000Z",
+ "max": 9.1,
+ "maxTime": "2024-11-06T00:00:04.000Z",
+ "mean": 4.215243055555556,
+ "stdDev": 1.4445933299036284,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-08T00:00:00.000Z",
+ "value": 4.399131944444444,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-07T09:55:41.000Z",
+ "sampleValue": 93.7,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-07T04:51:39.000Z",
+ "max": 93.7,
+ "maxTime": "2024-11-07T09:55:41.000Z",
+ "mean": 4.399131944444444,
+ "stdDev": 3.9257615783539728,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-09T00:00:00.000Z",
+ "value": 4.248993055555555,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-08T16:00:05.000Z",
+ "sampleValue": 8.5,
+ "count": 2880,
+ "min": 2.4,
+ "minTime": "2024-11-08T00:01:40.000Z",
+ "max": 8.5,
+ "maxTime": "2024-11-08T16:00:05.000Z",
+ "mean": 4.248993055555555,
+ "stdDev": 1.4505076999643338,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-10T00:00:00.000Z",
+ "value": 4.203368055555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-09T00:00:06.000Z",
+ "sampleValue": 9.7,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-09T08:17:40.000Z",
+ "max": 9.7,
+ "maxTime": "2024-11-09T00:00:06.000Z",
+ "mean": 4.203368055555556,
+ "stdDev": 1.4468441096701066,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-11T00:00:00.000Z",
+ "value": 4.189097222222221,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-10T01:00:06.000Z",
+ "sampleValue": 8.7,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-10T01:59:40.000Z",
+ "max": 8.7,
+ "maxTime": "2024-11-10T01:00:06.000Z",
+ "mean": 4.189097222222221,
+ "stdDev": 1.4514988064979404,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-12T00:00:00.000Z",
+ "value": 4.222604166666667,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-11T00:00:07.000Z",
+ "sampleValue": 9.4,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-11T00:22:40.000Z",
+ "max": 9.4,
+ "maxTime": "2024-11-11T00:00:07.000Z",
+ "mean": 4.222604166666667,
+ "stdDev": 1.482014258418926,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-13T00:00:00.000Z",
+ "value": 4.247152777777777,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-12T14:36:41.000Z",
+ "sampleValue": 12.4,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-12T00:33:41.000Z",
+ "max": 12.4,
+ "maxTime": "2024-11-12T14:36:41.000Z",
+ "mean": 4.247152777777777,
+ "stdDev": 1.472172896347828,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-14T00:00:00.000Z",
+ "value": 4.255763888888889,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-13T19:24:41.000Z",
+ "sampleValue": 14.0,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-13T04:21:41.000Z",
+ "max": 14.0,
+ "maxTime": "2024-11-13T19:24:41.000Z",
+ "mean": 4.255763888888889,
+ "stdDev": 1.4936689734470727,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-15T00:00:00.000Z",
+ "value": 4.2363888888888885,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-14T16:54:08.000Z",
+ "sampleValue": 9.3,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-14T00:58:41.000Z",
+ "max": 9.3,
+ "maxTime": "2024-11-14T16:54:08.000Z",
+ "mean": 4.2363888888888885,
+ "stdDev": 1.4799113832031392,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-16T00:00:00.000Z",
+ "value": 4.248645833333334,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-15T18:50:09.000Z",
+ "sampleValue": 9.1,
+ "count": 2880,
+ "min": 2.1,
+ "minTime": "2024-11-15T01:36:42.000Z",
+ "max": 9.1,
+ "maxTime": "2024-11-15T18:50:09.000Z",
+ "mean": 4.248645833333334,
+ "stdDev": 1.5190345737948696,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-17T00:00:00.000Z",
+ "value": 4.223333333333334,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-16T09:00:09.000Z",
+ "sampleValue": 9.4,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-16T02:21:42.000Z",
+ "max": 9.4,
+ "maxTime": "2024-11-16T09:00:09.000Z",
+ "mean": 4.223333333333334,
+ "stdDev": 1.473099295789424,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-18T00:00:00.000Z",
+ "value": 4.21204861111111,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-17T08:00:10.000Z",
+ "sampleValue": 8.8,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-17T01:21:42.000Z",
+ "max": 8.8,
+ "maxTime": "2024-11-17T08:00:10.000Z",
+ "mean": 4.21204861111111,
+ "stdDev": 1.4648921346051191,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-19T00:00:00.000Z",
+ "value": 4.217395833333333,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-18T09:16:43.000Z",
+ "sampleValue": 28.3,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-18T19:01:43.000Z",
+ "max": 28.3,
+ "maxTime": "2024-11-18T09:16:43.000Z",
+ "mean": 4.217395833333333,
+ "stdDev": 1.548872514975011,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-20T00:00:00.000Z",
+ "value": 4.3331944444444455,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-19T12:01:44.000Z",
+ "sampleValue": 93.5,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-19T00:17:43.000Z",
+ "max": 93.5,
+ "maxTime": "2024-11-19T12:01:44.000Z",
+ "mean": 4.3331944444444455,
+ "stdDev": 2.9512683593974733,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-21T00:00:00.000Z",
+ "value": 4.299791666666666,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-20T15:50:45.000Z",
+ "sampleValue": 92.6,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-20T00:02:43.000Z",
+ "max": 92.6,
+ "maxTime": "2024-11-20T15:50:45.000Z",
+ "mean": 4.299791666666666,
+ "stdDev": 2.88088644860697,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-22T00:00:00.000Z",
+ "value": 4.170763888888889,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-21T18:00:12.000Z",
+ "sampleValue": 10.0,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-21T00:06:44.000Z",
+ "max": 10.0,
+ "maxTime": "2024-11-21T18:00:12.000Z",
+ "mean": 4.170763888888889,
+ "stdDev": 1.4778976364798153,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-23T00:00:00.000Z",
+ "value": 4.3014930555555555,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-22T13:47:44.000Z",
+ "sampleValue": 45.4,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-22T01:13:44.000Z",
+ "max": 45.4,
+ "maxTime": "2024-11-22T13:47:44.000Z",
+ "mean": 4.3014930555555555,
+ "stdDev": 2.1504721792917927,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-24T00:00:00.000Z",
+ "value": 4.208055555555556,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-23T17:36:13.000Z",
+ "sampleValue": 9.0,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-23T13:58:44.000Z",
+ "max": 9.0,
+ "maxTime": "2024-11-23T17:36:13.000Z",
+ "mean": 4.208055555555556,
+ "stdDev": 1.5297050719644802,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-25T00:00:00.000Z",
+ "value": 4.166736111111111,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-24T00:00:13.000Z",
+ "sampleValue": 9.1,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-24T08:01:45.000Z",
+ "max": 9.1,
+ "maxTime": "2024-11-24T00:00:13.000Z",
+ "mean": 4.166736111111111,
+ "stdDev": 1.4650345613232603,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-26T00:00:00.000Z",
+ "value": 4.237048611111112,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-25T10:11:45.000Z",
+ "sampleValue": 22.2,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-25T17:46:45.000Z",
+ "max": 22.2,
+ "maxTime": "2024-11-25T10:11:45.000Z",
+ "mean": 4.237048611111112,
+ "stdDev": 1.5457947428450676,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-27T00:00:00.000Z",
+ "value": 4.26,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-26T00:00:14.000Z",
+ "sampleValue": 10.1,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-26T18:16:45.000Z",
+ "max": 10.1,
+ "maxTime": "2024-11-26T00:00:14.000Z",
+ "mean": 4.26,
+ "stdDev": 1.52197427587406,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-28T00:00:00.000Z",
+ "value": 4.341041666666667,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-27T07:58:46.000Z",
+ "sampleValue": 94.6,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-27T19:58:46.000Z",
+ "max": 94.6,
+ "maxTime": "2024-11-27T07:58:46.000Z",
+ "mean": 4.341041666666667,
+ "stdDev": 2.994476150765953,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-29T00:00:00.000Z",
+ "value": 4.228819444444445,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-28T00:30:15.000Z",
+ "sampleValue": 8.9,
+ "count": 2880,
+ "min": 2.2,
+ "minTime": "2024-11-28T00:46:46.000Z",
+ "max": 8.9,
+ "maxTime": "2024-11-28T00:30:15.000Z",
+ "mean": 4.228819444444445,
+ "stdDev": 1.4886473232812996,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-11-30T00:00:00.000Z",
+ "value": 4.781527777777778,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-29T14:09:48.000Z",
+ "sampleValue": 94.0,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-29T03:13:46.000Z",
+ "max": 94.0,
+ "maxTime": "2024-11-29T14:09:48.000Z",
+ "mean": 4.781527777777778,
+ "stdDev": 5.927997906502588,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-12-01T00:00:00.000Z",
+ "value": 4.133854166666666,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-11-30T06:09:46.000Z",
+ "sampleValue": 9.4,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-11-30T02:56:46.000Z",
+ "max": 9.4,
+ "maxTime": "2024-11-30T06:09:46.000Z",
+ "mean": 4.133854166666666,
+ "stdDev": 1.3805940824175624,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-12-02T00:00:00.000Z",
+ "value": 4.283472222222222,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-12-01T12:30:17.000Z",
+ "sampleValue": 9.8,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-12-01T16:31:47.000Z",
+ "max": 9.8,
+ "maxTime": "2024-12-01T12:30:17.000Z",
+ "mean": 4.283472222222222,
+ "stdDev": 1.4996483642232248,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-12-03T00:00:00.000Z",
+ "value": 4.283993055555555,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-12-02T00:00:17.000Z",
+ "sampleValue": 9.0,
+ "count": 2880,
+ "min": 2.4,
+ "minTime": "2024-12-02T00:41:47.000Z",
+ "max": 9.0,
+ "maxTime": "2024-12-02T00:00:17.000Z",
+ "mean": 4.283993055555555,
+ "stdDev": 1.4834190766437905,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ },
+ {
+ "timestamp": "2024-12-04T00:00:00.000Z",
+ "value": 4.2766319444444445,
+ "type": "SAMPLE",
+ "aggregateStatistics": {
+ "sampleTime": "2024-12-03T02:00:18.000Z",
+ "sampleValue": 9.2,
+ "count": 2880,
+ "min": 2.3,
+ "minTime": "2024-12-03T20:42:48.000Z",
+ "max": 9.2,
+ "maxTime": "2024-12-03T02:00:18.000Z",
+ "mean": 4.2766319444444445,
+ "stdDev": 1.4951371133761475,
+ "crossEntityMetadata": {
+ "maxEntityDisplayName": "cldr2-aw-dl-idbroker0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "maxEntityName": "fb0b1e236807e759de8ed5c1fdf9a679",
+ "minEntityDisplayName": "cldr2-aw-dl-master0.cldr2-cd.svye-dcxb.a5.cloudera.site",
+ "minEntityName": "f3ea0bec1ce7e4211ec60cc2518a072f",
+ "numEntities": 2.0
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "warnings": [],
+ "timeSeriesQuery": "SELECT cpu_percent_across_hosts WHERE entityName = \"1546336862\" AND category = CLUSTER"
+ }
+ ]
+}
\ No newline at end of file