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