mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 04:49:01 +08:00
chore: add payload types for autocomplete requests (#2244)
This commit is contained in:
parent
995e45713c
commit
5e5e81d81d
240
pkg/query-service/model/v3/v3.go
Normal file
240
pkg/query-service/model/v3/v3.go
Normal file
@ -0,0 +1,240 @@
|
||||
package v3
|
||||
|
||||
import "time"
|
||||
|
||||
type DataSource string
|
||||
|
||||
const (
|
||||
DataSourceTraces DataSource = "traces"
|
||||
DataSourceLogs DataSource = "logs"
|
||||
DataSourceMetrics DataSource = "metrics"
|
||||
)
|
||||
|
||||
type AggregateOperator string
|
||||
|
||||
const (
|
||||
AggregateOperatorNoOp AggregateOperator = "noop"
|
||||
AggregateOpeatorCount AggregateOperator = "count"
|
||||
AggregateOperatorCountDistinct AggregateOperator = "count_distinct"
|
||||
AggregateOperatorSum AggregateOperator = "sum"
|
||||
AggregateOperatorAvg AggregateOperator = "avg"
|
||||
AggregateOperatorMin AggregateOperator = "min"
|
||||
AggregateOperatorMax AggregateOperator = "max"
|
||||
AggregateOperatorP05 AggregateOperator = "p05"
|
||||
AggregateOperatorP10 AggregateOperator = "p10"
|
||||
AggregateOperatorP20 AggregateOperator = "p20"
|
||||
AggregateOperatorP25 AggregateOperator = "p25"
|
||||
AggregateOperatorP50 AggregateOperator = "p50"
|
||||
AggregateOperatorP75 AggregateOperator = "p75"
|
||||
AggregateOperatorP90 AggregateOperator = "p90"
|
||||
AggregateOperatorP95 AggregateOperator = "p95"
|
||||
AggregateOperatorP99 AggregateOperator = "p99"
|
||||
AggregateOperatorRate AggregateOperator = "rate"
|
||||
AggregateOperatorSumRate AggregateOperator = "sum_rate"
|
||||
AggregateOperatorAvgRate AggregateOperator = "avg_rate"
|
||||
AggregateOperatorMinRate AggregateOperator = "min_rate"
|
||||
AggregateOperatorMaxRate AggregateOperator = "max_rate"
|
||||
AggregateOperatorRateSum AggregateOperator = "rate_sum"
|
||||
AggregateOperatorRateAvg AggregateOperator = "rate_avg"
|
||||
AggregateOperatorRateMin AggregateOperator = "rate_min"
|
||||
AggregateOperatorRateMax AggregateOperator = "rate_max"
|
||||
AggregateOperatorHistQuant50 AggregateOperator = "hist_quantile_50"
|
||||
AggregateOperatorHistQuant75 AggregateOperator = "hist_quantile_75"
|
||||
AggregateOperatorHistQuant90 AggregateOperator = "hist_quantile_90"
|
||||
AggregateOperatorHistQuant95 AggregateOperator = "hist_quantile_95"
|
||||
AggregateOperatorHistQuant99 AggregateOperator = "hist_quantile_99"
|
||||
)
|
||||
|
||||
type ReduceToOperator string
|
||||
|
||||
const (
|
||||
ReduceToOperatorLast ReduceToOperator = "last"
|
||||
ReduceToOperatorSum ReduceToOperator = "sum"
|
||||
ReduceToOperatorAvg ReduceToOperator = "avg"
|
||||
ReduceToOperatorMin ReduceToOperator = "min"
|
||||
ReduceToOperatorMax ReduceToOperator = "max"
|
||||
)
|
||||
|
||||
type QueryType string
|
||||
|
||||
const (
|
||||
QueryTypeBuilder QueryType = "builder"
|
||||
QueryTypeClickHouseSQL QueryType = "clickhouse_sql"
|
||||
QueryTypePromQL QueryType = "promql"
|
||||
)
|
||||
|
||||
type PanelType string
|
||||
|
||||
const (
|
||||
PanelTypeValue PanelType = "value"
|
||||
PanelTypeGraph PanelType = "graph"
|
||||
PanelTypeTable PanelType = "table"
|
||||
PanelTypeList PanelType = "list"
|
||||
)
|
||||
|
||||
// AggregateAttributeRequest is a request to fetch possible attribute keys
|
||||
// for a selected aggregate operator and search text.
|
||||
// The context of the selected aggregate operator is used as the
|
||||
// type of the attribute key is different for different aggregate operators.
|
||||
// For example, for the aggregate operator "avg" the attribute value type must be
|
||||
// a number
|
||||
type AggregateAttributeRequest struct {
|
||||
DataSource DataSource `json:"dataSource"`
|
||||
Operator AggregateOperator `json:"aggregateOperator"`
|
||||
SearchText string `json:"searchText"`
|
||||
Limit int `json:"limit"`
|
||||
}
|
||||
|
||||
type TagType string
|
||||
|
||||
const (
|
||||
TagTypeColumn TagType = "column"
|
||||
TagTypeTag TagType = "tag"
|
||||
TagTypeResource TagType = "resource"
|
||||
)
|
||||
|
||||
// FilterAttributeKeyRequest is a request to fetch possible attribute keys
|
||||
// for a selected aggregate operator and aggregate attribute and search text.
|
||||
type FilterAttributeKeyRequest struct {
|
||||
DataSource DataSource `json:"dataSource"`
|
||||
AggregateOperator AggregateOperator `json:"aggregateOperator"`
|
||||
AggregateAttribute string `json:"aggregateAttribute"`
|
||||
TagType TagType `json:"tagType"`
|
||||
SearchText string `json:"searchText"`
|
||||
Limit int `json:"limit"`
|
||||
}
|
||||
|
||||
type FilterAttributeKeyDataType string
|
||||
|
||||
const (
|
||||
FilterAttributeKeyDataTypeString FilterAttributeKeyDataType = "string"
|
||||
FilterAttributeKeyDataTypeNumber FilterAttributeKeyDataType = "number"
|
||||
FilterAttributeKeyDataTypeBool FilterAttributeKeyDataType = "bool"
|
||||
)
|
||||
|
||||
// FilterAttributeValueRequest is a request to fetch possible attribute values
|
||||
// for a selected aggregate operator, aggregate attribute, filter attribute key
|
||||
// and search text.
|
||||
type FilterAttributeValueRequest struct {
|
||||
DataSource DataSource `json:"dataSource"`
|
||||
AggregateOperator AggregateOperator `json:"aggregateOperator"`
|
||||
AggregateAttribute string `json:"aggregateAttribute"`
|
||||
FilterAttributeKey string `json:"filterAttributeKey"`
|
||||
FilterAttributeKeyDataType FilterAttributeKeyDataType `json:"filterAttributeKeyDataType"`
|
||||
TagType TagType `json:"tagType"`
|
||||
SearchText string `json:"searchText"`
|
||||
Limit int `json:"limit"`
|
||||
}
|
||||
|
||||
type AggregateAttributeResponse struct {
|
||||
AttributeKeys []AttributeKey `json:"attributeKeys"`
|
||||
}
|
||||
|
||||
type FilterAttributeKeyResponse struct {
|
||||
AttributeKeys []AttributeKey `json:"attributeKeys"`
|
||||
}
|
||||
|
||||
type AttributeKey struct {
|
||||
Key string `json:"key"`
|
||||
DataType string `json:"dataType"`
|
||||
Type string `json:"type"` // "column" or "tag"/"attr"/"attribute" or "resource"?
|
||||
}
|
||||
|
||||
type FilterAttributeValueResponse struct {
|
||||
StringAttributeValues []string `json:"stringAttributeValues"`
|
||||
NumberAttributeValues []interface{} `json:"numberAttributeValues"`
|
||||
BoolAttributeValues []bool `json:"boolAttributeValues"`
|
||||
}
|
||||
|
||||
type QueryRangeParamsV3 struct {
|
||||
Start int64 `json:"start"`
|
||||
End int64 `json:"end"`
|
||||
Step int64 `json:"step"`
|
||||
CompositeQuery *CompositeQuery `json:"compositeQuery"`
|
||||
Variables map[string]interface{} `json:"variables,omitempty"`
|
||||
}
|
||||
|
||||
type PromQuery struct {
|
||||
Query string `json:"query"`
|
||||
Stats string `json:"stats,omitempty"`
|
||||
Disabled bool `json:"disabled"`
|
||||
}
|
||||
|
||||
type ClickHouseQuery struct {
|
||||
Query string `json:"query"`
|
||||
Disabled bool `json:"disabled"`
|
||||
}
|
||||
|
||||
type CompositeQuery struct {
|
||||
BuilderQueries map[string]*BuilderQuery `json:"builderQueries,omitempty"`
|
||||
ClickHouseQueries map[string]*ClickHouseQuery `json:"chQueries,omitempty"`
|
||||
PromQueries map[string]*PromQuery `json:"promQueries,omitempty"`
|
||||
PanelType PanelType `json:"panelType"`
|
||||
QueryType QueryType `json:"queryType"`
|
||||
}
|
||||
|
||||
type BuilderQuery struct {
|
||||
QueryName string `json:"queryName"`
|
||||
DataSource DataSource `json:"dataSource"`
|
||||
AggregateOperator AggregateOperator `json:"aggregateOperator"`
|
||||
AggregateAttribute string `json:"aggregateAttribute,omitempty"`
|
||||
Filters *FilterSet `json:"filters,omitempty"`
|
||||
GroupBy []string `json:"groupBy,omitempty"`
|
||||
Expression string `json:"expression"`
|
||||
Disabled bool `json:"disabled"`
|
||||
Having []Having `json:"having,omitempty"`
|
||||
Limit uint64 `json:"limit"`
|
||||
Offset uint64 `json:"offset"`
|
||||
PageSize uint64 `json:"pageSize"`
|
||||
OrderBy []OrderBy `json:"orderBy,omitempty"`
|
||||
ReduceTo ReduceToOperator `json:"reduceTo,omitempty"`
|
||||
SelectColumns []string `json:"selectColumns,omitempty"`
|
||||
}
|
||||
|
||||
type FilterSet struct {
|
||||
Operator string `json:"op,omitempty"`
|
||||
Items []FilterItem `json:"items"`
|
||||
}
|
||||
|
||||
type FilterItem struct {
|
||||
Key string `json:"key"`
|
||||
Value interface{} `json:"value"`
|
||||
Operator string `json:"op"`
|
||||
}
|
||||
|
||||
type OrderBy struct {
|
||||
ColumnName string `json:"columnName"`
|
||||
Order string `json:"order"`
|
||||
}
|
||||
|
||||
type Having struct {
|
||||
ColumnName string `json:"columnName"`
|
||||
Operator string `json:"operator"`
|
||||
Value interface{} `json:"value"`
|
||||
}
|
||||
|
||||
type QueryRangeResponse struct {
|
||||
ResultType string `json:"resultType"`
|
||||
Result []*Result `json:"result"`
|
||||
}
|
||||
|
||||
type Result struct {
|
||||
QueryName string `json:"queryName"`
|
||||
Series *Series `json:"series"`
|
||||
List []*Row `json:"list"`
|
||||
}
|
||||
|
||||
type Series struct {
|
||||
Labels map[string]string `json:"labels"`
|
||||
Points []Point `json:"values"`
|
||||
}
|
||||
|
||||
type Row struct {
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Data map[string]string `json:"data"`
|
||||
}
|
||||
|
||||
type Point struct {
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
Value float64 `json:"value"`
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user