private static Task WriteJsonMetricsV2(HttpListenerContext context, MetricsDataProvider metricsDataProvider) { var json = JsonBuilderV2.BuildJson(metricsDataProvider.CurrentMetricsData); jsonSize.Update(json.Length / 1024); return(WriteString(context, json, JsonBuilderV2.MetricsMimeType)); }
public async Task <HttpResponseMessage> GetMetricsAsync() { string json = JsonBuilderV2.BuildJson(_dataProvider.CurrentMetricsData); var obj = await Task.Run(() => JsonConvert.DeserializeObject(json)).WithCurrentCulture(); return(this.Request.GetMessageWithObject(HttpStatusCode.Found, obj)); }
private static void WriteJsonMetricsV2(HttpListenerContext context, MetricsDataProvider metricsDataProvider) { using (jsonv2Metrics.NewContext()) { var json = JsonBuilderV2.BuildJson(metricsDataProvider.CurrentMetricsData); jsonv2Size.Update(json.Length / 1024); WriteString(context, json, JsonBuilderV2.MetricsMimeType); } }
public Task Invoke(HttpContext context) { if (_options.MetricsEnabled && _options.MetricsEndpoint.HasValue && _options.MetricsEndpoint == context.Request.Path) { var json = JsonBuilderV2.BuildJson(_metricsContext.Context.DataProvider.CurrentMetricsData); return(WriteResponse(context, json, JsonBuilderV2.MetricsMimeType)); } return(_next(context)); }
public void RunReport(MetricsData metricsData, Func <HealthStatus> healthStatus, CancellationToken token) { var serialized = JsonBuilderV2.BuildJson(metricsData); var body = Encoding.UTF8.GetBytes(serialized); var headers = new Dictionary <string, string>(); var message = new OutgoingMessage(Guid.NewGuid().ToString(), headers, body); var operation = new TransportOperation(message, new UnicastAddressTag(destination)); var task = dispatcher.Dispatch(new TransportOperations(operation), new TransportTransaction(), new ContextBag()); task.GetAwaiter().GetResult(); }
public MetricsModule() : base(Config.ModulePath ?? "/") { if (string.IsNullOrEmpty(Config.ModulePath)) { return; } if (Config.ModuleConfigAction != null) { Config.ModuleConfigAction(this); } object[] noCacheHeaders = { new { Header = "Cache-Control", Value = "no-cache, no-store, must-revalidate" }, new { Header = "Pragma", Value = "no-cache" }, new { Header = "Expires", Value = "0" } }; Get["/"] = _ => { if (!this.Request.Url.Path.EndsWith("/")) { return(Response.AsRedirect(this.Request.Url.ToString() + "/")); } var gzip = AcceptsGzip(); var response = Response.FromStream(FlotWebApp.GetAppStream(!gzip), "text/html"); if (gzip) { response.WithHeader("Content-Encoding", "gzip"); } return(response); }; Get["/text"] = _ => Response.AsText(StringReport.RenderMetrics(Config.DataProvider.CurrentMetricsData, Config.HealthStatus)) .WithHeaders(noCacheHeaders); Get["/json"] = _ => Response.AsText(JsonBuilderV1.BuildJson(Config.DataProvider.CurrentMetricsData), "text/json") .WithHeaders(noCacheHeaders); Get["/v2/json"] = _ => Response.AsText(JsonBuilderV2.BuildJson(Config.DataProvider.CurrentMetricsData), "text/json") .WithHeaders(noCacheHeaders); Get["/ping"] = _ => Response.AsText("pong", "text/plain") .WithHeaders(noCacheHeaders); Get["/health"] = _ => GetHealthStatus() .WithHeaders(noCacheHeaders); }
private static Task GetJsonContentV2(IDictionary <string, object> environment, MetricsDataProvider metricsDataProvider) { var json = JsonBuilderV2.BuildJson(metricsDataProvider.CurrentMetricsData); return(WriteResponse(environment, json, JsonBuilderV2.MetricsMimeType)); }
private static MetricsEndpointResponse GetJsonV2Response(MetricsData data, Func <HealthStatus> healthStatus, MetricsEndpointRequest request) { var json = JsonBuilderV2.BuildJson(data); return(new MetricsEndpointResponse(json, JsonBuilderV2.MetricsMimeType)); }