README

Prometheus Receiver

Receives metric data in Prometheus format. See the Design for additional information on this receiver.

Supported pipeline types: metrics

⚠️ Warning

Note: This component is currently work in progress. It has several limitations and please don't use it if the following limitations is a concern:

  • Collector cannot auto-scale the scraping yet when multiple replicas of the collector is run.
  • When running multiple replicas of the collector with the same config, it will scrape the targets multiple times.
  • Users need to configure each replica with different scraping configuration if they want to manually shard the scraping.
  • The Prometheus receiver is a stateful component.

Getting Started

This receiver is a drop-in replacement for getting Prometheus to scrape your services. It supports the full set of Prometheus configuration, including service discovery. Just like you would write in a YAML configuration file before starting Prometheus, such as with:

prometheus --config.file=prom.yaml

You can copy and paste that same configuration under:

receivers:
  prometheus:
    config:

For example:

receivers:
    prometheus:
      config:
        scrape_configs:
          - job_name: 'otel-collector'
            scrape_interval: 5s
            static_configs:
              - targets: ['0.0.0.0:8888']
          - job_name: k8s
            kubernetes_sd_configs:
            - role: pod
            relabel_configs:
            - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
              regex: "true"
              action: keep
            metric_relabel_configs:
            - source_labels: [__name__]
              regex: "(request_duration_seconds.*|response_duration_seconds.*)"
              action: keep
Expand ▾ Collapse ▴

Documentation

Overview

    Package prometheusreceiver has the logic for scraping Prometheus metrics from already instrumented applications and then passing them onto a metricsink instance.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func NewFactory

    func NewFactory() component.ReceiverFactory

    Types

    type Config

    type Config struct {
    	configmodels.ReceiverSettings `mapstructure:",squash"`
    	PrometheusConfig              *config.Config `mapstructure:"-"`
    	BufferPeriod                  time.Duration  `mapstructure:"buffer_period"`
    	BufferCount                   int            `mapstructure:"buffer_count"`
    	UseStartTimeMetric            bool           `mapstructure:"use_start_time_metric"`
    	StartTimeMetricRegex          string         `mapstructure:"start_time_metric_regex"`
    
    	// ConfigPlaceholder is just an entry to make the configuration pass a check
    	// that requires that all keys present in the config actually exist on the
    	// structure, ie.: it will error if an unknown key is present.
    	ConfigPlaceholder interface{} `mapstructure:"config"`
    }

      Config defines configuration for Prometheus receiver.

      Directories

      Path Synopsis