metric

package
v0.0.0-...-f62340a Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTcmSeriesId

func GetTcmSeriesId(m *TcmMetric, ql Labels) (string, error)

Types

type Desc

type Desc struct {
	FQName string
	Help   string
}

type Labels

type Labels map[string]string

func (*Labels) Md5

func (l *Labels) Md5() (string, error)

type SeriesCache

type SeriesCache struct {
	Series map[string]*TcmSeries // 包含的多个时间线
	// need cache it, because some cases DescribeBaseMetrics/GetMonitorData dims not match
	LabelNames map[string]struct{}
}

type TcmLabels

type TcmLabels struct {
	Names []string // 所有标签名列表
	// contains filtered or unexported fields
}

代表一个指标的labels

func NewTcmLabels

func NewTcmLabels(qln []string, iln []string, cl Labels) (*TcmLabels, error)

func (*TcmLabels) GetValues

func (l *TcmLabels) GetValues(filters map[string]string, ins instance.TcInstance) map[string]string

根据标签名, 获取所有标签的值

type TcmMeta

type TcmMeta struct {
	Id                string
	Namespace         string
	ProductName       string
	MetricName        string
	SupportDimensions []string
	// contains filtered or unexported fields
}

代表一个云监控指标的元数据

func NewTcmMeta

func NewTcmMeta(m *monitor.MetricSet) (*TcmMeta, error)

func (*TcmMeta) GetPeriod

func (meta *TcmMeta) GetPeriod(confPeriod int64) (int64, error)

func (*TcmMeta) GetStatType

func (meta *TcmMeta) GetStatType(period int64) (string, error)

type TcmMetric

type TcmMetric struct {
	Id           string
	Meta         *TcmMeta   // 指标元数据
	Labels       *TcmLabels // 指标labels
	SeriesCache  *SeriesCache
	StatPromDesc map[string]Desc // 按统计纬度的Desc, max、min、avg、last
	Conf         *TcmMetricConfig
	// contains filtered or unexported fields
}

代表一个指标, 包含多个时间线

func NewTcmMetric

func NewTcmMetric(meta *TcmMeta, conf *TcmMetricConfig) (*TcmMetric, error)

创建TcmMetric

func (*TcmMetric) GetLatestPromMetrics

func (m *TcmMetric) GetLatestPromMetrics(repo TcmMetricRepository) (pms []prometheus.Metric, err error)

func (*TcmMetric) GetSeriesSplitByBatch

func (m *TcmMetric) GetSeriesSplitByBatch(batch int) (steps [][]*TcmSeries)

func (*TcmMetric) LoadSeries

func (m *TcmMetric) LoadSeries(series []*TcmSeries) error

type TcmMetricCache

type TcmMetricCache struct {
	Raw TcmMetricRepository
	// contains filtered or unexported fields
}

腾讯云监控指标缓存, 在TcmMetricRepository封装一层, 指标元数据使用缓存, 转发获取数据点请求

func (*TcmMetricCache) GetMeta

func (c *TcmMetricCache) GetMeta(namespace string, name string) (*TcmMeta, error)

func (*TcmMetricCache) GetSamples

func (c *TcmMetricCache) GetSamples(series *TcmSeries, startTime int64, endTime int64) (samples *TcmSamples, err error)

func (*TcmMetricCache) ListMetaByNamespace

func (c *TcmMetricCache) ListMetaByNamespace(namespace string) ([]*TcmMeta, error)

func (*TcmMetricCache) ListSamples

func (c *TcmMetricCache) ListSamples(metric *TcmMetric, startTime int64, endTime int64) (samplesList []*TcmSamples, err error)

type TcmMetricConfig

type TcmMetricConfig struct {
	CustomNamespacePrefix string
	CustomProductName     string
	CustomMetricName      string
	MetricNameType        int32
	CustomQueryDimensions []map[string]string
	InstanceLabelNames    []string
	ConstLabels           map[string]string
	StatTypes             []string
	StatPeriodSeconds     int64
	StatNumSamples        int64
	StatDelaySeconds      int64
	AllInstances          bool
	InstanceFilters       map[string]string
	OnlyIncludeInstances  []string
	ExcludeInstances      []string
}

func NewTcmMetricConfigWithMetricYaml

func NewTcmMetricConfigWithMetricYaml(c config.TencentMetric, meta *TcmMeta) (*TcmMetricConfig, error)

func NewTcmMetricConfigWithProductYaml

func NewTcmMetricConfigWithProductYaml(c config.TencentProduct, meta *TcmMeta) (*TcmMetricConfig, error)

func (*TcmMetricConfig) IsCustomQueryDimensions

func (c *TcmMetricConfig) IsCustomQueryDimensions() bool

func (*TcmMetricConfig) IsIncludeAllInstance

func (c *TcmMetricConfig) IsIncludeAllInstance() bool

func (*TcmMetricConfig) IsIncludeOnlyInstance

func (c *TcmMetricConfig) IsIncludeOnlyInstance() bool

type TcmMetricRepository

type TcmMetricRepository interface {
	// 获取指标的元数据
	GetMeta(namespace string, name string) (*TcmMeta, error)
	// 根据namespace获取所有的指标元数据
	ListMetaByNamespace(namespace string) ([]*TcmMeta, error)
	// 按时间范围获取单个时间线的数据点
	GetSamples(series *TcmSeries, startTime int64, endTime int64) (samples *TcmSamples, err error)
	// 按时间范围获取单个指标下所有时间线的数据点
	ListSamples(metric *TcmMetric, startTime int64, endTime int64) (samplesList []*TcmSamples, err error)
}

腾讯云监控指标Repository

func NewTcmMetricCache

func NewTcmMetricCache(repo TcmMetricRepository, logger log.Logger) TcmMetricRepository

func NewTcmMetricRepository

func NewTcmMetricRepository(cred common.CredentialIface, conf *config.TencentConfig, logger log.Logger) (repo TcmMetricRepository, err error)

type TcmMetricRepositoryImpl

type TcmMetricRepositoryImpl struct {
	IsInternational bool
	// contains filtered or unexported fields
}

func (*TcmMetricRepositoryImpl) GetMeta

func (repo *TcmMetricRepositoryImpl) GetMeta(namespace string, name string) (meta *TcmMeta, err error)

func (*TcmMetricRepositoryImpl) GetSamples

func (repo *TcmMetricRepositoryImpl) GetSamples(s *TcmSeries, st int64, et int64) (samples *TcmSamples, err error)

func (*TcmMetricRepositoryImpl) ListMetaByNamespace

func (repo *TcmMetricRepositoryImpl) ListMetaByNamespace(namespace string) (metas []*TcmMeta, err error)

func (*TcmMetricRepositoryImpl) ListSamples

func (repo *TcmMetricRepositoryImpl) ListSamples(m *TcmMetric, st int64, et int64) ([]*TcmSamples, error)

type TcmQuery

type TcmQuery struct {
	Metric            *TcmMetric
	LatestQueryStatus int
	// contains filtered or unexported fields
}

负责一个指标的查询管理

func NewTcmQuery

func NewTcmQuery(m *TcmMetric, repo TcmMetricRepository) (query *TcmQuery, err error)

func (*TcmQuery) GetPromMetrics

func (q *TcmQuery) GetPromMetrics() (pms []prometheus.Metric, err error)

type TcmQuerySet

type TcmQuerySet []*TcmQuery

func (TcmQuerySet) SplitByBatch

func (qs TcmQuerySet) SplitByBatch(batch int) (steps [][]*TcmQuery)

type TcmSample

type TcmSample struct {
	Timestamp  float64
	Value      float64
	Dimensions []*monitor.Dimension
}

代表一个数据点

type TcmSamples

type TcmSamples struct {
	Series  *TcmSeries
	Samples []*TcmSample
}

代表一个时间线的多个数据点

func NewTcmSamples

func NewTcmSamples(series *TcmSeries, p *monitor.DataPoint) (s *TcmSamples, err error)

func (*TcmSamples) GetAvgPoint

func (s *TcmSamples) GetAvgPoint() (point *TcmSample, err error)

func (*TcmSamples) GetLatestPoint

func (s *TcmSamples) GetLatestPoint() (point *TcmSample, err error)

func (*TcmSamples) GetMaxPoint

func (s *TcmSamples) GetMaxPoint() (point *TcmSample, err error)

func (*TcmSamples) GetMinPoint

func (s *TcmSamples) GetMinPoint() (point *TcmSample, err error)

type TcmSeries

type TcmSeries struct {
	Id          string
	Metric      *TcmMetric
	QueryLabels Labels
	Instance    instance.TcInstance
}

代表某个指标的一个时间线

func NewTcmSeries

func NewTcmSeries(m *TcmMetric, ql Labels, ins instance.TcInstance) (*TcmSeries, error)

Jump to

Keyboard shortcuts

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