private static void WriteCollapserMetrics(JsonTextWriter writer, HystrixCollapserMetrics collapserMetrics) { IHystrixCollapserKey key = collapserMetrics.CollapserKey; writer.WriteStartObject(); writer.WriteStringField("type", "HystrixCollapser"); writer.WriteStringField("name", key.Name); writer.WriteLongField("currentTime", Time.CurrentTimeMillisJava); writer.WriteLongField("rollingCountRequestsBatched", collapserMetrics.GetRollingCount(CollapserEventType.ADDED_TO_BATCH)); writer.WriteLongField("rollingCountBatches", collapserMetrics.GetRollingCount(CollapserEventType.BATCH_EXECUTED)); writer.WriteLongField("rollingCountResponsesFromCache", collapserMetrics.GetRollingCount(CollapserEventType.RESPONSE_FROM_CACHE)); // batch size percentiles writer.WriteIntegerField("batchSize_mean", collapserMetrics.BatchSizeMean); writer.WriteObjectFieldStart("batchSize"); writer.WriteIntegerField("25", collapserMetrics.GetBatchSizePercentile(25)); writer.WriteIntegerField("50", collapserMetrics.GetBatchSizePercentile(50)); writer.WriteIntegerField("75", collapserMetrics.GetBatchSizePercentile(75)); writer.WriteIntegerField("90", collapserMetrics.GetBatchSizePercentile(90)); writer.WriteIntegerField("95", collapserMetrics.GetBatchSizePercentile(95)); writer.WriteIntegerField("99", collapserMetrics.GetBatchSizePercentile(99)); writer.WriteIntegerField("99.5", collapserMetrics.GetBatchSizePercentile(99.5)); writer.WriteIntegerField("100", collapserMetrics.GetBatchSizePercentile(100)); writer.WriteEndObject(); writer.WriteBooleanField("propertyValue_requestCacheEnabled", collapserMetrics.Properties.RequestCacheEnabled); writer.WriteIntegerField("propertyValue_maxRequestsInBatch", collapserMetrics.Properties.MaxRequestsInBatch); writer.WriteIntegerField("propertyValue_timerDelayInMilliseconds", collapserMetrics.Properties.TimerDelayInMilliseconds); writer.WriteIntegerField("reportingHosts", 1); // this will get summed across all instances in a cluster writer.WriteEndObject(); }