common

package
v0.3.5 Latest Latest
Warning

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

Go to latest
Published: May 30, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ByteMD5

func ByteMD5(b []byte) []byte

func FileMD5

func FileMD5(path string) []byte

func GetBaseConfigKeys added in v0.0.5

func GetBaseConfigKeys(arr map[string]*BaseConfig) []string

func GetStringKeys added in v0.0.5

func GetStringKeys(arr map[string]string) []string

func IfDef

func IfDef(v, def interface{}) interface{}

func MergeMaps

func MergeMaps(maps ...map[string]string) map[string]string

func ReadFiles

func ReadFiles(pattern string) ([]string, error)

func RenderTemplate

func RenderTemplate(tpl *toolsRender.TextTemplate, def string, obj interface{}) (string, error)

func SortStringMapByKeys added in v0.0.5

func SortStringMapByKeys(m map[string]string, keys []string) map[string]string

func StringInArr

func StringInArr(a string, arr []string) bool

Types

type BaseAvailability

type BaseAvailability struct {
	Queries []*BaseAvailabilityQuery `yaml:"queries"`
	GroupBy []string                 `yaml:"group_by"`
	Labels  map[string]string        `yaml:"labels"`
}

type BaseAvailabilityQuery

type BaseAvailabilityQuery struct {
	Query     string            `yaml:"query"`
	Suffix    string            `yaml:"suffix"`
	Weight    interface{}       `yaml:"weight"`
	Labels    map[string]string `yaml:"labels"`
	UseCRD    string            `yaml:"crd"`
	Composite string            `yaml:"composite"`
	Source    string            `yaml:"source"`
	Timeout   string            `yaml:"timeout"`
}

type BaseCondition added in v0.3.5

type BaseCondition struct {
	Metric string            `yaml:"metric"`
	Labels map[string]string `yaml:"labels"`
}

type BaseConfig

type BaseConfig struct {
	Vars         map[string]string `yaml:"vars"`
	Labels       map[string]string `yaml:"labels"`
	Conditions   []*BaseCondition  `yaml:"if"`
	Qualities    []*BaseQuality    `yaml:"quality"`
	Metrics      []*BaseMetric     `yaml:"metrics"`
	Availability *BaseAvailability `yaml:"availability"`
}

func (*BaseConfig) LabelsExist added in v0.3.5

func (bc *BaseConfig) LabelsExist(c *BaseCondition, labels map[string]string) bool

func (*BaseConfig) MetricExists

func (bc *BaseConfig) MetricExists(query string, labels map[string]string) bool

type BaseMetric

type BaseMetric struct {
	Query    string            `yaml:"query"`
	Name     string            `yaml:"name"`
	UniqueBy []string          `yaml:"unique_by"`
	Labels   map[string]string `yaml:"labels"`
}

type BaseQuality

type BaseQuality struct {
	Range  string `yaml:"range"`
	Every  string `yaml:"every"`
	Points int    `yaml:"points"`
	Query  string `yaml:"query"`
}

type File added in v0.3.2

type File struct {
	Path string
	Type string
	Obj  interface{}
}

type Observability

type Observability struct {
	// contains filtered or unexported fields
}

func NewObservability

func NewObservability(logs *sre.Logs, metrics *sre.Metrics) *Observability

func (*Observability) Debug

func (o *Observability) Debug(obj interface{}, args ...interface{})

func (*Observability) Error

func (o *Observability) Error(obj interface{}, args ...interface{})

func (*Observability) Info

func (o *Observability) Info(obj interface{}, args ...interface{})

func (*Observability) Logs

func (o *Observability) Logs() *sre.Logs

func (*Observability) Metrics

func (o *Observability) Metrics() *sre.Metrics

func (*Observability) Warn

func (o *Observability) Warn(obj interface{}, args ...interface{})

type Service

type Service struct {
	Configs map[string]*BaseConfig
	Labels  map[string]string
	Vars    map[string]string
	Files   map[string]*File
}

type TelegrafConfig

type TelegrafConfig struct {
	Inputs        TelegrafInputs `toml:"inputs"`
	Observability *Observability `toml:"-"`
}

func (*TelegrafConfig) GenerateServiceBytes

func (tc *TelegrafConfig) GenerateServiceBytes(s *Service, labelsTpl string, opts TelegrafConfigOptions, name string) ([]byte, error)

type TelegrafConfigOptions

type TelegrafConfigOptions struct {
	URL              string
	Version          string
	Params           string
	Interval         string
	Timeout          string
	Duration         string
	Prefix           string
	QualityName      string
	QualityRange     string
	QualityEvery     string
	QualityPoints    int
	QualityQuery     string
	AvailabilityName string
	MetricName       string
	DefaultTags      []string
	VarFormat        string
}

type TelegrafInputPrometheusHttp

type TelegrafInputPrometheusHttp struct {
	Name          string                                     `toml:"name"`
	URL           string                                     `toml:"url"`
	Version       string                                     `toml:"version"`
	Params        string                                     `toml:"params"`
	Interval      string                                     `toml:"interval"`
	Timeout       string                                     `toml:"timeout"`
	Duration      string                                     `toml:"duration"`
	Prefix        string                                     `toml:"prefix"`
	File          []*TelegrafInputPrometheusHttpFile         `toml:"file"`
	Metric        []*TelegrafInputPrometheusHttpMetric       `toml:"metric"`
	Availability  []*TelegrafInputPrometheusHttpAvailability `toml:"metric"`
	Tags          map[string]string                          `toml:"tags,omitempty"`
	Include       []string                                   `toml:"taginclude,omitempty"`
	SkipEmptyTags bool                                       `toml:"skip_empty_tags"`
	// contains filtered or unexported fields
}

type TelegrafInputPrometheusHttpAvailability

type TelegrafInputPrometheusHttpAvailability struct {
	Name     string            `toml:"name"`
	Query    string            `toml:"query"`
	UniqueBy []string          `toml:"unique_by,omitempty"`
	Tags     map[string]string `toml:"tags,omitempty"`
}

type TelegrafInputPrometheusHttpFile added in v0.2.2

type TelegrafInputPrometheusHttpFile struct {
	Name string `toml:"name"`
	Path string `toml:"path"`
	Type string `toml:"type,omitempty"`
}

type TelegrafInputPrometheusHttpMetric

type TelegrafInputPrometheusHttpMetric struct {
	Name     string            `toml:"name"`
	Query    string            `toml:"query"`
	UniqueBy []string          `toml:"unique_by,omitempty"`
	Tags     map[string]string `toml:"tags,omitempty"`
}

type TelegrafInputs

type TelegrafInputs struct {
	PrometheusHttp []*TelegrafInputPrometheusHttp `toml:"prometheus_http,omitempty"`
}

Jump to

Keyboard shortcuts

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