Skip to content

Commit

Permalink
Add more logging when failing watch history entry fails. (#50931)
Browse files Browse the repository at this point in the history
Relates to #30777
  • Loading branch information
martijnvg authored Jan 16, 2020
1 parent 633b06a commit 625b65e
Showing 1 changed file with 66 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -305,39 +305,76 @@ private ObjectPath getWatchHistoryEntry(String watchId) throws Exception {

private ObjectPath getWatchHistoryEntry(String watchId, String state) throws Exception {
final AtomicReference<ObjectPath> objectPathReference = new AtomicReference<>();
assertBusy(() -> {
client().performRequest(new Request("POST", "/.watcher-history-*/_refresh"));

try (XContentBuilder builder = jsonBuilder()) {
builder.startObject();
builder.startObject("query").startObject("bool").startArray("must");
builder.startObject().startObject("term").startObject("watch_id").field("value", watchId).endObject().endObject()
try {
assertBusy(() -> {
client().performRequest(new Request("POST", "/.watcher-history-*/_refresh"));

try (XContentBuilder builder = jsonBuilder()) {
builder.startObject();
builder.startObject("query").startObject("bool").startArray("must");
builder.startObject().startObject("term").startObject("watch_id").field("value", watchId).endObject().endObject()
.endObject();
if (Strings.isNullOrEmpty(state) == false) {
builder.startObject().startObject("term").startObject("state").field("value", state).endObject().endObject()
if (Strings.isNullOrEmpty(state) == false) {
builder.startObject().startObject("term").startObject("state").field("value", state).endObject().endObject()
.endObject();
}
builder.endArray().endObject().endObject();
builder.startArray("sort").startObject().startObject("trigger_event.triggered_time").field("order", "desc").endObject()
}
builder.endArray().endObject().endObject();
builder.startArray("sort").startObject().startObject("trigger_event.triggered_time").field("order", "desc").endObject()
.endObject().endArray();
builder.endObject();

Request searchRequest = new Request("POST", "/.watcher-history-*/_search");
searchRequest.addParameter(TOTAL_HITS_AS_INT_PARAM, "true");
searchRequest.setJsonEntity(Strings.toString(builder));
Response response = client().performRequest(searchRequest);
ObjectPath objectPath = ObjectPath.createFromResponse(response);
int totalHits = objectPath.evaluate("hits.total");
assertThat(totalHits, is(greaterThanOrEqualTo(1)));
String watchid = objectPath.evaluate("hits.hits.0._source.watch_id");
assertThat(watchid, is(watchId));
objectPathReference.set(objectPath);
} catch (ResponseException e) {
final String err = "Failed to perform search of watcher history";
logger.info(err, e);
fail(err);
builder.endObject();

Request searchRequest = new Request("POST", "/.watcher-history-*/_search");
searchRequest.addParameter(TOTAL_HITS_AS_INT_PARAM, "true");
searchRequest.setJsonEntity(Strings.toString(builder));
Response response = client().performRequest(searchRequest);
ObjectPath objectPath = ObjectPath.createFromResponse(response);
int totalHits = objectPath.evaluate("hits.total");
assertThat(totalHits, is(greaterThanOrEqualTo(1)));
String watchid = objectPath.evaluate("hits.hits.0._source.watch_id");
assertThat(watchid, is(watchId));
objectPathReference.set(objectPath);
} catch (ResponseException e) {
final String err = "Failed to perform search of watcher history";
logger.info(err, e);
fail(err);
}
});
} catch (AssertionError ae) {
{
Request request = new Request("GET", "/_watcher/stats");
request.addParameter("metric", "_all");
request.addParameter("pretty", "true");
try {
Response response = client().performRequest(request);
logger.info("watcher_stats: {}", EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
logger.error("error while fetching watcher_stats", e);
}
}
});
{
Request request = new Request("GET", "/_cluster/state");
request.addParameter("pretty", "true");
try {
Response response = client().performRequest(request);
logger.info("cluster_state: {}", EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
logger.error("error while fetching cluster_state", e);
}
}
{
Request request = new Request("GET", "/.watcher-history-*/_search");
request.addParameter("size", "100");
request.addParameter("sort", "trigger_event.triggered_time:desc");
request.addParameter("pretty", "true");
try {
Response response = client().performRequest(request);
logger.info("watcher_history_snippets: {}", EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
logger.error("error while fetching watcher_history_snippets", e);
}
}
throw ae;
}
return objectPathReference.get();
}
}

0 comments on commit 625b65e

Please sign in to comment.