probe

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2024 License: AGPL-3.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Jobs = makeJobs()
)
View Source
var PluginCfgs = make(map[string][]*Config)

Functions

func CacheGetBytes

func CacheGetBytes(key string) []byte

func CacheSetBytes

func CacheSetBytes(key string, bs []byte, d ...time.Duration)

func Reload

func Reload(ctx context.Context, configDirectory string)

Reload 读取磁盘配置文件,与内存中的配置文件进行比较,增删 JobGoroutine

func Start

func Start(ctx context.Context, configDirectory string) error

Start starts the probe goroutines.

Types

type Config

type Config struct {
	Global            GlobalConfig    `yaml:"global,omitempty"`
	ScrapeConfigs     []*ScrapeConfig `yaml:"scrape_configs,omitempty"`
	ScrapeConfigFiles []string        `yaml:"scrape_config_files,omitempty"`

	// This is set to the directory from where the config has been loaded.
	BaseDir string
}

type FileSDConfig

type FileSDConfig struct {
	Files []string `yaml:"files"`
}

FileSDConfig represents file-based service discovery config.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config

type GlobalConfig

type GlobalConfig struct {
	ScrapeConcurrency int                 `yaml:"scrape_concurrency,omitempty"` // 不能一次性启动太多 target 的抓取,比如 icmp 的抓取,一次性启动太多,会导致 icmp 的抓取超时
	ScrapeInterval    *promutils.Duration `yaml:"scrape_interval,omitempty"`
	// ScrapeTimeout     *promutils.Duration `yaml:"scrape_timeout,omitempty"`
	ExternalLabels *promutils.Labels `yaml:"external_labels,omitempty"`

	MetricRelabelConfigs       []promrelabel.RelabelConfig `yaml:"metric_relabel_configs,omitempty"`
	ParsedMetricRelabelConfigs *promrelabel.ParsedConfigs  `yaml:"-"`
}

GlobalConfig represents essential parts for `global` section of Prometheus config.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/

type JobGoroutine

type JobGoroutine struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewJobGoroutine

func NewJobGoroutine(plugin string, scrapeConfig *ScrapeConfig) *JobGoroutine

func (*JobGoroutine) GetInterval

func (j *JobGoroutine) GetInterval() time.Duration

func (*JobGoroutine) GetJobName

func (j *JobGoroutine) GetJobName() string

func (*JobGoroutine) GetRuleFiles

func (j *JobGoroutine) GetRuleFiles() []string

func (*JobGoroutine) Start

func (j *JobGoroutine) Start(ctx context.Context)

func (*JobGoroutine) Stop

func (j *JobGoroutine) Stop()

func (*JobGoroutine) UpdateConfig

func (j *JobGoroutine) UpdateConfig(scrapeConfig *ScrapeConfig)

type JobID

type JobID struct {
	YamlFile string
	JobName  string
}

type ScrapeConfig

type ScrapeConfig struct {
	ConfigRef *Config `yaml:"-"`

	JobName           string              `yaml:"job_name"`
	ScrapeConcurrency int                 `yaml:"scrape_concurrency,omitempty"`
	ScrapeInterval    *promutils.Duration `yaml:"scrape_interval,omitempty"`

	// 抓取数据的逻辑大变,已经不止是 HTTP /metrics 数据的抓取,可能是抓取的 SNMP、也可能抓的 MySQL
	ScrapeRuleFiles []string `yaml:"scrape_rule_files,omitempty"`

	RelabelConfigs       []promrelabel.RelabelConfig `yaml:"relabel_configs,omitempty"`
	MetricRelabelConfigs []promrelabel.RelabelConfig `yaml:"metric_relabel_configs,omitempty"`

	ParsedRelabelConfigs       *promrelabel.ParsedConfigs `yaml:"-"`
	ParsedMetricRelabelConfigs *promrelabel.ParsedConfigs `yaml:"-"`

	AzureSDConfigs        []azure.SDConfig        `yaml:"azure_sd_configs,omitempty"`
	DigitaloceanSDConfigs []digitalocean.SDConfig `yaml:"digitalocean_sd_configs,omitempty"`
	DNSSDConfigs          []dns.SDConfig          `yaml:"dns_sd_configs,omitempty"`
	DockerSDConfigs       []docker.SDConfig       `yaml:"docker_sd_configs,omitempty"`
	DockerSwarmSDConfigs  []dockerswarm.SDConfig  `yaml:"dockerswarm_sd_configs,omitempty"`
	EC2SDConfigs          []ec2.SDConfig          `yaml:"ec2_sd_configs,omitempty"`
	EurekaSDConfigs       []eureka.SDConfig       `yaml:"eureka_sd_configs,omitempty"`
	FileSDConfigs         []FileSDConfig          `yaml:"file_sd_configs,omitempty"`
	GCESDConfigs          []gce.SDConfig          `yaml:"gce_sd_configs,omitempty"`
	HTTPSDConfigs         []http.SDConfig         `yaml:"http_sd_configs,omitempty"`
	OpenStackSDConfigs    []openstack.SDConfig    `yaml:"openstack_sd_configs,omitempty"`
	StaticConfigs         []StaticConfig          `yaml:"static_configs,omitempty"`
	YandexCloudSDConfigs  []yandexcloud.SDConfig  `yaml:"yandexcloud_sd_configs,omitempty"`
}

ScrapeConfig represents essential parts for `scrape_config` section of Prometheus config.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config

type StaticConfig

type StaticConfig struct {
	Targets []string          `yaml:"targets"`
	Labels  *promutils.Labels `yaml:"labels,omitempty"`
	Paths   []string          `yaml:"paths,omitempty"` // TODO: 是否要通过这个字段和 CMDB 打通,纠结
}

StaticConfig represents essential parts for `static_config` section of Prometheus config.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config

Jump to

Keyboard shortcuts

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