scrape

package
v0.300.1 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 40 Imported by: 364

Documentation

Index

Constants

View Source
const DefaultNameEscapingScheme = model.ValueEncodingEscaping

Variables

View Source
var AlignScrapeTimestamps = true

AlignScrapeTimestamps enables the tolerance for scrape appends timestamps described above.

View Source
var ScrapeTimestampTolerance = 2 * time.Millisecond

ScrapeTimestampTolerance is the tolerance for scrape appends timestamps alignment, to enable better compression at the TSDB level. See https://github.com/prometheus/prometheus/issues/7846

View Source
var UserAgent = fmt.Sprintf("Prometheus/%s", version.Version)

Functions

func AddMetricFamilyToProtobuf added in v0.45.0

func AddMetricFamilyToProtobuf(buffer *bytes.Buffer, metricFamily *dto.MetricFamily) error

AddMetricFamilyToProtobuf appends a MetricFamily protobuf representation to a buffer. This function is intended for testing scraping by providing protobuf serialized input.

func ContextWithMetricMetadataStore added in v0.36.0

func ContextWithMetricMetadataStore(ctx context.Context, s MetricMetadataStore) context.Context

func ContextWithTarget added in v0.36.0

func ContextWithTarget(ctx context.Context, t *Target) context.Context

func MetricFamilyToProtobuf added in v0.45.0

func MetricFamilyToProtobuf(metricFamily *dto.MetricFamily) ([]byte, error)

MetricFamilyToProtobuf writes a MetricFamily into a protobuf. This function is intended for testing scraping by providing protobuf serialized input.

func PopulateLabels

func PopulateLabels(lb *labels.Builder, cfg *config.ScrapeConfig) (res, orig labels.Labels, err error)

PopulateLabels builds a label set from the given label set and scrape configuration. It returns a label set before relabeling was applied as the second return value. Returns the original discovered label set found before relabelling was applied if the target is dropped during relabeling.

Types

type Manager

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

Manager maintains a set of scrape pools and manages start/stop cycles when receiving new target groups from the discovery manager.

func NewManager

func NewManager(o *Options, logger *slog.Logger, newScrapeFailureLogger func(string) (*logging.JSONFileLogger, error), app storage.Appendable, registerer prometheus.Registerer) (*Manager, error)

NewManager is the Manager constructor.

func (*Manager) ApplyConfig

func (m *Manager) ApplyConfig(cfg *config.Config) error

ApplyConfig resets the manager's target providers and job configurations as defined by the new cfg.

func (*Manager) Run

func (m *Manager) Run(tsets <-chan map[string][]*targetgroup.Group) error

Run receives and saves target set updates and triggers the scraping loops reloading. Reloading happens in the background so that it doesn't block receiving targets updates.

func (*Manager) ScrapePools added in v0.42.0

func (m *Manager) ScrapePools() []string

ScrapePools returns the list of all scrape pool names.

func (*Manager) Stop

func (m *Manager) Stop()

Stop cancels all running scrape pools and blocks until all have exited.

func (*Manager) TargetsActive

func (m *Manager) TargetsActive() map[string][]*Target

TargetsActive returns the active targets currently being scraped.

func (*Manager) TargetsAll

func (m *Manager) TargetsAll() map[string][]*Target

TargetsAll returns active and dropped targets grouped by job_name.

func (*Manager) TargetsDropped

func (m *Manager) TargetsDropped() map[string][]*Target

TargetsDropped returns the dropped targets during relabelling, subject to KeepDroppedTargets limit.

func (*Manager) TargetsDroppedCounts added in v0.47.0

func (m *Manager) TargetsDroppedCounts() map[string]int

func (*Manager) UnregisterMetrics added in v0.52.0

func (m *Manager) UnregisterMetrics()

UnregisterMetrics unregisters manager metrics.

type MetadataMetricsCollector

type MetadataMetricsCollector struct {
	CacheEntries    *prometheus.Desc
	CacheBytes      *prometheus.Desc
	TargetsGatherer TargetsGatherer
}

MetadataMetricsCollector is a Custom Collector for the metadata cache metrics.

func (*MetadataMetricsCollector) Collect

func (mc *MetadataMetricsCollector) Collect(ch chan<- prometheus.Metric)

Collect creates and sends the metrics for the metadata cache.

func (*MetadataMetricsCollector) Describe

func (mc *MetadataMetricsCollector) Describe(ch chan<- *prometheus.Desc)

Describe sends the metrics descriptions to the channel.

type MetricMetadata

type MetricMetadata struct {
	Metric string
	Type   model.MetricType
	Help   string
	Unit   string
}

MetricMetadata is a piece of metadata for a metric.

type MetricMetadataStore

type MetricMetadataStore interface {
	ListMetadata() []MetricMetadata
	GetMetadata(metric string) (MetricMetadata, bool)
	SizeMetadata() int
	LengthMetadata() int
}

MetricMetadataStore represents a storage for metadata.

func MetricMetadataStoreFromContext added in v0.36.0

func MetricMetadataStoreFromContext(ctx context.Context) (MetricMetadataStore, bool)

type Options

type Options struct {
	ExtraMetrics bool
	// Option used by downstream scraper users like OpenTelemetry Collector
	// to help lookup metric metadata. Should be false for Prometheus.
	PassMetadataInContext bool
	// Option to enable appending of scraped Metadata to the TSDB/other appenders. Individual appenders
	// can decide what to do with metadata, but for practical purposes this flag exists so that metadata
	// can be written to the WAL and thus read for remote write.
	// TODO: implement some form of metadata storage
	AppendMetadata bool
	// Option to increase the interval used by scrape manager to throttle target groups updates.
	DiscoveryReloadInterval model.Duration
	// Option to enable the ingestion of the created timestamp as a synthetic zero sample.
	// See: https://github.com/prometheus/proposals/blob/main/proposals/2023-06-13_created-timestamp.md
	EnableCreatedTimestampZeroIngestion bool
	// Option to enable the ingestion of native histograms.
	EnableNativeHistogramsIngestion bool

	// Optional HTTP client options to use when scraping.
	HTTPClientOptions []config_util.HTTPClientOption
	// contains filtered or unexported fields
}

Options are the configuration parameters to the scrape manager.

type Target

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

Target refers to a singular HTTP or HTTPS endpoint.

func NewTarget

func NewTarget(labels, discoveredLabels labels.Labels, params url.Values) *Target

NewTarget creates a reasonably configured target for querying.

func TargetFromContext added in v0.36.0

func TargetFromContext(ctx context.Context) (*Target, bool)

func TargetsFromGroup

func TargetsFromGroup(tg *targetgroup.Group, cfg *config.ScrapeConfig, targets []*Target, lb *labels.Builder) ([]*Target, []error)

TargetsFromGroup builds targets based on the given TargetGroup and config.

func (*Target) DiscoveredLabels

func (t *Target) DiscoveredLabels() labels.Labels

DiscoveredLabels returns a copy of the target's labels before any processing.

func (*Target) GetMetadata added in v0.50.0

func (t *Target) GetMetadata(metric string) (MetricMetadata, bool)

GetMetadata returns type and help metadata for the given metric.

func (*Target) GetValue

func (t *Target) GetValue(name string) string

GetValue gets a label value from the entire label set.

func (*Target) Health

func (t *Target) Health() TargetHealth

Health returns the last known health state of the target.

func (*Target) Labels

func (t *Target) Labels(b *labels.ScratchBuilder) labels.Labels

Labels returns a copy of the set of all public labels of the target.

func (*Target) LabelsRange added in v0.44.0

func (t *Target) LabelsRange(f func(l labels.Label))

LabelsRange calls f on each public label of the target.

func (*Target) LastError

func (t *Target) LastError() error

LastError returns the error encountered during the last scrape.

func (*Target) LastScrape

func (t *Target) LastScrape() time.Time

LastScrape returns the time of the last scrape.

func (*Target) LastScrapeDuration

func (t *Target) LastScrapeDuration() time.Duration

LastScrapeDuration returns how long the last scrape of the target took.

func (*Target) LengthMetadata added in v0.50.0

func (t *Target) LengthMetadata() int

func (*Target) ListMetadata added in v0.50.0

func (t *Target) ListMetadata() []MetricMetadata

func (*Target) Report

func (t *Target) Report(start time.Time, dur time.Duration, err error)

Report sets target data about the last scrape.

func (*Target) SetDiscoveredLabels

func (t *Target) SetDiscoveredLabels(l labels.Labels)

SetDiscoveredLabels sets new DiscoveredLabels.

func (*Target) SetMetadataStore

func (t *Target) SetMetadataStore(s MetricMetadataStore)

func (*Target) SizeMetadata added in v0.50.0

func (t *Target) SizeMetadata() int

func (*Target) String

func (t *Target) String() string

func (*Target) URL

func (t *Target) URL() *url.URL

URL returns a copy of the target's URL.

type TargetHealth

type TargetHealth string

TargetHealth describes the health state of a target.

const (
	HealthUnknown TargetHealth = "unknown"
	HealthGood    TargetHealth = "up"
	HealthBad     TargetHealth = "down"
)

The possible health states of a target based on the last performed scrape.

type Targets

type Targets []*Target

Targets is a sortable list of targets.

func (Targets) Len

func (ts Targets) Len() int

func (Targets) Less

func (ts Targets) Less(i, j int) bool

func (Targets) Swap

func (ts Targets) Swap(i, j int)

type TargetsGatherer added in v0.49.0

type TargetsGatherer interface {
	TargetsActive() map[string][]*Target
}

Jump to

Keyboard shortcuts

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