SOLR-13635: Add basic support for parsing searcher openings and updates
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
index db9ccbc..db5a187 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
@@ -137,6 +137,10 @@
if (line.contains("QTime=")) {
t = parseQueryRecord(line);
+ } else if(line.contains("Registered new searcher")) {
+ t = parseNewSearch(line);
+ } else if(line.contains("path=/update")) {
+ t = parseUpdate(line);
} else {
continue;
}
@@ -203,6 +207,17 @@
return tuple;
}
+ private Tuple parseNewSearch(String line) {
+
+ String[] parts = line.split("\\s+");
+ Tuple tuple = new Tuple();
+ tuple.put("date_dt", parts[0]);
+ tuple.put("core_s", parseNewSearcherCollection(line));
+ tuple.put("new_searcher", "true");
+
+ return tuple;
+ }
+
private String parseCollection(String line) {
char[] ca = {',', '}'};
String parts[] = line.split("collection=c:");
@@ -213,6 +228,27 @@
}
}
+ private Tuple parseUpdate(String line) {
+ String[] parts = line.split("\\s+");
+ Tuple tuple = new Tuple();
+ tuple.put("date_dt", parts[0]);
+ tuple.put("update_s", "true");
+ tuple.put("collection_s", parseCollection(line));
+ tuple.put("core_s", parseCore(line));
+ tuple.put("node_s", parseNode(line));
+ return tuple;
+ }
+
+ private String parseNewSearcherCollection(String line) {
+ char[] ca = {']'};
+ String parts[] = line.split("\\[");
+ if(parts.length > 3) {
+ return readUntil(parts[2], ca);
+ } else {
+ return null;
+ }
+ }
+
private String parseCore(String line) {
char[] ca = {',', '}'};
String parts[] = line.split("core=x:");