mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 06:58:58 +08:00
added interface for spanAggregates API
This commit is contained in:
parent
3d152e23cd
commit
1e7b68203f
@ -609,3 +609,11 @@ func (r *ClickHouseReader) GetServiceMapDependencies(ctx context.Context, queryP
|
||||
|
||||
return &retMe, nil
|
||||
}
|
||||
|
||||
func (r *ClickHouseReader) SearchSpansAggregate(ctx context.Context, queryParams *model.SpanSearchAggregatesParams) ([]model.SpanSearchAggregatesResponseItem, error) {
|
||||
|
||||
spanSearchAggregatesResponseItems := []model.SpanSearchAggregatesResponseItem{}
|
||||
|
||||
return spanSearchAggregatesResponseItems, nil
|
||||
|
||||
}
|
||||
|
@ -94,3 +94,6 @@ func (druid *DruidReader) SearchTraces(ctx context.Context, traceId string) (*[]
|
||||
func (druid *DruidReader) GetServiceMapDependencies(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) {
|
||||
return druidQuery.GetServiceMapDependencies(druid.SqlClient, query)
|
||||
}
|
||||
func (druid *DruidReader) SearchSpansAggregate(ctx context.Context, queryParams *model.SpanSearchAggregatesParams) ([]model.SpanSearchAggregatesResponseItem, error) {
|
||||
return druidQuery.SearchSpansAggregate(druid.Client, queryParams)
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ func (aH *APIHandler) RegisterRoutes(router *mux.Router) {
|
||||
router.HandleFunc("/api/v1/service/{service}/operations", aH.getOperations).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/service/top_endpoints", aH.getTopEndpoints).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/spans", aH.searchSpans).Methods(http.MethodGet)
|
||||
// router.HandleFunc("/api/v1/spans/aggregates", aH.searchSpansAggregates).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/spans/aggregates", aH.searchSpansAggregates).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/tags", aH.searchTags).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/traces/{traceId}", aH.searchTraces).Methods(http.MethodGet)
|
||||
router.HandleFunc("/api/v1/usage", aH.getUsage).Methods(http.MethodGet)
|
||||
@ -310,20 +310,20 @@ func (aH *APIHandler) searchTraces(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
}
|
||||
|
||||
// func (aH *APIHandler) searchSpansAggregates(w http.ResponseWriter, r *http.Request) {
|
||||
func (aH *APIHandler) searchSpansAggregates(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// query, err := parseSearchSpanAggregatesRequest(r)
|
||||
// if aH.handleError(w, err, http.StatusBadRequest) {
|
||||
// return
|
||||
// }
|
||||
query, err := parseSearchSpanAggregatesRequest(r)
|
||||
if aH.handleError(w, err, http.StatusBadRequest) {
|
||||
return
|
||||
}
|
||||
|
||||
// result, err := druidQuery.SearchSpansAggregate(aH.client, query)
|
||||
// if aH.handleError(w, err, http.StatusBadRequest) {
|
||||
// return
|
||||
// }
|
||||
result, err := (*aH.reader).SearchSpansAggregate(context.Background(), query)
|
||||
if aH.handleError(w, err, http.StatusBadRequest) {
|
||||
return
|
||||
}
|
||||
|
||||
// aH.writeJSON(w, r, result)
|
||||
// }
|
||||
aH.writeJSON(w, r, result)
|
||||
}
|
||||
|
||||
func (aH *APIHandler) searchSpans(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
|
@ -22,4 +22,5 @@ type Reader interface {
|
||||
GetServicesList(ctx context.Context) (*[]string, error)
|
||||
SearchTraces(ctx context.Context, traceID string) (*[]model.SearchSpansResult, error)
|
||||
GetServiceMapDependencies(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error)
|
||||
SearchSpansAggregate(ctx context.Context, queryParams *model.SpanSearchAggregatesParams) ([]model.SpanSearchAggregatesResponseItem, error)
|
||||
}
|
||||
|
@ -27,11 +27,6 @@ type SpanSearchAggregatesDuratonReceivedItem struct {
|
||||
Result DurationItem `json:"result"`
|
||||
}
|
||||
|
||||
type SpanSearchAggregatesResponseItem struct {
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
Value float32 `json:"value"`
|
||||
}
|
||||
|
||||
func buildFilters(queryParams *model.SpanSearchParams) (*godruid.Filter, error) {
|
||||
|
||||
var filter *godruid.Filter
|
||||
@ -219,7 +214,7 @@ func SearchTraces(client *godruid.Client, traceId string) (*[]model.SearchSpansR
|
||||
|
||||
}
|
||||
|
||||
func SearchSpansAggregate(client *godruid.Client, queryParams *model.SpanSearchAggregatesParams) ([]SpanSearchAggregatesResponseItem, error) {
|
||||
func SearchSpansAggregate(client *godruid.Client, queryParams *model.SpanSearchAggregatesParams) ([]model.SpanSearchAggregatesResponseItem, error) {
|
||||
|
||||
filter, err := buildFiltersForSpansAggregates(queryParams)
|
||||
var needsPostAggregation bool = true
|
||||
@ -303,7 +298,7 @@ func SearchSpansAggregate(client *godruid.Client, queryParams *model.SpanSearchA
|
||||
return nil, fmt.Errorf("Error in unmarshalling response from druid")
|
||||
}
|
||||
|
||||
var response []SpanSearchAggregatesResponseItem
|
||||
var response []model.SpanSearchAggregatesResponseItem
|
||||
|
||||
for _, elem := range *receivedResponse {
|
||||
|
||||
@ -314,7 +309,7 @@ func SearchSpansAggregate(client *godruid.Client, queryParams *model.SpanSearchA
|
||||
if queryParams.AggregationOption == "rate_per_sec" {
|
||||
value = elem.Result.Value * 1.0 / float32(queryParams.StepSeconds)
|
||||
}
|
||||
response = append(response, SpanSearchAggregatesResponseItem{
|
||||
response = append(response, model.SpanSearchAggregatesResponseItem{
|
||||
Timestamp: timestamp,
|
||||
Value: value,
|
||||
})
|
||||
|
@ -162,3 +162,8 @@ type ServiceMapDependencyResponseItem struct {
|
||||
Child string `json:"child,omitempty" db:"child,omitempty"`
|
||||
CallCount int `json:"callCount,omitempty" db:"callCount,omitempty"`
|
||||
}
|
||||
|
||||
type SpanSearchAggregatesResponseItem struct {
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
Value float32 `json:"value"`
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user