Documentation
¶
Index ¶
- Variables
- func CacheGetBytes(key string) []byte
- func CacheSetBytes(key string, bs []byte, d ...time.Duration)
- func Reload(ctx context.Context, configDirectory string)
- func Start(ctx context.Context, configDirectory string) error
- type Config
- type FileSDConfig
- type GlobalConfig
- type JobGoroutine
- type JobID
- type ScrapeConfig
- type StaticConfig
Constants ¶
This section is empty.
Variables ¶
var (
Jobs = makeJobs()
)
var PluginCfgs = make(map[string][]*Config)
Functions ¶
func CacheGetBytes ¶
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 ¶
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 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