Пример #1
0
        private async Task <NaosHealthReport> GetJsonAsync()
        {
            LoggingFilterContext.Prepare(this.filterContext);

            var httpClient = this.httpClientFactory.CreateClient("health");
            var response   = await httpClient.GetAsync("https://localhost:5001/health").AnyContext();

            var result = await response.ReadAsAsync <NaosHealthReport>().AnyContext();

            if (result != null)
            {
                result.CorrelationId = response.GetCorrelationIdHeader();
            }
            else
            {
                result = new NaosHealthReport {
                    Status = "Unhealthy", Timestamp = DateTime.UtcNow, CorrelationId = response.GetCorrelationIdHeader()
                };
            }

            return(result);
        }
Пример #2
0
        public static NaosHealthReport MapReport(HealthReport report)
        {
            if (report == null)
            {
                return(new NaosHealthReport());
            }

            var result = new NaosHealthReport
            {
                Status    = report.Status.ToString(),
                Duration  = report.TotalDuration,
                Took      = report.TotalDuration.Humanize(),
                Timestamp = DateTime.UtcNow,
                Entries   = new Dictionary <string, NaosHealthReportEntry>()
            };

            foreach (var entry in report.Entries.Safe())
            {
                if (entry.Key == null)
                {
                    continue;
                }

                result.Entries.AddOrUpdate(entry.Key, new NaosHealthReportEntry
                {
                    Status      = entry.Value.Status.ToString(),
                    Description = entry.Value.Description,
                    Tags        = entry.Value.Tags,
                    Duration    = entry.Value.Duration,
                    Took        = entry.Value.Duration.Humanize(),
                    Error       = entry.Value.Exception != null ? $"[{entry.Value.Exception.GetType().Name}] {entry.Value.Exception.Message}" : null,
                    Data        = entry.Value.Data
                });
            }

            return(result);
        }