Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 8
0
        private static MetricsEndpointResponse GetJsonV2Response(MetricsData data, Func <HealthStatus> healthStatus, MetricsEndpointRequest request)
        {
            var json = JsonBuilderV2.BuildJson(data);

            return(new MetricsEndpointResponse(json, JsonBuilderV2.MetricsMimeType));
        }