Documentation ¶
Index ¶
- Constants
- type AlarmMetric
- type AlarmPolicies
- type AlarmPolicy
- type AlarmPolicyPagination
- type AlarmPolicySettings
- type Evaluator
- type Label
- type MergedResponse
- type MergedResult
- type MeshRequest
- type MetricFilter
- type MetricResult
- type MetricsRequest
- type MetricsResponse
- type NotifySettings
- type NotifyWay
- type Request
- type Response
- type ResponseForTest
- type Sample
- type TimeSeries
- type WriteRequest
Constants ¶
const (
// VersionKey is a key of version
VersionKey = "version"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AlarmMetric ¶
type AlarmMetric struct { Measurement string `json:"Measurement"` MetricName string `json:"MetricName"` MetricDisplayName string `json:"MetricDisplayName"` ContinuePeriod int64 `json:"ContinuePeriod"` Evaluator *Evaluator `json:"Evaluator"` Unit string `json:"Unit"` }
AlarmMetric defines alarm metric info
func NewAlarmMetricFromRule ¶
func NewAlarmMetricFromRule(ruleGroup *v1.RuleGroup, rule v1.Rule) *AlarmMetric
NewAlarmMetricFromRule creates AlarmMetric from rule and ruleGroup
func (*AlarmMetric) GetAnnotations ¶
func (r *AlarmMetric) GetAnnotations(alarmPolicy *AlarmPolicy) map[string]string
GetAnnotations builds annotations of prometheus rule from AlarmMetric and AlarmPolicy
func (*AlarmMetric) GetExpr ¶
func (r *AlarmMetric) GetExpr(alarmPolicy *AlarmPolicy) string
GetExpr builds expr of prometheus rule from AlarmMetric and AlarmPolicy
func (*AlarmMetric) GetFor ¶
func (r *AlarmMetric) GetFor(statisticsPeriod int64) string
GetFor computes For of prometheus rule from statisticsPeriod and ContinuePeriod
type AlarmPolicies ¶
type AlarmPolicies []*AlarmPolicy
AlarmPolicies defines slice of AlarmPolicy
func (AlarmPolicies) Len ¶
func (a AlarmPolicies) Len() int
Len implements sort interface for AlarmPolicies
func (AlarmPolicies) Less ¶
func (a AlarmPolicies) Less(i, j int) bool
Less implements sort interface for AlarmPolicies
func (AlarmPolicies) Swap ¶
func (a AlarmPolicies) Swap(i, j int)
Swap implements sort interface for AlarmPolicies
type AlarmPolicy ¶
type AlarmPolicy struct { AlarmPolicySettings *AlarmPolicySettings `json:"AlarmPolicySettings"` NotifySettings *NotifySettings `json:"NotifySettings"` Namespace string `json:"Namespace"` WorkloadType string `json:"WorkloadType"` }
AlarmPolicy defines alarm policy info
func NewAlarmPolicyFromRuleGroup ¶
func NewAlarmPolicyFromRuleGroup(ruleGroup *v1.RuleGroup) *AlarmPolicy
NewAlarmPolicyFromRuleGroup creates AlarmPolicy from ruleGroup
func (*AlarmPolicy) GetInterval ¶
func (p *AlarmPolicy) GetInterval() string
GetInterval computes interval of ruleGroup from AlarmPolicySettings.StatisticsPeriod
func (*AlarmPolicy) Validate ¶
func (p *AlarmPolicy) Validate() error
Validate check if the policy is available
type AlarmPolicyPagination ¶
type AlarmPolicyPagination struct { Page int64 `json:"page"` PageSize int64 `json:"pageSize"` Total int64 `json:"total"` AlarmPolicies AlarmPolicies `json:"alarmPolicies"` }
AlarmPolicyPagination defines alarm policy response with pagination ability
type AlarmPolicySettings ¶
type AlarmPolicySettings struct { AlarmPolicyName string `json:"AlarmPolicyName"` AlarmPolicyType string `json:"AlarmPolicyType"` AlarmMetrics []*AlarmMetric `json:"AlarmMetrics"` AlarmObjects string `json:"AlarmObjects"` AlarmObjectsType string `json:"AlarmObjectsType"` StatisticsPeriod int64 `json:"statisticsPeriod"` }
AlarmPolicySettings defines alarm policy settings
type Evaluator ¶
Evaluator contains type and value to form expr
func NewEvaluatorFromExpr ¶
NewEvaluatorFromExpr creates Evaluator from expr
type Label ¶
type Label struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` }
Label defines label of time series metrics
type MergedResponse ¶
type MergedResponse struct {
Response *MergedResult `json:"response"`
}
MergedResponse defines the merged result
type MergedResult ¶
type MergedResult struct { Columns []string `json:"columns"` Data []interface{} `json:"data"` }
MergedResult defines the result of columns and data
type MeshRequest ¶
type MeshRequest struct { StartTime int64 `json:"startTime"` EndTime int64 `json:"endTime"` MeshID string `json:"meshId"` Namespaces []interface{} `json:"namespaces"` TopoType string `json:"topoType"` AppID int `json:"AppId"` }
MeshRequest defines request for mesh serviceCallRelation
type MetricFilter ¶
type MetricFilter struct { Namespace string `json:"namespace"` WorkloadKind string `json:"workload_kind"` WorkloadName string `json:"workload_name"` }
MetricFilter contains metric filter of expr
func NewMetricFilterFromExpr ¶
func NewMetricFilterFromExpr(expr string) *MetricFilter
NewMetricFilterFromExpr creates MetricFilter from expr
func (*MetricFilter) ToStr ¶
func (f *MetricFilter) ToStr() string
ToStr converts MetricFilter to string, which is used in expr
type MetricResult ¶
type MetricResult struct { MaxValue *float64 `json:"maxValue,omitempty"` AvgValue *float64 `json:"avgValue,omitempty"` Series []models.Row `json:"series"` }
MetricResult defines the single metric result
type MetricsRequest ¶
type MetricsRequest struct { Table string `json:"table"` StartTime *int64 `json:"startTime"` EndTime *int64 `json:"endTime"` Fields []string `json:"fields"` Conditions [][]interface{} `json:"conditions"` OrderBy string `json:"orderBy,omitempty"` Order string `json:"order,omitempty"` GroupBy []string `json:"groupBy"` Limit int `json:"limit,omitempty"` Offset int `json:"offset,omitempty"` }
MetricsRequest defines the metrics request format, setting default request value
type MetricsResponse ¶
type MetricsResponse struct {
Results []*MetricResult `json:"results"`
}
MetricsResponse defines the metrics result
type NotifySettings ¶
type NotifySettings struct { ReceiverGroups []string `json:"ReceiverGroups"` Receivers []string `json:"Receivers"` NotifyWay []NotifyWay `json:"NotifyWay"` }
NotifySettings contains notification info of alarm policy
func NewNotifySettingsFromRuleAnnotations ¶
func NewNotifySettingsFromRuleAnnotations(annotation map[string]string) *NotifySettings
NewNotifySettingsFromRuleAnnotations creates NotifySettings from rule annotation
type NotifyWay ¶
type NotifyWay struct { ChannelName string `json:"ChannelName"` TemplateName string `json:"TemplateName"` }
NotifyWay contains notification channels and templates
type Request ¶
type Request struct {
Data string `json:"data,omitempty"`
}
Request defines the structure of http request of prometheus and alertmanager
type Response ¶
type Response struct { Result bool `json:"result"` Err string `json:"err,omitempty"` Rev int `json:"rev,omitempty"` Data interface{} `json:"data,omitempty"` }
Response defines the structure of http response of prometheus and alertmanager
type ResponseForTest ¶
type ResponseForTest struct { Result bool `json:"result"` Err string `json:"err,omitempty"` Rev int `json:"rev,omitempty"` Data json.RawMessage `json:"data,omitempty"` }
ResponseForTest leaves data as json.RawMessage to unmarshal to struct we want, just for unit test
type Sample ¶
type Sample struct { Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` }
Sample defines one metrics sample
type TimeSeries ¶
type TimeSeries struct { Labels []Label `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels"` Samples []Sample `protobuf:"bytes,2,rep,name=samples,proto3" json:"samples"` }
TimeSeries defines time series metrics that prepared to be send
type WriteRequest ¶
type WriteRequest struct {
Timeseries []TimeSeries `protobuf:"bytes,1,rep,name=timeseries,proto3" json:"timeseries"`
}
WriteRequest defines request for prom-beat
func (*WriteRequest) ProtoMessage ¶
func (*WriteRequest) ProtoMessage()
func (*WriteRequest) Reset ¶
func (m *WriteRequest) Reset()
func (*WriteRequest) String ¶
func (m *WriteRequest) String() string