common

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package common implements a bare-bones Integration that can be used by exporters that have no logic associated with them.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CollectorIntegration

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

CollectorIntegration is an integration exposing metrics from a Prometheus collector.

func NewCollectorIntegration

func NewCollectorIntegration(name string, cfg config.Common, c prometheus.Collector, includeExporterMetrics bool) *CollectorIntegration

NewCollectorIntegration creates a basic integration that exposes metrics from a prometheus.Collector.

func (*CollectorIntegration) CommonConfig

func (i *CollectorIntegration) CommonConfig() config.Common

CommonConfig satisfies Integration.CommonConfig.

func (*CollectorIntegration) Name

func (i *CollectorIntegration) Name() string

Name satisfies Integration.Name.

func (*CollectorIntegration) RegisterRoutes

func (i *CollectorIntegration) RegisterRoutes(r *mux.Router) error

RegisterRoutes satisfies Integration.RegisterRoutes. The mux.Router provided here is expected to be a subrouter, where all registered paths will be registered within that subroute.

func (*CollectorIntegration) Run

Run satisfies Integration.Run.

func (*CollectorIntegration) ScrapeConfigs

func (i *CollectorIntegration) ScrapeConfigs() []config.ScrapeConfig

ScrapeConfigs satisfies Integration.ScrapeConfigs.

type Integration

type Integration interface {
	// Name returns the name of the integration. Each registered integration must
	// have a unique name.
	Name() string

	// CommonConfig returns the set of common configuration values present across
	// all integrations.
	CommonConfig() config.Common

	// RegisterRoutes should register any HTTP handlers used for the integration.
	//
	// The router provided to RegisterRoutes is a subrouter for the path
	// /integrations/<integration name>. All routes should register to the
	// relative root path and will be automatically combined to the subroute. For
	// example, if a metric "database" registers a /metrics endpoint, it will
	// be exposed as /integrations/database/metrics.
	RegisterRoutes(r *mux.Router) error

	// ScrapeConfigs should return a set of integration scrape configs that inform
	// the integration how samples should be collected.
	ScrapeConfigs() []config.ScrapeConfig

	// Run should start the integration and do any required tasks. Run should *not*
	// exit until context is canceled. If an integration doesn't need to do anything,
	// it should simply wait for ctx to be canceled.
	Run(ctx context.Context) error
}

Jump to

Keyboard shortcuts

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