From 269698229186c397e18562f1290da884a615ff4c Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Thu, 27 Jun 2024 10:22:27 +0800 Subject: [PATCH] server/service: modify the data format returned by interface /log_timeaxis_data;modfiy search template log_timeaxis --- server/global/template/cluster.go | 35 +++++++++++++++------------ server/service/cluster/LogTimeAixs.go | 34 ++++++++++++++------------ 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/server/global/template/cluster.go b/server/global/template/cluster.go index 17ca241..d8b2a69 100644 --- a/server/global/template/cluster.go +++ b/server/global/template/cluster.go @@ -11,24 +11,26 @@ const ( "source": { "aggs": { "1": { - "terms": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "{{fixed_interval}}", + "time_zone": "Asia/Shanghai", + "min_doc_count": 0 + }, + "aggs": { + "1-1": { + "terms": { "field": "{{aggs_field}}", "order": { - "_count": "desc" - } - }, - "aggs": { - "1-1": { - "date_histogram": { - "field": "@timestamp", - "fixed_interval": "1s", - "time_zone": "Asia/Shanghai", - "min_doc_count": 0 - } - } + "_count": "desc" + }, + "size": 5, + "min_doc_count": 0 + } } + } } - }, + }, "size": "{{size}}", "script_fields": {}, "stored_fields": [ @@ -71,7 +73,8 @@ const ( "query_range_gte": "2024-06-24T10:55:36.185Z", "query_range_lte": "2024-06-24T11:00:36.185Z", "aggs_field": "host.hostname", - "size": 0 + "size": 0, + "fixed_interval": "10s" } } } @@ -83,4 +86,4 @@ func init() { DSL_template_map = map[string]string{ "log_timeaxis": DSL_log_timeaxis_template, } -} \ No newline at end of file +} diff --git a/server/service/cluster/LogTimeAixs.go b/server/service/cluster/LogTimeAixs.go index 0360bc2..5dbbf1d 100644 --- a/server/service/cluster/LogTimeAixs.go +++ b/server/service/cluster/LogTimeAixs.go @@ -13,22 +13,26 @@ func ProcessLogTimeAixsData(index string, querybody map[string]interface{}) ([]m return nil, err } - log_type_datas := []map[string]interface{}{} - hostname_agg_raw_arr := gjson.GetBytes(search_result_body_bytes, "aggregations.1.buckets").Array() - for _, log_type_data_raw := range hostname_agg_raw_arr { - log_type_data := map[string]interface{}{} - log_timestamp_datas := [][]interface{}{} - - log_type_data["name"] = log_type_data_raw.Get("key").String() - for _, log_timestamp_data_raw := range log_type_data_raw.Get("1-1.buckets").Array() { - log_timestamp_data := []interface{}{} - log_timestamp_data = append(log_timestamp_data, log_timestamp_data_raw.Get("key").Int()/1000) - log_timestamp_data = append(log_timestamp_data, log_timestamp_data_raw.Get("doc_count").Int()) - log_timestamp_datas = append(log_timestamp_datas, log_timestamp_data) + results := []map[string]interface{}{} + log_type_datas_map := map[string][][]int64{} + time_agg_raw_arr := gjson.GetBytes(search_result_body_bytes, "aggregations.1.buckets").Array() + for _, time_agg_data_raw := range time_agg_raw_arr { + timestamp := time_agg_data_raw.Get("key").Int() + for _, host_doc_data_raw := range time_agg_data_raw.Get("1-1.buckets").Array() { + time_doc_arr := []int64{} + time_doc_arr = append(time_doc_arr, timestamp) + time_doc_arr = append(time_doc_arr, host_doc_data_raw.Get("doc_count").Int()) + log_type_datas_map[host_doc_data_raw.Get("key").String()] = append(log_type_datas_map[host_doc_data_raw.Get("key").String()], time_doc_arr) } + } - log_type_data["data"] = log_timestamp_datas - log_type_datas = append(log_type_datas, log_type_data) + for log_type, log_type_data := range log_type_datas_map { + results = append(results, + map[string]interface{}{ + "name": log_type, + "data": log_type_data, + }, + ) } - return log_type_datas, nil + return results, nil } -- Gitee