Documentation ¶
Index ¶
- Variables
- func CheckConfig() error
- func Init(pushData func(at *auth.Token, wr *prompbmarshal.WriteRequest))
- func IsDryRun() bool
- func ServiceDiscoveryResponse(tsr *targetsStatusResult, filter *requestFilter) string
- func Stop()
- func StreamServiceDiscoveryResponse(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- func TargetsResponseHTML(tsr *targetsStatusResult, filter *requestFilter) string
- func TargetsResponsePlain(tsr *targetsStatusResult, filter *requestFilter) string
- func WriteAPIV1Targets(w io.Writer, state string)
- func WriteConfigData(w io.Writer)
- func WriteHumanReadableTargetsStatus(w http.ResponseWriter, r *http.Request)
- func WriteMetricRelabelDebug(w http.ResponseWriter, r *http.Request)
- func WriteServiceDiscovery(w http.ResponseWriter, r *http.Request)
- func WriteServiceDiscoveryResponse(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- func WriteTargetRelabelDebug(w http.ResponseWriter, r *http.Request)
- func WriteTargetResponse(w http.ResponseWriter, r *http.Request) error
- func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
- type Config
- type FileSDConfig
- type GlobalConfig
- type ScrapeConfig
- type ScrapeWork
- type StaticConfig
Constants ¶
This section is empty.
Variables ¶
var ( // PendingScrapeConfigs - zero value means, that all scrapeConfigs are inited and ready for work. PendingScrapeConfigs atomic.Int32 )
Functions ¶
func CheckConfig ¶
func CheckConfig() error
CheckConfig checks -promscrape.config for errors and unsupported options.
func Init ¶
func Init(pushData func(at *auth.Token, wr *prompbmarshal.WriteRequest))
Init initializes Prometheus scraper with config from the `-promscrape.config`.
Scraped data is passed to pushData.
func IsDryRun ¶
func IsDryRun() bool
IsDryRun returns true if -promscrape.config.dryRun command-line flag is set
func ServiceDiscoveryResponse ¶
func ServiceDiscoveryResponse(tsr *targetsStatusResult, filter *requestFilter) string
func TargetsResponseHTML ¶
func TargetsResponseHTML(tsr *targetsStatusResult, filter *requestFilter) string
func TargetsResponsePlain ¶
func TargetsResponsePlain(tsr *targetsStatusResult, filter *requestFilter) string
func WriteAPIV1Targets ¶
WriteAPIV1Targets writes /api/v1/targets to w according to https://prometheus.io/docs/prometheus/latest/querying/api/#targets
func WriteConfigData ¶
WriteConfigData writes -promscrape.config contents to w
func WriteHumanReadableTargetsStatus ¶
func WriteHumanReadableTargetsStatus(w http.ResponseWriter, r *http.Request)
WriteHumanReadableTargetsStatus writes human-readable status for all the scrape targets to w according to r.
func WriteMetricRelabelDebug ¶
func WriteMetricRelabelDebug(w http.ResponseWriter, r *http.Request)
WriteMetricRelabelDebug serves requests to /metric-relabel-debug page
func WriteServiceDiscovery ¶
func WriteServiceDiscovery(w http.ResponseWriter, r *http.Request)
WriteServiceDiscovery writes /service-discovery response to w similar to http://demo.robustperception.io:9090/service-discovery
func WriteServiceDiscoveryResponse ¶
func WriteServiceDiscoveryResponse(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
func WriteTargetRelabelDebug ¶
func WriteTargetRelabelDebug(w http.ResponseWriter, r *http.Request)
WriteTargetRelabelDebug generates response for /target-relabel-debug page
func WriteTargetResponse ¶
func WriteTargetResponse(w http.ResponseWriter, r *http.Request) error
WriteTargetResponse serves requests to /target_response?id=<id>
It fetches response for the given target id and returns it.
func WriteTargetsResponseHTML ¶
func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
func WriteTargetsResponsePlain ¶
func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter)
Types ¶
type Config ¶
type Config struct { Global GlobalConfig `yaml:"global,omitempty"` ScrapeConfigs []*ScrapeConfig `yaml:"scrape_configs,omitempty"` ScrapeConfigFiles []string `yaml:"scrape_config_files,omitempty"` // contains filtered or unexported fields }
Config represents essential parts from Prometheus config defined at https://prometheus.io/docs/prometheus/latest/configuration/configuration/
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 { ScrapeInterval *promutils.Duration `yaml:"scrape_interval,omitempty"` ScrapeTimeout *promutils.Duration `yaml:"scrape_timeout,omitempty"` ExternalLabels *promutils.Labels `yaml:"external_labels,omitempty"` }
GlobalConfig represents essential parts for `global` section of Prometheus config.
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/
type ScrapeConfig ¶
type ScrapeConfig struct { JobName string `yaml:"job_name"` ScrapeInterval *promutils.Duration `yaml:"scrape_interval,omitempty"` ScrapeTimeout *promutils.Duration `yaml:"scrape_timeout,omitempty"` MaxScrapeSize string `yaml:"max_scrape_size,omitempty"` MetricsPath string `yaml:"metrics_path,omitempty"` HonorLabels bool `yaml:"honor_labels,omitempty"` // HonorTimestamps is set to false by default contrary to Prometheus, which sets it to true by default, // because of the issue with gaps on graphs when scraping cadvisor or similar targets, which export invalid timestamps. // See https://github.com/zzylol/VictoriaMetrics/issues/4697#issuecomment-1654614799 for details. HonorTimestamps bool `yaml:"honor_timestamps,omitempty"` Scheme string `yaml:"scheme,omitempty"` Params map[string][]string `yaml:"params,omitempty"` HTTPClientConfig promauth.HTTPClientConfig `yaml:",inline"` ProxyURL *proxy.URL `yaml:"proxy_url,omitempty"` RelabelConfigs []promrelabel.RelabelConfig `yaml:"relabel_configs,omitempty"` MetricRelabelConfigs []promrelabel.RelabelConfig `yaml:"metric_relabel_configs,omitempty"` SampleLimit int `yaml:"sample_limit,omitempty"` // This silly option is needed for compatibility with Prometheus. // vmagent was supporting disable_compression option since the beginning, while Prometheus developers // decided adding enable_compression option in https://github.com/prometheus/prometheus/pull/13166 // That's why it needs to be supported too :( EnableCompression *bool `yaml:"enable_compression,omitempty"` AzureSDConfigs []azure.SDConfig `yaml:"azure_sd_configs,omitempty"` ConsulSDConfigs []consul.SDConfig `yaml:"consul_sd_configs,omitempty"` ConsulAgentSDConfigs []consulagent.SDConfig `yaml:"consulagent_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"` HetznerSDConfigs []hetzner.SDConfig `yaml:"hetzner_sd_configs,omitempty"` HTTPSDConfigs []http.SDConfig `yaml:"http_sd_configs,omitempty"` KubernetesSDConfigs []kubernetes.SDConfig `yaml:"kubernetes_sd_configs,omitempty"` KumaSDConfigs []kuma.SDConfig `yaml:"kuma_sd_configs,omitempty"` NomadSDConfigs []nomad.SDConfig `yaml:"nomad_sd_configs,omitempty"` OpenStackSDConfigs []openstack.SDConfig `yaml:"openstack_sd_configs,omitempty"` OVHCloudSDConfigs []ovhcloud.SDConfig `yaml:"ovhcloud_sd_configs,omitempty"` PuppetDBSDConfigs []puppetdb.SDConfig `yaml:"puppetdb_sd_configs,omitempty"` StaticConfigs []StaticConfig `yaml:"static_configs,omitempty"` VultrSDConfigs []vultr.SDConfig `yaml:"vultr_configs,omitempty"` YandexCloudSDConfigs []yandexcloud.SDConfig `yaml:"yandexcloud_sd_configs,omitempty"` // These options are supported only by lib/promscrape. DisableCompression bool `yaml:"disable_compression,omitempty"` DisableKeepAlive bool `yaml:"disable_keepalive,omitempty"` StreamParse bool `yaml:"stream_parse,omitempty"` ScrapeAlignInterval *promutils.Duration `yaml:"scrape_align_interval,omitempty"` ScrapeOffset *promutils.Duration `yaml:"scrape_offset,omitempty"` SeriesLimit *int `yaml:"series_limit,omitempty"` NoStaleMarkers *bool `yaml:"no_stale_markers,omitempty"` ProxyClientConfig promauth.ProxyClientConfig `yaml:",inline"` // contains filtered or unexported fields }
ScrapeConfig represents essential parts for `scrape_config` section of Prometheus config.
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
type ScrapeWork ¶
type ScrapeWork struct { // Full URL (including query args) for the scrape. ScrapeURL string // Interval for scraping the ScrapeURL. ScrapeInterval time.Duration // Timeout for scraping the ScrapeURL. ScrapeTimeout time.Duration // MaxScrapeSize sets max amount of data, that can be scraped by a job MaxScrapeSize int64 // How to deal with conflicting labels. // See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config HonorLabels bool // How to deal with scraped timestamps. // See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config HonorTimestamps bool // Whether to deny redirects during requests to scrape config. DenyRedirects bool // OriginalLabels contains original labels before relabeling. // // These labels are needed for relabeling troubleshooting at /targets page. // // OriginalLabels are sorted by name. OriginalLabels *promutils.Labels // Labels to add to the scraped metrics. // // The list contains at least the following labels according to https://www.robustperception.io/life-of-a-label/ // // * job // * instance // * user-defined labels set via `relabel_configs` section in `scrape_config` // // See also https://prometheus.io/docs/concepts/jobs_instances/ // // Labels are sorted by name. Labels *promutils.Labels // ExternalLabels contains labels from global->external_labels section of -promscrape.config // // These labels are added to scraped metrics after the relabeling. // See https://github.com/zzylol/VictoriaMetrics/issues/3137 // // ExternalLabels are sorted by name. ExternalLabels *promutils.Labels // ProxyURL HTTP proxy url ProxyURL *proxy.URL // Auth config for ProxyUR: ProxyAuthConfig *promauth.Config // Auth config AuthConfig *promauth.Config // Optional `relabel_configs`. RelabelConfigs *promrelabel.ParsedConfigs // Optional `metric_relabel_configs`. MetricRelabelConfigs *promrelabel.ParsedConfigs // The maximum number of metrics to scrape after relabeling. SampleLimit int // Whether to disable response compression when querying ScrapeURL. DisableCompression bool // Whether to disable HTTP keep-alive when querying ScrapeURL. DisableKeepAlive bool // Whether to parse target responses in a streaming manner. StreamParse bool // The interval for aligning the first scrape. ScrapeAlignInterval time.Duration // The offset for the first scrape. ScrapeOffset time.Duration // Optional limit on the number of unique series the scrape target can expose. SeriesLimit int // Whether to process stale markers for the given target. // See https://docs.victoriametrics.com/vmagent/#prometheus-staleness-markers NoStaleMarkers bool // The Tenant Info AuthToken *auth.Token // contains filtered or unexported fields }
ScrapeWork represents a unit of work for scraping Prometheus metrics.
It must be immutable during its lifetime, since it is read from concurrently running goroutines.
type StaticConfig ¶
type StaticConfig struct { Targets []string `yaml:"targets"` Labels *promutils.Labels `yaml:"labels,omitempty"` }
StaticConfig represents essential parts for `static_config` section of Prometheus config.
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config