private String createJsonMessage(Server server, Query query, Result result, List<String> valuePath, Object value) throws IOException { String keyString = getKeyString(server, query, result, typeNames, this.rootPrefix); String cleanKeyString = keyString.replaceAll("[()]", "_"); try ( ByteArrayOutputStream out = new ByteArrayOutputStream(); JsonGenerator generator = jsonFactory.createGenerator(out, UTF8) ) { generator.writeStartObject(); generator.writeStringField("keyspace", cleanKeyString); generator.writeStringField("value", value.toString()); generator.writeNumberField("timestamp", result.getEpoch() / 1000); generator.writeObjectFieldStart("tags"); for (Map.Entry<String, String> tag : this.tags.entrySet()) { generator.writeStringField(tag.getKey(), tag.getValue()); } for (ResultAttribute resultAttribute : this.resultAttributesToWriteAsTags) { generator.writeStringField(resultAttribute.getName(), resultAttribute.get(result)); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return out.toString("UTF-8"); } } }
private Map<String, String> buildResultTagMap(Result result) { Map<String, String> resultTagMap = new TreeMap<>(); for (ResultAttribute resultAttribute : resultAttributesToWriteAsTags) { resultAttribute.addTo(resultTagMap, result); } if (typeNamesAsTags) { Map<String, String> typeNameValueMap = result.getTypeNameMap(); for (String typeToTag : this.typeNames) { if (typeNameValueMap.containsKey(typeToTag)) { resultTagMap.put(typeToTag, typeNameValueMap.get(typeToTag)); } } } return resultTagMap; }
/** * Calls the Getter defined by the {@link #get(Result)} on the * {@link Result} add adds the entry to the supplied {@link Map} * * @param attributeMap * The map to add the {@link Result} data to * @param result * The {@link Result} to get the data from */ public void addTo(@Nonnull Map<String, String> attributeMap, @Nonnull Result result) { attributeMap.put(name, get(result)); } }
/** * Calls the Getter defined by the {@link #get(Result)} on the * {@link Result} add adds the entry to the supplied {@link Map} * * @param attributeMap * The map to add the {@link Result} data to * @param result * The {@link Result} to get the data from */ public void addTo(@Nonnull Map<String, String> attributeMap, @Nonnull Result result) { attributeMap.put(name, get(result)); } }
private String createJsonMessage(Server server, Query query, Result result, List<String> valuePath, Object value) throws IOException { String keyString = getKeyString(server, query, result, typeNames, this.rootPrefix); String cleanKeyString = keyString.replaceAll("[()]", "_"); try ( ByteArrayOutputStream out = new ByteArrayOutputStream(); JsonGenerator generator = jsonFactory.createGenerator(out, UTF8) ) { generator.writeStartObject(); generator.writeStringField("keyspace", cleanKeyString); generator.writeStringField("value", value.toString()); generator.writeNumberField("timestamp", result.getEpoch() / 1000); generator.writeObjectFieldStart("tags"); for (Map.Entry<String, String> tag : this.tags.entrySet()) { generator.writeStringField(tag.getKey(), tag.getValue()); } for (ResultAttribute resultAttribute : this.resultAttributesToWriteAsTags) { generator.writeStringField(resultAttribute.getName(), resultAttribute.get(result)); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return out.toString("UTF-8"); } } }
private Map<String, String> buildResultTagMap(Result result) throws Exception { Map<String, String> resultTagMap = new TreeMap<>(); for (ResultAttribute resultAttribute : resultAttributesToWriteAsTags) { resultAttribute.addTo(resultTagMap, result); } return resultTagMap; }