Documentation
¶
Index ¶
Constants ¶
const Subsystem = "MNTR"
Subsystem defines the sub system name of this package.
Variables ¶
This section is empty.
Functions ¶
func GetPromInterceptors ¶
func GetPromInterceptors(_ *PrometheusConfig) ([]grpc.UnaryServerInterceptor, []grpc.StreamServerInterceptor)
GetPromInterceptors returns the set of interceptors for Prometheus monitoring if monitoring is enabled, else empty slices. Monitoring is currently disabled.
Types ¶
type PrometheusConfig ¶
type PrometheusConfig struct {
// Active, if true, then Prometheus metrics will be exported.
Active bool `long:"active" description:"if true prometheus metrics will be exported"`
// ListenAddr is the listening address that we should use to allow the
// main Prometheus server to scrape our metrics.
ListenAddr string `long:"listenaddr" description:"the interface we should listen on for prometheus"`
// CollectorRPCTimeout is the context timeout to be used by the RPC
// calls performed during metrics collection. This should not be greater
// than the scrape interval of prometheus.
CollectorRPCTimeout time.Duration `long:"collector-rpc-timeout" description:"the default timeout to be used in the RPC calls performed during metric collection"`
// RPCServer is a pointer to the main RPC server. We use this to export
// generic RPC metrics to monitor the health of the service.
RPCServer *grpc.Server
// UniverseStats is used to collect any stats that are relevant to the
// universe.
UniverseStats universe.Telemetry
// AssetStore is used to collect any stats that are relevant to the
// asset store.
AssetStore *tapdb.AssetStore
// AssetMinter is used to collect any stats that are relevant to the
// asset minter.
AssetMinter tapgarden.Planter
// PerfHistograms indicates if the additional histogram information for
// latency, and handling time of gRPC calls should be enabled. This
// generates additional data, and consume more memory for the
// Prometheus server.
PerfHistograms bool `long:"perfhistograms" description:"enable additional histogram to track gRPC call processing performance (latency, etc)"`
}
PrometheusConfig is the set of configuration data that specifies if Prometheus metric exporting is activated, and if so the listening address of the Prometheus server.
nolint: lll
func DefaultPrometheusConfig ¶
func DefaultPrometheusConfig() PrometheusConfig
DefaultPrometheusConfig is the default configuration for the Prometheus metrics exporter.
type PrometheusExporter ¶
type PrometheusExporter struct {
// contains filtered or unexported fields
}
PrometheusExporter is a metric exporter that uses Prometheus directly. The internal server will interact with this struct in order to export relevant metrics.
func NewPrometheusExporter ¶
func NewPrometheusExporter(cfg *PrometheusConfig) (*PrometheusExporter, error)
NewPrometheusExporter makes a new instance of the PrometheusExporter given the config.
func (*PrometheusExporter) Start ¶
func (p *PrometheusExporter) Start() error
Start registers all relevant metrics with the Prometheus library, then launches the HTTP server that Prometheus will hit to scrape our metrics.