TP-5555 | last seen support

This commit is contained in:
varnit goyal
2024-11-18 06:58:14 +05:30
parent 72d7ca1d77
commit 5d8d8d2988
2 changed files with 27 additions and 4 deletions

View File

@@ -27,6 +27,7 @@ func (s *SearchService) Search(c *gin.Context) {
func (s *SearchService) GetErrorDetails(c *gin.Context) {
error_hash := c.Query("error_hash")
project_id := c.Query("project_id")
from := c.DefaultQuery("from", "0")
fromInNumber, err := strconv.ParseInt(from, 10, 64)
@@ -37,7 +38,10 @@ func (s *SearchService) GetErrorDetails(c *gin.Context) {
}
term_query := utils.CreateTermSubQuery("error_hash", error_hash)
search_query := utils.CreateSearchQuery(term_query)
project_id_term_query := utils.CreateTermSubQuery("project_id", project_id)
mustQuery := utils.CreateMustQuery(term_query, project_id_term_query)
boolQuery := utils.CreateBoolQuery(mustQuery)
search_query := utils.CreateSearchQuery(boolQuery)
size_query := utils.CreateSizeQuery(1)
sort_query := utils.CreateSortQuery("created_at", "desc", "")
after_query := utils.CreateFromQuery(fromInNumber)
@@ -82,6 +86,7 @@ func (s *SearchService) GetErrorList(c *gin.Context) {
projectId := c.Query("project_id")
size := c.DefaultQuery("size", "10")
afterKey := c.DefaultQuery("after_key", "")
sortKey := c.DefaultQuery("sort_key", "lastSeen")
sizeInNumber, sizeParseError := strconv.Atoi(size)
@@ -94,7 +99,22 @@ func (s *SearchService) GetErrorList(c *gin.Context) {
search_query := utils.CreateSearchQuery(term_query)
size_query := utils.CreateSizeQuery(0)
top_hits_aggs_name_query := utils.BuildAggregationQuery("unique_errors", utils.CreateTopHitsAggsQuery(1, []string{"error", "significant_stack", "created_at", "error_hash"}))
top_hits_aggs_query := utils.CreateAggregationQuery(top_hits_aggs_name_query)
last_seen_aggs_query := utils.BuildAggregationQuery("last_seen", utils.CreateMaxAggregationQuery("created_at"))
first_seen_aggs_query := utils.BuildAggregationQuery("first_seen", utils.CreateMinAggregationQuery("created_at"))
sortQuery := utils.CreateSortQuery("last_seen", "desc", "")
if sortKey == "lastSeen" {
sortQuery = utils.CreateSortQuery("last_seen", "desc", "")
}
if sortKey == "firstSeen" {
sortQuery = utils.CreateSortQuery("first_seen", "desc", "")
}
if sortKey == "count" {
sortQuery = utils.CreateSortQuery("_count", "desc", "")
}
customSortQuery := utils.CreateCustomQueryWithBraces("bucket_sort", sortQuery)
customFinalSortQuery := utils.CreateCustomQueryWithBraces("sorting", customSortQuery)
top_hits_aggs_query := utils.CreateAggregationQuery(top_hits_aggs_name_query, last_seen_aggs_query, first_seen_aggs_query, customFinalSortQuery)
//building composite aggregation
composite_term_query := utils.CreateTermsAggregationQueryWithoutSize("error_hash")
@@ -103,8 +123,6 @@ func (s *SearchService) GetErrorList(c *gin.Context) {
compositeAggsQuery := utils.CreateAggregationQuery(composite_aggs_query)
//final_aggs_query := utils.CreateAggregationQuery(top_hits_value_count, compositeAggsQuery)
final_query := utils.CreateEsQuery(search_query, size_query, compositeAggsQuery)
println("%s", final_query)