public JsonTelemetryDataSerializer(Writer out) throws IOException { reset(out); }
/** * Serializes the beginning of this object to the passed in writer. * @param writer The writer to serialize this object to. */ protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOException { writer.write("level", level); writer.writeRequired("method", method, 1024); writer.write("assembly", assembly, 1024); writer.write("fileName", fileName, 1024); writer.write("line", line); }
private String sanitizeKey(String key) { String sanitizedKey = trimAndTruncate(key, 150); sanitizedKey = sanitizeStringForJSON(sanitizedKey, 150); sanitizedKey = MakeKeyNonEmpty(sanitizedKey); return sanitizedKey; }
private <T extends JsonSerializable> String createJsonFor(T value) throws IOException { StringWriter stringWriter = new StringWriter(); JsonTelemetryDataSerializer temp = new JsonTelemetryDataSerializer(new BufferedWriter(stringWriter)); value.serialize(temp); temp.close(); String jsonStringToAppend = stringWriter.toString(); if (Strings.isNullOrEmpty(jsonStringToAppend) || JSON_EMPTY_OBJECT.equals(jsonStringToAppend)) { return ""; } return jsonStringToAppend; }
private static ArrayList<String> toJson(List<Telemetry> telemetries) throws IOException { StringWriter writer = new StringWriter(); JsonTelemetryDataSerializer jsonWriter = new JsonTelemetryDataSerializer(writer); ArrayList<String> asJsons = new ArrayList<String>(); for (Telemetry telemetry : telemetries) { telemetry.serialize(jsonWriter); jsonWriter.close(); String asJson = writer.toString(); asJsons.add(asJson); writer.getBuffer().setLength(0); jsonWriter.reset(writer); } return asJsons; } }
@Override protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOException { Preconditions.checkNotNull(writer, "writer must be a non-null value"); writer.write("ver", ver); writer.write("categoryName", categoryName, 1000); writer.write("counterName", counterName, 1000); writer.write("instanceName", instanceName, 1000); writer.write("value", value); writer.write("properties", properties); } }
public <T> void write(String name, Map<String, T> map) throws IOException { if (map == null) { return; } writeName(name); try { if (map.size() < 1) { out.write("null"); } else { out.write(JSON_START_OBJECT); separator = ""; for (Map.Entry<String, T> entry : map.entrySet()) { writeName(sanitizeKey(entry.getKey())); write(entry.getValue()); separator = JSON_SEPARATOR; } out.write(JSON_CLOSE_OBJECT); } } finally { separator = JSON_SEPARATOR; } }
private boolean compress(GZIPOutputStream zipStream, Collection<String> telemetries) throws IOException { int counter = 0; StringWriter writer = new StringWriter(); JsonTelemetryDataSerializer jsonWriter = new JsonTelemetryDataSerializer(writer); // The format is: // 1. Separate each Telemetry by newline // 2. Compress the entire data by using Gzip for (String telemetry : telemetries) { if (counter != 0) { zipStream.write(newlineString); } try { zipStream.write(telemetry.getBytes()); ++counter; } catch (Exception e) { InternalLogger.INSTANCE.error("Failed to serialize , exception: %s", e.toString()); } if (counter < telemetries.size()) { writer.getBuffer().setLength(0); jsonWriter.reset(writer); } } return counter > 0; } }
private <T> void write(T item) throws IOException { if (item instanceof JsonSerializable) { StringWriter stringWriter = new StringWriter(); String jsonStringToAppend = createJsonFor((JsonSerializable)item); if (Strings.isNullOrEmpty(jsonStringToAppend)) { return; } out.write(jsonStringToAppend); } else { if (WRAPPER_TYPES.contains(item.getClass())) { out.write(String.valueOf(item)); } else { String truncatedName = truncate(String.valueOf(item), 8192); String sanitizedItem = sanitizeStringForJSON(truncatedName, 8192); out.write(JSON_COMMA); out.write(sanitizedItem); out.write(JSON_COMMA); } } }
@Override public void send(Telemetry item) { try { StringWriter writer = new StringWriter(); item.serialize(new JsonTelemetryDataSerializer(writer)); InternalLogger.INSTANCE.trace("StdOutChannel, TELEMETRY: %s", writer.toString()); } catch (IOException ioe) { } }
/** * Serializes the beginning of this object to the passed in writer. * @param writer The writer to serialize this object to. */ protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOException { writer.writeRequired("baseType", baseType, 1000); }
private void writeToJson(String name, String value, int len) throws IOException { writeName(name); out.write(JSON_COMMA); String sanitizedValue = sanitizeStringForJSON(value, len); out.write(sanitizedValue); out.write(JSON_COMMA); separator = JSON_SEPARATOR; }
public <T extends JsonSerializable> void write(String name, T value) throws IOException { if (value == null) { return; } String jsonStringToAppend = createJsonFor(value); if (Strings.isNullOrEmpty(jsonStringToAppend)) { return; } writeName(name); out.write(jsonStringToAppend); separator = JSON_SEPARATOR; }
/** * THIS IS FOR DEBUGGING AND TESTING ONLY! * DON'T USE THIS IN HAPPY-PATH, PRODUCTION CODE. * * @return Json representation of this telemetry item. */ @Override public String toString() { StringWriter sw = new StringWriter(); try { JsonTelemetryDataSerializer jtds = new JsonTelemetryDataSerializer(sw); this.serialize(jtds); jtds.close(); return sw.toString(); } catch (IOException e) { // shouldn't happen with a string writer throw new RuntimeException("Error serializing "+this.getClass().getSimpleName()+" toString", e); } }
JsonTelemetryDataSerializer jsonWriter = new JsonTelemetryDataSerializer(writer); for (int i = 0; i < amount; ++i) { StubTelemetry stubTelemetry = createStubTelemetry(String.valueOf(i)); jsonWriter.close(); String asJson = writer.toString(); jsonWriter.reset(writer);
/** * Serializes the beginning of this object to the passed in writer. * @param writer The writer to serialize this object to. */ protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOException { super.serializeContent(writer); writer.write("perfTotal", perfTotal); writer.write("networkConnect", networkConnect); writer.write("sentRequest", sentRequest); writer.write("receivedResponse", receivedResponse); writer.write("domProcessing", domProcessing); }
item.serialize(new JsonTelemetryDataSerializer(writer));
@Override protected boolean doSend(Telemetry telemetry) { StringWriter writer = new StringWriter(); JsonTelemetryDataSerializer jsonWriter = null; try { jsonWriter = new JsonTelemetryDataSerializer(writer); telemetry.serialize(jsonWriter); jsonWriter.close(); String asJson = writer.toString(); telemetryBuffer.add(asJson); telemetry.reset(); } catch (IOException e) { InternalLogger.INSTANCE.error("Failed to serialize Telemetry"); InternalLogger.INSTANCE.trace("Stack trace is %s", ExceptionUtils.getStackTrace(e)); return false; } return true; }