agent

package
v0.0.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NoCache = errors.New("no cache")

Functions

func Formatter

func Formatter(format string, data any) (s string)

Formatter 格式化告警文案

func SetGlobalCache

func SetGlobalCache(cache Cache)

SetGlobalCache 设置全局缓存

Types

type Alarm

type Alarm struct {
	// 接收者
	Receiver string `json:"receiver"`
	// 报警状态
	Status Status `json:"status"`
	// 告警列表
	Alerts []*Alert `json:"alerts"`
	// 告警组标签
	GroupLabels Labels `json:"groupLabels"`
	// 公共标签
	CommonLabels map[string]string `json:"commonLabels"`
	// 公共注解
	CommonAnnotations map[string]string `json:"commonAnnotations"`
	// 外部链接
	ExternalURL string `json:"externalURL"`
	// 版本
	Version string `json:"version"`
	// 告警组key
	GroupKey string `json:"groupKey"`
	// 截断告警数
	TruncatedAlerts int32 `json:"truncate"`
}

func (*Alarm) GetAlerts

func (a *Alarm) GetAlerts() []*Alert

GetAlerts 获取告警

func (*Alarm) String

func (a *Alarm) String() string

String Alarm 转换为json字符串

func (*Alarm) UnmarshalBinary

func (a *Alarm) UnmarshalBinary(data []byte) error

type Alert

type Alert struct {
	// 告警状态
	Status Status `json:"status"`
	// 标签
	Labels Labels `json:"labels"`
	// 注解
	Annotations Annotations `json:"annotations"`
	// 开始时间
	StartsAt string `json:"startsAt"`
	// 结束时间, 如果为空, 则表示未结束
	EndsAt string `json:"endsAt"`
	// 告警生成链接
	GeneratorURL string `json:"generatorURL"`
	// 指纹
	Fingerprint string `json:"fingerprint"`
}

func (*Alert) GetFingerprint

func (a *Alert) GetFingerprint() string

GetFingerprint 获取指纹

func (*Alert) GetMd5Fingerprint

func (a *Alert) GetMd5Fingerprint() string

GetMd5Fingerprint 获取md5指纹

func (*Alert) String

func (a *Alert) String() string

String Alert 转换为json字符串

type Annotations

type Annotations map[string]string

type BasicAuth

type BasicAuth struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

func NewBasicAuth

func NewBasicAuth(username, password string) *BasicAuth

func NewBasicAuthWithString

func NewBasicAuthWithString(str string) *BasicAuth

func (*BasicAuth) Bytes

func (b *BasicAuth) Bytes() []byte

func (*BasicAuth) Scan

func (b *BasicAuth) Scan(value interface{}) error

func (*BasicAuth) String

func (b *BasicAuth) String() string

func (*BasicAuth) Value

func (b *BasicAuth) Value() (driver.Value, error)

type Cache

type Cache interface {
	// Get 获取缓存, 对象类型, 不支持基础类型
	Get(key string, value any) error
	// Set 设置缓存, value为对象类型
	Set(key string, value any, expiration time.Duration) error
	// Delete 删除缓存
	Delete(key string) error
	// SetNX 设置缓存,如果key存在,则不设置
	SetNX(key string, value any, expiration time.Duration) bool
	// Exists 判断缓存是否存在
	Exists(key string) bool
	// Close 关闭缓存
	Close() error
}

func GetGlobalCache

func GetGlobalCache() Cache

GetGlobalCache 获取全局缓存

type Data

type Data struct {
	// ResultType 查询到的数据类型
	ResultType string `json:"resultType"`
	// Result 查询到的数据集合
	Result []*Result `json:"result"`
}

Data 查询到的数据

func (*Data) GetResult

func (d *Data) GetResult() []*Result

GetResult get result

func (*Data) GetResultType

func (d *Data) GetResultType() string

GetResultType get result type

type Datasource

type Datasource interface {
	// Query 查询数据
	Query(ctx context.Context, expr string, duration int64) (*QueryResponse, error)
	// Metadata 查询元数据
	Metadata(ctx context.Context) (*Metadata, error)
	// GetCategory 获取数据源类型
	GetCategory() DatasourceCategory
	// GetEndpoint 获取数据源http地址
	GetEndpoint() string
	// GetBasicAuth 获取数据源http认证信息, 可选
	GetBasicAuth() *BasicAuth
	// WithBasicAuth 设置数据源http认证信息, 可选
	WithBasicAuth(basicAuth *BasicAuth) Datasource
}

Datasource 数据源完整接口定义

type DatasourceCategory added in v0.0.18

type DatasourceCategory int32

DatasourceCategory 数据源类型, 定义类型如下

const (
	// DatasourceCategoryPrometheus Prometheus数据源类型,默认为该类型
	DatasourceCategoryPrometheus DatasourceCategory = iota + 1
	// DatasourceCategoryVictoriaMetrics VictoriaMetrics数据源类型
	DatasourceCategoryVictoriaMetrics
	// DatasourceCategoryElasticsearch Elasticsearch数据源类型
	DatasourceCategoryElasticsearch
	// DatasourceCategoryInfluxdb Influxdb数据源类型
	DatasourceCategoryInfluxdb
	// DatasourceCategoryClickhouse Clickhouse数据源类型
	DatasourceCategoryClickhouse
	// DatasourceCategoryLoki Loki数据源类型
	DatasourceCategoryLoki
)

func (DatasourceCategory) String added in v0.0.18

func (c DatasourceCategory) String() string

String implements Stringer

func (DatasourceCategory) Value added in v0.0.18

func (c DatasourceCategory) Value() int32

Value return int32 value

type Eval

type Eval interface {
	Eval(ctx context.Context) ([]*Alarm, error)
}

type Labels

type Labels map[string]string

func (Labels) Append

func (l Labels) Append(labels ...map[string]string) Labels

Append 追加label

func (Labels) String

func (l Labels) String() string

String 转换为字符串

type Metadata

type Metadata struct {
	// Metric 元数据列表
	Metric []*MetricDetail `json:"metric"`
	// Unix 查询时间戳
	Unix int64 `json:"unix"`
}

Metadata 查询到的元数据详情

type Metric

type Metric map[string]string

Metric 查询到的数据labels

func (Metric) String

func (m Metric) String() string

String Metric to string

type MetricDetail

type MetricDetail struct {
	// Name 指标名称
	Name string `json:"name"`
	// Help 帮助信息
	Help string `json:"help"`
	// Type 类型
	Type string `json:"type"`
	// Labels 标签集合
	Labels Labels `json:"labels"`
	// Unit 指标单位
	Unit string `json:"unit"`
}

MetricDetail 查询到的数据详情, 用与元数据构建

type QueryResponse

type QueryResponse struct {
	// Status 状态
	Status string `json:"status"`
	// Data 数据
	Data *Data `json:"data"`
	// ErrorType 错误类型
	ErrorType string `json:"errorType"`
	// Error 错误信息
	Error string `json:"error"`
}

QueryResponse 查询结果

func (*QueryResponse) GetData

func (r *QueryResponse) GetData() *Data

GetData get data

func (*QueryResponse) GetError

func (r *QueryResponse) GetError() string

GetError get error

func (*QueryResponse) GetErrorType

func (r *QueryResponse) GetErrorType() string

GetErrorType get error type

func (*QueryResponse) GetStatus

func (r *QueryResponse) GetStatus() string

GetStatus get status

type Result

type Result struct {
	// Metric 查询到的数据labels
	Metric Metric `json:"metric"`
	// Ts 时间戳
	Ts float64 `json:"ts"`
	// Value 值
	Value float64 `json:"value"`
}

Result 查询到的数据

func (*Result) GetMetric

func (r *Result) GetMetric() Metric

GetMetric get metric

func (*Result) GetTs

func (r *Result) GetTs() float64

GetTs get ts

func (*Result) GetValue

func (r *Result) GetValue() float64

GetValue get value

type Status

type Status string
const (
	AlarmStatusFiring   Status = "firing"
	AlarmStatusResolved Status = "resolved"
)

Directories

Path Synopsis
p8s

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL