use of com.google.bigtable.repackaged.com.google.monitoring.v3.TimeSeries in project spf4j by zolyfarkas.
the class TimeSeriesDatabase method createCountJFreeChart.
public JFreeChart createCountJFreeChart(final String tableName, final long startTime, final long endTime) throws IOException {
TSTable info = this.getTSTable(tableName);
TimeSeries data = this.read(tableName, startTime, endTime);
return createCountJFreeChart(data, info);
}
use of com.google.bigtable.repackaged.com.google.monitoring.v3.TimeSeries in project spf4j by zolyfarkas.
the class TimeSeriesDatabase method generateCharts.
/**
* Quantized recorders will have min, max avg charts and distribution charts generated. Counting recorders will have
* simple charts generated.
*
* @param startTimeMillis
* @param endTimeMillis
* @param width
* @param height
* @return
* @throws IOException
*/
@JmxExport(value = "generateChartsInterval", description = "generate charts for all measurements in specified interval")
public List<String> generateCharts(final long startTimeMillis, final long endTimeMillis, final int width, final int height) throws IOException {
try {
this.flush();
Collection<TSTable> columnsInfo = this.getTSTables();
List<String> result = new ArrayList<>(16);
for (TSTable info : columnsInfo) {
TimeSeries data = this.read(info.getTableName(), startTimeMillis, endTimeMillis);
if (data.getTimeStamps().length > 0) {
if (canGenerateMinMaxAvgCount(info)) {
result.add(generateMinMaxAvgCountChart(info, data, width, height));
}
if (canGenerateHeatChart(info)) {
result.add(generateHeatChart(info, data, width, height));
}
}
}
Multimap<String, TSTable> counters = getCounters(columnsInfo);
Map<String, Collection<TSTable>> asMap = counters.asMap();
for (Map.Entry<String, Collection<TSTable>> entry : asMap.entrySet()) {
Collection<TSTable> ltables = entry.getValue();
int l = ltables.size();
long[][] timestamps = new long[l][];
double[][] cdata = new double[l][];
double[][] cdata2 = new double[l][];
int i = 0;
String[] measurementNames = new String[cdata.length];
String[] measurementNames2 = new String[cdata2.length];
String uom1 = "count";
String uom2 = "";
for (TSTable colInfo : ltables) {
TimeSeries data = this.read(colInfo.getTableName(), startTimeMillis, endTimeMillis);
timestamps[i] = data.getTimeStamps();
final long[][] values = data.getValues();
cdata[i] = Arrays.getColumnAsDoubles(values, colInfo.getColumnIndex("count"));
cdata2[i] = Arrays.getColumnAsDoubles(values, colInfo.getColumnIndex("total"));
measurementNames[i] = colInfo.getTableName() + ".count";
measurementNames2[i] = colInfo.getTableName() + ".total";
uom2 = new String(colInfo.getTableMetaData(), StandardCharsets.UTF_8);
i++;
}
result.add(generateCountChart(entry.getKey(), timestamps, measurementNames, measurementNames2, uom1, uom2, cdata, cdata2, width, height));
}
return result;
} catch (IOException | RuntimeException ex) {
throw ex;
}
}
use of com.google.bigtable.repackaged.com.google.monitoring.v3.TimeSeries in project spf4j by zolyfarkas.
the class TimeSeriesDatabase method createMinMaxAvgJFreeChart.
public JFreeChart createMinMaxAvgJFreeChart(final String tableName, final long startTime, final long endTime) throws IOException {
TSTable info = this.getTSTable(tableName);
TimeSeries data = this.read(tableName, startTime, endTime);
return createMinMaxAvgJFreeChart(data, info);
}
use of com.google.bigtable.repackaged.com.google.monitoring.v3.TimeSeries in project spring-cloud-gcp by GoogleCloudPlatform.
the class HealthTrackerImplTests method messagesOverThresholdNoProcessing.
@Test
public void messagesOverThresholdNoProcessing() throws InterruptedException {
LockSupport.parkNanos(1001 * 1000000);
ListTimeSeriesPagedResponse listTimeSeriesPagedResponse = mock(ListTimeSeriesPagedResponse.class);
TimeSeries timeSeries = TimeSeries.newBuilder().addPoints(Point.newBuilder().setValue(TypedValue.newBuilder().setInt64Value(201).build()).build()).build();
ListTimeSeriesResponse timeSeriesResponse = ListTimeSeriesResponse.newBuilder().addTimeSeries(timeSeries).build();
ListTimeSeriesPage listTimeSeriesPage = mock(ListTimeSeriesPage.class);
when(listTimeSeriesPagedResponse.getPage()).thenReturn(listTimeSeriesPage);
when(listTimeSeriesPage.getResponse()).thenReturn(timeSeriesResponse);
doReturn(listTimeSeriesPagedResponse).when(metricServiceClient).listTimeSeries(any(ProjectName.class), anyString(), any(), any());
long messagesOverThreshold = healthTracker.messagesOverThreshold();
assertThat(messagesOverThreshold).isEqualTo(1);
}
use of com.google.bigtable.repackaged.com.google.monitoring.v3.TimeSeries in project java-monitoring by googleapis.
the class MetricServiceClientTest method createServiceTimeSeriesTest2.
@Test
public void createServiceTimeSeriesTest2() throws Exception {
Empty expectedResponse = Empty.newBuilder().build();
mockMetricService.addResponse(expectedResponse);
String name = "name3373707";
List<TimeSeries> timeSeries = new ArrayList<>();
client.createServiceTimeSeries(name, timeSeries);
List<AbstractMessage> actualRequests = mockMetricService.getRequests();
Assert.assertEquals(1, actualRequests.size());
CreateTimeSeriesRequest actualRequest = ((CreateTimeSeriesRequest) actualRequests.get(0));
Assert.assertEquals(name, actualRequest.getName());
Assert.assertEquals(timeSeries, actualRequest.getTimeSeriesList());
Assert.assertTrue(channelProvider.isHeaderSent(ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
}
Aggregations