agent

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 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 Category

type Category int32

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

const (
	// Prometheus Prometheus数据源类型,默认为该类型
	Prometheus Category = iota
	// VictoriaMetrics VictoriaMetrics数据源类型
	VictoriaMetrics
	// Elasticsearch Elasticsearch数据源类型
	Elasticsearch
	// Influxdb Influxdb数据源类型
	Influxdb
	// Clickhouse Clickhouse数据源类型
	Clickhouse
	// Loki Loki数据源类型
	Loki
)

func (Category) String

func (c Category) String() string

String implements Stringer

func (Category) Value

func (c Category) Value() int32

Value return int32 value

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() Category
	// GetEndpoint 获取数据源http地址
	GetEndpoint() string
	// GetBasicAuth 获取数据源http认证信息, 可选
	GetBasicAuth() *BasicAuth
	// WithBasicAuth 设置数据源http认证信息, 可选
	WithBasicAuth(basicAuth *BasicAuth) Datasource
}

Datasource 数据源完整接口定义

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