mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-07-28 06:52:01 +08:00
174 lines
5.0 KiB
Go
174 lines
5.0 KiB
Go
package metrics_explorer
|
|
|
|
import (
|
|
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
|
|
)
|
|
|
|
type SummaryListMetricsRequest struct {
|
|
Offset int `json:"offset"`
|
|
Limit int `json:"limit"`
|
|
OrderBy v3.OrderBy `json:"orderBy"`
|
|
Start int64 `json:"start"`
|
|
End int64 `json:"end"`
|
|
Filters v3.FilterSet `json:"filters"`
|
|
}
|
|
|
|
type TreeMapType string
|
|
|
|
const (
|
|
TimeSeriesTeeMap TreeMapType = "timeseries"
|
|
SamplesTreeMap TreeMapType = "samples"
|
|
)
|
|
|
|
type TreeMapMetricsRequest struct {
|
|
Limit int `json:"limit"`
|
|
Treemap TreeMapType `json:"treemap"`
|
|
Start int64 `json:"start"`
|
|
End int64 `json:"end"`
|
|
Filters v3.FilterSet `json:"filters"`
|
|
}
|
|
|
|
type MetricDetail struct {
|
|
MetricName string `json:"metric_name"`
|
|
Description string `json:"description"`
|
|
MetricType string `json:"type"`
|
|
MetricUnit string `json:"unit"`
|
|
TimeSeries uint64 `json:"timeseries"`
|
|
Samples uint64 `json:"samples"`
|
|
LastReceived int64 `json:"lastReceived"`
|
|
}
|
|
|
|
type TreeMapResponseItem struct {
|
|
Percentage float64 `json:"percentage"`
|
|
TotalValue uint64 `json:"total_value"`
|
|
MetricName string `json:"metric_name"`
|
|
}
|
|
|
|
type TreeMap struct {
|
|
TimeSeries []TreeMapResponseItem `json:"timeseries"`
|
|
Samples []TreeMapResponseItem `json:"samples"`
|
|
}
|
|
|
|
type SummaryListMetricsResponse struct {
|
|
Metrics []MetricDetail `json:"metrics"`
|
|
Total uint64 `json:"total"`
|
|
}
|
|
|
|
type Attribute struct {
|
|
Key string `json:"key" db:"key"`
|
|
Value []string `json:"value" db:"value"`
|
|
ValueCount uint64 `json:"valueCount" db:"valueCount"`
|
|
}
|
|
|
|
// Metadata holds additional information about the metric.
|
|
type Metadata struct {
|
|
MetricType string `json:"metric_type"`
|
|
Description string `json:"description"`
|
|
Unit string `json:"unit"`
|
|
Temporality string `json:"temporality"`
|
|
Monotonic bool `json:"monotonic"`
|
|
}
|
|
|
|
// Alert represents individual alerts associated with the metric.
|
|
type Alert struct {
|
|
AlertName string `json:"alert_name"`
|
|
AlertID string `json:"alert_id"`
|
|
}
|
|
|
|
// Dashboard represents individual dashboards associated with the metric.
|
|
type Dashboard struct {
|
|
DashboardName string `json:"dashboard_name"`
|
|
DashboardID string `json:"dashboard_id"`
|
|
WidgetID string `json:"widget_id"`
|
|
WidgetName string `json:"widget_name"`
|
|
}
|
|
|
|
type MetricDetailsDTO struct {
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
Type string `json:"type"`
|
|
Unit string `json:"unit"`
|
|
Samples uint64 `json:"samples"`
|
|
TimeSeriesTotal uint64 `json:"timeSeriesTotal"`
|
|
TimeSeriesActive uint64 `json:"timeSeriesActive"`
|
|
LastReceived int64 `json:"lastReceived"`
|
|
Attributes []Attribute `json:"attributes"`
|
|
Metadata Metadata `json:"metadata"`
|
|
Alerts []Alert `json:"alerts"`
|
|
Dashboards []Dashboard `json:"dashboards"`
|
|
}
|
|
|
|
type FilterKeyRequest struct {
|
|
SearchText string `json:"searchText"`
|
|
Limit int `json:"limit"`
|
|
}
|
|
|
|
type FilterValueRequest struct {
|
|
FilterKey string `json:"filterKey"`
|
|
FilterAttributeKeyDataType v3.AttributeKeyDataType `json:"filterAttributeKeyDataType"`
|
|
SearchText string `json:"searchText"`
|
|
Limit int `json:"limit"`
|
|
}
|
|
|
|
type FilterValueResponse struct {
|
|
FilterValues []string `json:"filterValues"`
|
|
}
|
|
|
|
type FilterKeyResponse struct {
|
|
MetricColumns []string `json:"metricColumns"`
|
|
AttributeKeys []v3.AttributeKey `json:"attributeKeys"`
|
|
}
|
|
|
|
var AvailableColumnFilterMap = map[string]bool{
|
|
"metric_name": true,
|
|
"metric_unit": true,
|
|
"metric_type": true,
|
|
}
|
|
|
|
type RelatedMetricsScore struct {
|
|
AttributeSimilarity float64
|
|
NameSimilarity float64
|
|
Filters [][]string
|
|
MetricType v3.MetricType
|
|
Temporality v3.Temporality
|
|
IsMonotonic bool
|
|
}
|
|
|
|
type RelatedMetricsRequest struct {
|
|
CurrentMetricName string `json:"currentMetricName"`
|
|
Start int64 `json:"start"`
|
|
End int64 `json:"end"`
|
|
Filters v3.FilterSet `json:"filters"`
|
|
}
|
|
|
|
type RelatedMetricsResponse struct {
|
|
RelatedMetrics []RelatedMetrics `json:"related_metrics"`
|
|
}
|
|
|
|
type RelatedMetrics struct {
|
|
Name string `json:"name"`
|
|
Query *v3.BuilderQuery `json:"query"`
|
|
Dashboards []Dashboard `json:"dashboards"`
|
|
Alerts []Alert `json:"alerts"`
|
|
}
|
|
|
|
type InspectMetricsRequest struct {
|
|
MetricName string `json:"metricName"`
|
|
Filters v3.FilterSet `json:"filters"`
|
|
Start int64 `json:"start"`
|
|
End int64 `json:"end"`
|
|
}
|
|
|
|
type InspectMetricsResponse struct {
|
|
Series *[]v3.Series `json:"series,omitempty"`
|
|
}
|
|
|
|
type UpdateMetricsMetadataRequest struct {
|
|
MetricName string `json:"metricName"`
|
|
MetricType v3.MetricType `json:"metricType"`
|
|
Description string `json:"description"`
|
|
Unit string `json:"unit"`
|
|
Temporality v3.Temporality `json:"temporality"`
|
|
IsMonotonic bool `json:"isMonotonic"`
|
|
}
|