public void SerializeTo(ref StatsServiceCheck sc, SerializedMetric serializedMetric) { serializedMetric.Reset(); var builder = serializedMetric.Builder; string processedName = EscapeName(sc.Name); string processedMessage = EscapeMessage(sc.ServiceCheckMessage); builder.Append("_sc|"); builder.Append(processedName); builder.AppendFormat(CultureInfo.InvariantCulture, "|{0}", sc.Status); if (sc.Timestamp != null) { builder.AppendFormat(CultureInfo.InvariantCulture, "|d:{0}", sc.Timestamp.Value); } SerializerHelper.AppendIfNotNull(builder, "|h:", sc.Hostname); _serializerHelper.AppendTags(builder, sc.Tags); // Note: this must always be appended to the result last. SerializerHelper.AppendIfNotNull(builder, "|m:", processedMessage); sc.ServiceCheckMessage = TruncateMessageIfRequired(sc.Name, builder, sc.TruncateIfTooLong, processedMessage); if (sc.ServiceCheckMessage != null) { sc.TruncateIfTooLong = true; SerializeTo(ref sc, serializedMetric); } }
private static SerializedMetric Serialize( string name, int status, int?timestamp = null, string hostname = null, string[] tags = null, string serviceCheckMessage = null, bool truncateIfTooLong = false) { var statsServiceCheck = new StatsServiceCheck { Name = name, Status = status, Timestamp = timestamp, Hostname = hostname, ServiceCheckMessage = serviceCheckMessage, TruncateIfTooLong = truncateIfTooLong, Tags = tags, }; var serializer = CreateSerializer(); var serializedMetric = new SerializedMetric(); serializer.SerializeTo(ref statsServiceCheck, serializedMetric); return(serializedMetric); }