Skip to content

Commit c626f48

Browse files
committed
add all dimensions to kairos sink
1 parent 080a927 commit c626f48

File tree

1 file changed

+13
-38
lines changed

1 file changed

+13
-38
lines changed

src/main/java/com/arpnetworking/tsdcore/sinks/KairosDbSink.java

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.fasterxml.jackson.core.JsonEncoding;
2727
import com.fasterxml.jackson.core.JsonGenerator;
2828
import com.fasterxml.jackson.databind.ObjectMapper;
29+
import com.google.common.collect.ImmutableMap;
2930
import com.google.common.collect.Lists;
3031
import net.sf.oval.constraint.Min;
3132
import net.sf.oval.constraint.NotNull;
@@ -38,7 +39,7 @@
3839
import java.util.Arrays;
3940
import java.util.Collection;
4041
import java.util.List;
41-
import java.util.Optional;
42+
import java.util.Map;
4243

4344
/**
4445
* Publishes to a KairosDbSink endpoint. This class is thread safe.
@@ -74,10 +75,8 @@ protected Collection<byte[]> serialize(final PeriodicData periodicData) {
7475
// Extract and transform shared data
7576
final long timestamp = periodicData.getStart().plus(periodicData.getPeriod()).getMillis();
7677
final String serializedPeriod = periodicData.getPeriod().toString(ISOPeriodFormat.standard());
77-
final Optional<String> host = Optional.ofNullable(periodicData.getDimensions().get("host"));
78-
final Optional<String> scope = Optional.ofNullable(periodicData.getDimensions().get("scope"));
79-
final Optional<String> domain = Optional.ofNullable(periodicData.getDimensions().get("domain"));
80-
final Serializer serializer = new Serializer(timestamp, serializedPeriod, host, scope, domain);
78+
final ImmutableMap<String, String> dimensions = periodicData.getDimensions();
79+
final Serializer serializer = new Serializer(timestamp, serializedPeriod, dimensions);
8180

8281
// Initialize the chunk buffer
8382
currentChunk.put(HEADER);
@@ -164,14 +163,10 @@ private class Serializer {
164163
Serializer(
165164
final long timestamp,
166165
final String serializedPeriod,
167-
final Optional<String> host,
168-
final Optional<String> scope,
169-
final Optional<String> domain) {
166+
final ImmutableMap<String, String> dimensions) {
170167
_timestamp = timestamp;
171168
_serializedPeriod = serializedPeriod;
172-
_host = host;
173-
_scope = scope;
174-
_domain = domain;
169+
_dimensions = dimensions;
175170
}
176171

177172
public void serializeDatum(
@@ -190,14 +185,8 @@ public void serializeDatum(
190185
chunkGenerator.writeNumberField("timestamp", _timestamp);
191186
chunkGenerator.writeNumberField("value", datum.getValue().getValue());
192187
chunkGenerator.writeObjectFieldStart("tags");
193-
if (_host.isPresent()) {
194-
chunkGenerator.writeStringField("host", _host.get());
195-
}
196-
if (_scope.isPresent()) {
197-
chunkGenerator.writeStringField("scope", _scope.get());
198-
}
199-
if (_domain.isPresent()) {
200-
chunkGenerator.writeStringField("domain", _domain.get());
188+
for (Map.Entry<String, String> entry : _dimensions.entrySet()) {
189+
chunkGenerator.writeStringField(entry.getKey(), entry.getValue());
201190
}
202191
chunkGenerator.writeStringField("service", datum.getFQDSN().getService());
203192
chunkGenerator.writeStringField("cluster", datum.getFQDSN().getCluster());
@@ -261,14 +250,8 @@ private void serializeConditionStatus(
261250
chunkGenerator.writeNumberField("timestamp", _timestamp);
262251
chunkGenerator.writeNumberField("value", condition.isTriggered().get() ? 1 : 0);
263252
chunkGenerator.writeObjectFieldStart("tags");
264-
if (_host.isPresent()) {
265-
chunkGenerator.writeStringField("host", _host.get());
266-
}
267-
if (_scope.isPresent()) {
268-
chunkGenerator.writeStringField("scope", _scope.get());
269-
}
270-
if (_domain.isPresent()) {
271-
chunkGenerator.writeStringField("domain", _domain.get());
253+
for (Map.Entry<String, String> entry : _dimensions.entrySet()) {
254+
chunkGenerator.writeStringField(entry.getKey(), entry.getValue());
272255
}
273256
chunkGenerator.writeStringField("service", condition.getFQDSN().getService());
274257
chunkGenerator.writeStringField("cluster", condition.getFQDSN().getCluster());
@@ -294,14 +277,8 @@ private void serializeConditionThreshold(
294277
chunkGenerator.writeNumberField("timestamp", _timestamp);
295278
chunkGenerator.writeNumberField("value", condition.getThreshold().getValue());
296279
chunkGenerator.writeObjectFieldStart("tags");
297-
if (_host.isPresent()) {
298-
chunkGenerator.writeStringField("host", _host.get());
299-
}
300-
if (_scope.isPresent()) {
301-
chunkGenerator.writeStringField("scope", _scope.get());
302-
}
303-
if (_domain.isPresent()) {
304-
chunkGenerator.writeStringField("domain", _domain.get());
280+
for (Map.Entry<String, String> entry : _dimensions.entrySet()) {
281+
chunkGenerator.writeStringField(entry.getKey(), entry.getValue());
305282
}
306283
chunkGenerator.writeStringField("service", condition.getFQDSN().getService());
307284
chunkGenerator.writeStringField("cluster", condition.getFQDSN().getCluster());
@@ -315,9 +292,7 @@ private void serializeConditionThreshold(
315292

316293
private final long _timestamp;
317294
private final String _serializedPeriod;
318-
private final Optional<String> _host;
319-
private final Optional<String> _scope;
320-
private final Optional<String> _domain;
295+
private final ImmutableMap<String, String> _dimensions;
321296
}
322297

323298
/**

0 commit comments

Comments
 (0)