private HiveHookEventProto getPostHookEvent(HookContext hookContext, boolean success) {
QueryPlan plan = hookContext.getQueryPlan();
LOG.info("Received post-hook notification for: " + plan.getQueryId());
HiveHookEventProto.Builder builder = HiveHookEventProto.newBuilder();
builder.setEventType(EventType.QUERY_COMPLETED.name());
builder.setTimestamp(clock.getTime());
builder.setHiveQueryId(plan.getQueryId());
builder.setUser(getUser(hookContext));
builder.setRequestUser(getRequestUser(hookContext));
if (hookContext.getOperationId() != null) {
builder.setOperationId(hookContext.getOperationId());
}
addMapEntry(builder, OtherInfoType.STATUS, Boolean.toString(success));
JSONObject perfObj = new JSONObject();
for (String key : hookContext.getPerfLogger().getEndTimes().keySet()) {
perfObj.put(key, hookContext.getPerfLogger().getDuration(key));
}
addMapEntry(builder, OtherInfoType.PERF, perfObj.toString());
return builder.build();
}