You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/10/13 16:12:17 UTC
karaf-decanter git commit: KARAF-4061 - Added Double.isNan() check to
be able to send NaN to Elasticsearch.
Repository: karaf-decanter
Updated Branches:
refs/heads/master 4d65066be -> 9f7c09de0
KARAF-4061 - Added Double.isNan() check to be able to send NaN to Elasticsearch.
Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/9f7c09de
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/9f7c09de
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/9f7c09de
Branch: refs/heads/master
Commit: 9f7c09de0cecf8c847cba49752e7f050f28695bf
Parents: 4d65066
Author: Morgan Hautman <mo...@gmail.com>
Authored: Tue Oct 13 15:36:17 2015 +0200
Committer: Morgan Hautman <mo...@gmail.com>
Committed: Tue Oct 13 15:36:17 2015 +0200
----------------------------------------------------------------------
.../elasticsearch/ElasticsearchAppender.java | 23 +++++++++++---------
1 file changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/9f7c09de/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java
----------------------------------------------------------------------
diff --git a/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java b/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java
index ba4b574..9935c32 100644
--- a/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java
+++ b/appender/elasticsearch/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/ElasticsearchAppender.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
public class ElasticsearchAppender implements EventHandler {
private final static Logger LOGGER = LoggerFactory.getLogger(ElasticsearchAppender.class);
-
+
private final SimpleDateFormat tsFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSS'Z'");
private final SimpleDateFormat indexDateFormat = new SimpleDateFormat("yyyy.MM.dd");
private final AtomicLong pendingBulkItemCount = new AtomicLong();
@@ -83,18 +83,18 @@ public class ElasticsearchAppender implements EventHandler {
InetSocketTransportAddress address = new InetSocketTransportAddress(host, port);
client = new TransportClient(settings).addTransportAddress(address);
bulkProcessor = BulkProcessor.builder(client, new BulkProcessor.Listener() {
-
+
@Override
public void beforeBulk(long executionId, BulkRequest request) {
pendingBulkItemCount.addAndGet(request.numberOfActions());
}
-
+
@Override
public void afterBulk(long executionId, BulkRequest request, Throwable failure) {
LOGGER.warn("Can't append into Elasticsearch", failure);
pendingBulkItemCount.addAndGet(-request.numberOfActions());
}
-
+
@Override
public void afterBulk(long executionId, BulkRequest request, BulkResponse response) {
pendingBulkItemCount.addAndGet(-response.getItems().length);
@@ -113,7 +113,7 @@ public class ElasticsearchAppender implements EventHandler {
public void close() {
LOGGER.info("Stopping Elasticsearch appender");
-
+
if(bulkProcessor != null) {
bulkProcessor.close();
}
@@ -122,7 +122,7 @@ public class ElasticsearchAppender implements EventHandler {
while(concurrentRequests > 0 && pendingBulkItemCount.get() > 0) {
LockSupport.parkNanos(1000*50);
}
-
+
if(client != null) {
client.close();
}
@@ -141,7 +141,7 @@ public class ElasticsearchAppender implements EventHandler {
private void send(Event event) {
Long ts = (Long)event.getProperty("timestamp");
Date date = ts != null ? new Date(ts) : new Date();
-
+
JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
jsonObjectBuilder.add("@timestamp", tsFormat.format(date));
for (String key : event.getPropertyNames()) {
@@ -186,11 +186,11 @@ public class ElasticsearchAppender implements EventHandler {
JsonObject jsonObject = jsonObjectBuilder.build();
String indexName = getIndexName("karaf", date);
String jsonSt = jsonObject.toString();
-
+
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("Sending event to elastic search with content: {}", jsonSt);
}
-
+
bulkProcessor.add(new IndexRequest(indexName, getType(event)).source(jsonSt));
}
@@ -248,7 +248,10 @@ public class ElasticsearchAppender implements EventHandler {
else if (value instanceof Float)
builder.add(key, (Float) value);
else if (value instanceof Double)
- builder.add(key, (Double) value);
+ if (Double.isNaN((Double) value))
+ builder.add(key, "NaN");
+ else
+ builder.add(key, (Double) value);
else if (value instanceof Boolean)
builder.add(key, (Boolean) value);
}