Skip to content
This repository was archived by the owner on May 6, 2022. It is now read-only.

Commit 8fc48d7

Browse files
author
Florian Lautenschlager
committed
Updated the examples to versions: Server 0.1.3, Kassiopeia: 0.1.7
1 parent b0822b6 commit 8fc48d7

File tree

4 files changed

+21
-40
lines changed

4 files changed

+21
-40
lines changed

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,4 @@ build/
7373
gradle-app.setting
7474

7575
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
76-
!gradle-wrapper.jar
77-
78-
###Ingore the data folder
79-
data
76+
!gradle-wrapper.jar

chronix-timeseries-exploration/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ dependencies {
2929
compile 'commons-logging:commons-logging:1.2'
3030

3131
compile 'de.qaware.chronix:chronix-api:0.1'
32-
compile 'de.qaware.chronix:chronix-server-client:0.1.2'
33-
compile 'de.qaware.chronix:chronix-kassiopeia-simple:0.1.4'
34-
compile 'de.qaware.chronix:chronix-kassiopeia-simple-converter:0.1.4'
32+
compile 'de.qaware.chronix:chronix-server-client:0.1.3'
33+
compile 'de.qaware.chronix:chronix-kassiopeia-simple:0.1.7'
34+
compile 'de.qaware.chronix:chronix-kassiopeia-simple-converter:0.1.7'
3535
}
3636

3737

chronix-timeseries-exploration/src/main/java/de/qaware/chronix/examples/exploration/ui/MainController.java

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import de.qaware.chronix.examples.exploration.ui.log.TextAreaLogger;
2222
import de.qaware.chronix.solr.client.ChronixSolrStorage;
2323
import de.qaware.chronix.timeseries.MetricTimeSeries;
24-
import de.qaware.chronix.timeseries.dt.DoubleList;
25-
import de.qaware.chronix.timeseries.dt.LongList;
2624
import de.qaware.chronix.timeseries.dt.Point;
2725
import javafx.application.Platform;
2826
import javafx.concurrent.Task;
@@ -47,6 +45,7 @@
4745
import java.io.IOException;
4846
import java.net.URL;
4947
import java.time.Instant;
48+
import java.time.temporal.ChronoUnit;
5049
import java.util.List;
5150
import java.util.ResourceBundle;
5251
import java.util.function.BinaryOperator;
@@ -127,30 +126,14 @@ public Void call() {
127126
if (timeSeries == null || timeSeries2 == null) {
128127
return new MetricTimeSeries.Builder("empty").build();
129128
}
130-
MetricTimeSeries.Builder reduced = new MetricTimeSeries.Builder(timeSeries.getMetric())
131-
.attributes(timeSeries.attributes())
132-
.points(concat(timeSeries.getTimestamps(), timeSeries2.getTimestamps()),
133-
concat(timeSeries.getValues(), timeSeries2.getValues()));
134-
135-
return reduced.build();
129+
timeSeries.addAll(timeSeries2.getTimestampsAsArray(), timeSeries2.getValuesAsArray());
130+
return timeSeries;
136131
};
137132

138-
139133
chronix = new ChronixClient<>(new KassiopeiaSimpleConverter(), new ChronixSolrStorage<>(200, groupBy, reduce));
140134

141-
142135
return null;
143136
}
144-
145-
private LongList concat(LongList first, LongList second) {
146-
first.addAll(second);
147-
return first;
148-
}
149-
150-
private DoubleList concat(DoubleList first, DoubleList second) {
151-
first.addAll(second);
152-
return first;
153-
}
154137
};
155138

156139
new Thread(task).start();
@@ -180,7 +163,6 @@ protected Void call() throws Exception {
180163
List<MetricTimeSeries> result = chronix.stream(solr, query).collect(Collectors.toList());
181164
long queryEnd = System.currentTimeMillis();
182165
LOGGER.info("Query took: {} ms for {} points", (queryEnd - queryStart), size(result));
183-
184166
queryStart = System.currentTimeMillis();
185167
result.forEach(ts -> {
186168
XYChart.Series<DateAxis, NumberAxis> series = new XYChart.Series<>();
@@ -206,25 +188,26 @@ private int size(List<MetricTimeSeries> result) {
206188
}
207189

208190
private void convertTsToSeries(MetricTimeSeries ts, XYChart.Series<DateAxis, NumberAxis> series) {
209-
Point former = null;
210-
211-
List<Point> points = ts.points().collect(Collectors.toList());
212-
//reduce the amount shown in the chart
191+
ts.sort();
192+
List<Point> points;
193+
if (ts.size() > 200_000) {
194+
points = ts.points().filter(point -> point.getIndex() % 1000 == 0).collect(Collectors.toList());
195+
} else {
196+
points = ts.points().collect(Collectors.toList());
197+
}
198+
//reduce the amount shown in the chart we add every 100ths point
213199
for (int i = 0; i < points.size(); i++) {
214200
Point point = points.get(i);
215-
if (former != null && former.getValue() != point.getValue()) {
216-
series.getData().add(new XYChart.Data(Instant.ofEpochMilli(point.getTimestamp()), point.getValue()));
217201

218-
}
219-
//Little hack. The line chart does not show points
202+
series.getData().add(new XYChart.Data(Instant.ofEpochMilli(point.getTimestamp()), point.getValue()));
203+
204+
//If the chart only has one point than we add the same value, but 1 week in the future
220205
if (i == points.size() - 1) {
221-
series.getData().add(new XYChart.Data(Instant.ofEpochMilli(point.getTimestamp()), point.getValue()));
222206
if (series.getData().size() == 1) {
223-
series.getData().add(new XYChart.Data(Instant.ofEpochMilli(point.getTimestamp() + 1), point.getValue()));
207+
Instant futureTimestamp = Instant.ofEpochMilli(point.getTimestamp()).plus(1, ChronoUnit.DAYS);
208+
series.getData().add(new XYChart.Data(futureTimestamp, point.getValue()));
224209
}
225-
226210
}
227-
former = point;
228211
}
229212
}
230213

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ rootProject.name = 'chronix.examples'
33
//A simple ui for time series exploration using the Chronix Server and Chronix Kassiopeia
44
include 'chronix-timeseries-exploration'
55
include 'chronix-server-integration'
6+
include 'chronix-csv-import'
67

0 commit comments

Comments
 (0)