private static string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Hour: dateFormat = "to_char(CreateTime,'hh24')"; break; case TimeUnit.Month: dateFormat = "to_char(CreateTime,'mm')"; break; case TimeUnit.Year: dateFormat = ""; break; case TimeUnit.Day: default: dateFormat = "to_char(CreateTime,'dd')"; break; } return(dateFormat); }
private static string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Minute: dateFormat = "CONVERT(varchar(16),CreateTime,120)"; break; case TimeUnit.Hour: dateFormat = "CONVERT(varchar(13),CreateTime,120)"; break; case TimeUnit.Month: dateFormat = "CONVERT(varchar(7),CreateTime, 120)"; break; case TimeUnit.Day: default: dateFormat = "CONVERT(varchar(10),CreateTime,120)"; break; } return(dateFormat); }
private static string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Hour: dateFormat = "DATENAME(HOUR, CreateTime)"; break; case TimeUnit.Month: dateFormat = "CONVERT(varchar(7),CreateTime, 120)"; break; case TimeUnit.Year: dateFormat = ""; break; case TimeUnit.Day: default: dateFormat = "CONVERT(varchar(100),CreateTime, 23)"; break; } return dateFormat; }
private static string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Minute: dateFormat = "DATE_FORMAT(CreateTime,'%H-%i')"; break; case TimeUnit.Hour: dateFormat = "DATE_FORMAT(CreateTime,'%d-%H')"; break; case TimeUnit.Month: dateFormat = "DATE_FORMAT(CreateTime,'%Y-%m')"; break; case TimeUnit.Year: dateFormat = "DATE_FORMAT(CreateTime,'%Y')"; break; case TimeUnit.Day: default: dateFormat = "DATE_FORMAT(CreateTime,'%Y-%m-%d')"; break; } return(dateFormat); }
private string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Hour: dateFormat = "Date_Part('Hour',CreateTime)"; break; case TimeUnit.Month: dateFormat = "Date_Part('Month',CreateTime)"; break; case TimeUnit.Year: dateFormat = "Date_Part('Year',CreateTime)"; break; case TimeUnit.Day: default: dateFormat = "Date_Part('Day',CreateTime)"; break; } return(dateFormat); }
private string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Minute: dateFormat = "to_char(CreateTime,'hh24-mi')"; break; case TimeUnit.Hour: dateFormat = "to_char(CreateTime,'DD-hh24')"; break; case TimeUnit.Day: default: dateFormat = "to_char(CreateTime,'YYYY-MM-DD')"; break; } return(dateFormat); }
private static string GetDateFormat(TimeSpanStatisticsFilterOption filterOption) { string dateFormat; switch (filterOption.Type) { case TimeUnit.Minute: dateFormat = "strftime('%H-%M',CreateTime)"; break; case TimeUnit.Hour: dateFormat = "strftime('%d-%H',CreateTime)"; break; case TimeUnit.Day: default: dateFormat = "strftime('%Y-%m-%d',CreateTime)"; break; } return(dateFormat); }
/// <summary> /// 获取响应时间统计 /// </summary> /// <param name="filterOption"></param> /// <returns></returns> public async Task <ResponseTimeStatisticsResult> GetResponseTimeStatisticsAsync(TimeSpanStatisticsFilterOption filterOption) { var where = BuildSqlFilter(filterOption); var dateFormat = GetDateFormat(filterOption); string sql = $"Select {dateFormat} KeyField,AVG(Milliseconds) ValueField From RequestInfo {where} Group by {dateFormat};"; TraceLogSql(sql); var result = new ResponseTimeStatisticsResult() { Type = filterOption.Type, }; await LoggingSqlOperation(async connection => { result.Items = new Dictionary <string, int>(); var list = (await connection.QueryAsync <KVClass <string, int> >(sql).ConfigureAwait(false)).ToList(); if (filterOption.Type == TimeUnit.Minute) { foreach (var item in list) { result.Items.Add(item.KeyField.Substring(11).Replace(":", "-"), item.ValueField); } } if (filterOption.Type == TimeUnit.Hour) { foreach (var item in list) { result.Items.Add(item.KeyField.Substring(8).Replace(" ", "-"), item.ValueField); } } if (filterOption.Type == TimeUnit.Day) { foreach (var item in list) { result.Items.Add(item.KeyField, item.ValueField); } } }, "获取响应时间统计异常").ConfigureAwait(false); return(result); }
public async Task <ResponseTimeStatisticsResult> GetResponseTimeStatisticsAsync(TimeSpanStatisticsFilterOption filterOption) { var where = BuildSqlFilter(filterOption); var dateFormat = GetDateFormat(filterOption); string sql = $@"Select {dateFormat} AS KeyField,AVG(Milliseconds) AS ValueField From ""{Prefix}RequestInfo"" {where} Group by KeyField;"; TraceLogSql(sql); var result = new ResponseTimeStatisticsResult() { Type = filterOption.Type, }; await LoggingSqlOperation(async connection => { result.Items = new Dictionary <string, int>(); (await connection.QueryAsync <KVClass <string, int> >(sql)).ToList().ForEach(m => { result.Items.Add(m.KeyField, m.ValueField); }); }, "获取响应时间统计异常"); return(result); }
/// <summary> /// 获取请求次数统计 /// </summary> /// <param name="filterOption"></param> /// <returns></returns> public async Task<RequestTimesStatisticsResult> GetRequestTimesStatisticsAsync(TimeSpanStatisticsFilterOption filterOption) { var where = BuildSqlFilter(filterOption); var dateFormat = GetDateFormat(filterOption); string sql = $"Select {dateFormat} KeyField,COUNT(1) ValueField From RequestInfo {where} Group by {dateFormat};"; TraceLogSql(sql); var result = new RequestTimesStatisticsResult() { Type = filterOption.Type, }; await LoggingSqlOperation(async connection => { result.Items = new Dictionary<string, int>(); (await connection.QueryAsync<KVClass<string, int>>(sql).ConfigureAwait(false)).ToList().ForEach(m => { result.Items.Add(m.KeyField.Split('-').Last().ToInt().ToString(), m.ValueField); }); }, "获取请求次数统计异常").ConfigureAwait(false); return result; }
public async Task <ResponseTimeStatisticsResult> GetResponseTimeStatisticsAsync(TimeSpanStatisticsFilterOption option) { var response = await Client.SearchAsync <RequestInfo>(x => x.Index(GetIndexName <RequestInfo>()) .Query(c => c.HasDateWhere(option.StartTime, option.EndTime) && c.Terms(f => f.Field(e => e.StatusCode).Terms(option.StatusCodes)) && c.Terms(f => f.Field(e => e.Node).Terms(option.Nodes)) ) .Aggregations(a => a.DateHistogram("date", b => b.Field(c => c.CreateTime).AutoFormatTime(option.Type).MinimumDocumentCount(0) .ExtendedBounds(option.StartTime.Value, option.EndTime.Value) .TimeZone("+08:00").Order(HistogramOrder.KeyAscending) .Aggregations(m => m.Average("Average", n => n.Field(k => k.Milliseconds))) )).Size(0) ); var result = new ResponseTimeStatisticsResult { Type = option.Type, Items = new Dictionary <string, int>() }; if (response != null && response.IsValid) { if (response.Aggregations.Count > 0) { var buckets = (response.Aggregations.FirstOrDefault().Value as Nest.BucketAggregate).Items.ToList(); foreach (var item in buckets) { var model = item as Nest.DateHistogramBucket; if (!result.Items.ContainsKey(model.KeyAsString.ToInt().ToString())) { result.Items.Add(model.KeyAsString.ToInt().ToString(), Convert.ToInt32(model.ValueCount("Average").Value == null ? 0 : model.ValueCount("Average").Value.Value)); } } } } return(result); }
/// <summary> /// 获取请求次数统计 /// </summary> /// <param name="filterOption"></param> /// <returns></returns> public async Task <RequestTimesStatisticsResult> GetRequestTimesStatisticsAsync(TimeSpanStatisticsFilterOption filterOption) { var where = BuildSqlFilter(filterOption); var dateFormat = GetDateFormat(filterOption); string sql = $"Select {dateFormat} KeyField,COUNT(1) ValueField From RequestInfo {where} Group by {dateFormat} "; TraceLogSql(sql); var result = new RequestTimesStatisticsResult() { Type = filterOption.Type, }; await LoggingSqlOperation(async connection => { result.Items = new Dictionary <string, int>(); var list = (await connection.QueryAsync <KVClass <string, int> >(sql)).ToList(); foreach (var item in list) { result.Items.Add(item.KeyField, item.ValueField); } }, "获取请求次数统计异常"); return(result); }
public Task <ResponseTimeStatisticsResult> GetResponseTimeStatisticsAsync(TimeSpanStatisticsFilterOption filterOption) { throw new NotImplementedException(); }