metricsd

package
v0.0.0-...-89602ce Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2020 License: BSD-3-Clause Imports: 8 Imported by: 2

Documentation

Overview

Package metricsd supports metrics collection, augmentation, and export, as well as providing REST API endpoints for viewing metrics and managing alerts.

A metrics profile defines the manner and extent to which metrics are consumed and exported.

Metrics profiles are registered with the profile registry. The metricsd service consumes profiles from the registry and kicks off their respective collect/export loops.

Only one metrics profile can be active at a time. The active profile is determined by a service-level config value, and changing the active profile requires a metricsd service restart. Each exporter in the active profile receives metrics from every collector.

Available exporters include export to a custom Prometheus push gateway, as well as support for more time-series-oriented endpoints.

The metricsd service provides gRPC endpoints to accept metrics pushed via the REST API, as well as metrics collected (reported) from non-local services such as those on AGWs.

The obsidian REST API handlers provide endpoints to query metrics, as well as view, configure, and silence alerts.

Index

Constants

View Source
const (
	PrometheusQueryAddress = "prometheusQueryAddress"

	PrometheusConfigServiceURL   = "prometheusConfigServiceURL"
	AlertmanagerConfigServiceURL = "alertmanagerConfigServiceURL"
	AlertmanagerApiURL           = "alertmanagerApiURL"
)

Constants to represent the keys in the metricsd.yml config file

View Source
const (
	ServiceName = "METRICSD"
)

Variables

This section is empty.

Functions

func GetMetricsExporters

func GetMetricsExporters() []exporters.Exporter

GetMetricsExporters returns all registered metrics exporters.

func PushMetrics

func PushMetrics(metrics protos.PushedMetricsContainer) error

PushMetrics pushes a set of metrics to the metricsd service.

Types

type MetricsProfile

type MetricsProfile struct {
	// Name is a unique name to assign to this profile. This is how you
	// will tell metricsd which profile to run with.
	Name string

	// Collectors defines the set of functionalities for collecting metrics.
	// Many-inputs.
	Collectors []collection.MetricCollector

	// Exporters defines the set of functionalities for exporting metrics.
	// Many-outputs.
	Exporters []exporters.Exporter
}

MetricsProfile is a configuration for the metricsd servicer which specifies which collectors and exporters it should run.

Collectors intake metrics, metricsd augments each set of metrics, and Exporters output metrics. Deprecated: collectors are now static, exporters via service mesh

Directories

Path Synopsis
Package collection contains implementations of metric collectors and gatherers to perform local metric collection/aggregation.
Package collection contains implementations of metric collectors and gatherers to perform local metric collection/aggregation.
Package exporters provides an interface for converting protobuf metrics to timeseries datapoints and writing these datapoints to storage.
Package exporters provides an interface for converting protobuf metrics to timeseries datapoints and writing these datapoints to storage.
obsidian
prometheus

Jump to

Keyboard shortcuts

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