export

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2021 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KeyProjectID = "project_id"
	KeyLocation  = "location"
	KeyCluster   = "cluster"
	KeyNamespace = "namespace"
	KeyJob       = "job"
	KeyInstance  = "instance"
)

The target label keys used for the Prometheus monitored resource.

View Source
const (
	ClientName = "gpe-collector"
	Version    = ""
)

ClientName and Version are used to identify to User Agent. TODO(maxamin): automate versioning.

Variables

This section is empty.

Functions

func InitGlobal

func InitGlobal(logger log.Logger, reg prometheus.Registerer, opts ExporterOpts) (err error)

InitGlobal initializes the global instance of the GCM exporter.

func WithMetadataFunc added in v0.0.1

func WithMetadataFunc(ctx context.Context, mf MetadataFunc) context.Context

WithMetadataFunc stores mf in the context.

Types

type Exporter

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

Exporter converts Prometheus samples into Cloud Monitoring samples and exports them.

func Global

func Global() *Exporter

Global returns the global instance of the GCM exporter.

func New

func New(logger log.Logger, reg prometheus.Registerer, opts ExporterOpts) (*Exporter, error)

New returns a new Cloud Monitoring Exporter.

func (*Exporter) ApplyConfig

func (e *Exporter) ApplyConfig(cfg *config.Config) error

ApplyConfig updates the exporter state to the given configuration. Must be called at least once before Export() can be used.

func (*Exporter) Export

func (e *Exporter) Export(metadata MetadataFunc, samples []record.RefSample)

Export enqueues the samples to be written to Cloud Monitoring.

func (*Exporter) Run

func (e *Exporter) Run(ctx context.Context) error

Run sends exported samples to Google Cloud Monitoring.

func (*Exporter) SetLabelsByIDFunc

func (e *Exporter) SetLabelsByIDFunc(f func(uint64) labels.Labels)

SetLabelsByIDFunc injects a function that can be used to retrieve a label set based on a series ID we got through exported sample records. Must be called before any call to Export is made.

type ExporterOpts

type ExporterOpts struct {
	// Whether to disable exporting of metrics.
	Disable bool
	// GCM API endpoint to send metric data to.
	Endpoint string
	// Credentials file for authentication with the GCM API.
	CredentialsFile string
	// Disable authentication (for debugging purposes).
	DisableAuth bool

	// Default monitored resource fields set on exported data.
	ProjectID string
	Location  string
	Cluster   string

	// A list of metric matchers. Only Prometheus time series satisfying at
	// least one of the matchers are exported.
	// This option matches the semantics of the Prometheus federation match[]
	// parameter.
	Matchers Matchers

	// Maximum batch size to use when sending data to the GCM API. The default
	// maximum will be used if set to 0.
	BatchSize uint
	// Prefix under which metrics are written to GCM.
	MetricTypePrefix string
}

ExporterOpts holds options for an exporter.

func NewFlagOptions

func NewFlagOptions(a *kingpin.Application) *ExporterOpts

NewFlagOptions returns new exporter options that are populated through flags registered in the given application.

type Matchers added in v0.0.4

type Matchers []labels.Selector

Matchers holds a list of metric selectors that can be set as a flag.

func (*Matchers) IsCumulative added in v0.0.4

func (m *Matchers) IsCumulative() bool

func (*Matchers) Matches added in v0.0.4

func (m *Matchers) Matches(lset labels.Labels) bool

func (*Matchers) Set added in v0.0.4

func (m *Matchers) Set(s string) error

func (*Matchers) String added in v0.0.4

func (m *Matchers) String() string

type MetadataFunc added in v0.0.1

type MetadataFunc func(metric string) (MetricMetadata, bool)

MetadataFunc gets metadata for a specific metric name.

func MetadataFuncFromContext added in v0.0.1

func MetadataFuncFromContext(ctx context.Context) (MetadataFunc, bool)

MetadataFuncFromContext extracts a MetataFunc from ctx.

type MetricMetadata added in v0.0.1

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

MetricMetadata is a copy of MetricMetadata in Prometheus's scrape package. It is copied to break a dependency cycle.

type Storage

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

Storage provides a stateful wrapper around an Exporter that implements Prometheus's storage interface (Appendable).

For performance reasons Exporter is optimized to be tightly integrate with Prometheus's storage. This makes it rely on external state (series ID to label mapping). For use cases where a full Prometheus storage engine is not present (e.g. rule evaluation service), Storage acts as a simple drop-in replacement that directly manages the state required by Exporter.

func NewStorage

func NewStorage(logger log.Logger, reg prometheus.Registerer, opts ExporterOpts) (*Storage, error)

NewStorage returns a new Prometheus storage that's exporting data via an Exporter.

func (*Storage) Appender

func (s *Storage) Appender(ctx context.Context) storage.Appender

Appender returns a new Appender.

func (*Storage) Run

func (s *Storage) Run(ctx context.Context) error

Run background processing of the storage.

Jump to

Keyboard shortcuts

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