observations

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2022 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 25 Imported by: 0

Documentation

Overview

Package observations sets up metric and trace exporting for IPFS cluster.

Index

Constants

View Source
const (
	DefaultEnableStats        = false
	DefaultPrometheusEndpoint = "/ip4/127.0.0.1/tcp/8888"
	DefaultReportingInterval  = 2 * time.Second

	DefaultEnableTracing       = false
	DefaultJaegerAgentEndpoint = "/ip4/0.0.0.0/udp/6831"
	DefaultSamplingProb        = 0.3
	DefaultServiceName         = "cluster-daemon"
)

Default values for this Config.

Variables

View Source
var (
	HostKey       = makeKey("host")
	RemotePeerKey = makeKey("remote_peer")
)

keys

View Source
var (
	// This metric is managed in state/dsstate.
	Pins = stats.Int64("pins", "Total number of pins", stats.UnitDimensionless)

	// These metrics are managed by the pintracker/optracker module.
	PinsQueued   = stats.Int64("pins/pin_queued", "Number of pins queued for pinning", stats.UnitDimensionless)
	PinsPinning  = stats.Int64("pins/pinning", "Number of pins currently pinning", stats.UnitDimensionless)
	PinsPinError = stats.Int64("pins/pin_error", "Number of pins in pin_error state", stats.UnitDimensionless)
)

metrics

View Source
var (
	PinsView = &view.View{
		Measure: Pins,

		Aggregation: view.LastValue(),
	}

	PinsQueuedView = &view.View{
		Measure: PinsQueued,

		Aggregation: view.Sum(),
	}

	PinsPinningView = &view.View{
		Measure: PinsPinning,

		Aggregation: view.Sum(),
	}

	PinsPinErrorView = &view.View{
		Measure: PinsPinError,

		Aggregation: view.Sum(),
	}

	DefaultViews = []*view.View{
		PinsView,
		PinsQueuedView,
		PinsPinningView,
		PinsPinErrorView,
	}
)

views, which is just the aggregation of the metrics

View Source
var (
	ClientIPAttribute = "http.client.ip"
)

attributes

Functions

func SetupMetrics

func SetupMetrics(cfg *MetricsConfig) error

SetupMetrics configures and starts stats tooling, if enabled.

Types

type JaegerTracer

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

JaegerTracer implements ipfscluster.Tracer.

func SetupTracing

func SetupTracing(cfg *TracingConfig) (*JaegerTracer, error)

SetupTracing configures and starts tracing tooling, if enabled.

func (*JaegerTracer) SetClient

func (t *JaegerTracer) SetClient(*rpc.Client)

SetClient no-op.

func (*JaegerTracer) Shutdown

func (t *JaegerTracer) Shutdown(context.Context) error

Shutdown the tracer and flush any remaining traces.

type MetricsConfig

type MetricsConfig struct {
	config.Saver

	EnableStats        bool
	PrometheusEndpoint ma.Multiaddr
	ReportingInterval  time.Duration
}

MetricsConfig configures metrics collection.

func (*MetricsConfig) ApplyEnvVars added in v0.10.0

func (cfg *MetricsConfig) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*MetricsConfig) ConfigKey

func (cfg *MetricsConfig) ConfigKey() string

ConfigKey provides a human-friendly identifier for this type of Config.

func (*MetricsConfig) Default

func (cfg *MetricsConfig) Default() error

Default sets the fields of this Config to sensible values.

func (*MetricsConfig) LoadJSON

func (cfg *MetricsConfig) LoadJSON(raw []byte) error

LoadJSON sets the fields of this Config to the values defined by the JSON representation of it, as generated by ToJSON.

func (*MetricsConfig) ToDisplayJSON added in v0.13.0

func (cfg *MetricsConfig) ToDisplayJSON() ([]byte, error)

ToDisplayJSON returns JSON config as a string.

func (*MetricsConfig) ToJSON

func (cfg *MetricsConfig) ToJSON() ([]byte, error)

ToJSON generates a human-friendly JSON representation of this Config.

func (*MetricsConfig) Validate

func (cfg *MetricsConfig) Validate() error

Validate checks that the fields of this Config have working values, at least in appearance.

type TracingConfig

type TracingConfig struct {
	config.Saver

	EnableTracing       bool
	JaegerAgentEndpoint ma.Multiaddr
	SamplingProb        float64
	ServiceName         string
	ClusterID           string
	ClusterPeername     string
}

TracingConfig configures tracing.

func (*TracingConfig) ApplyEnvVars added in v0.10.0

func (cfg *TracingConfig) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*TracingConfig) ConfigKey

func (cfg *TracingConfig) ConfigKey() string

ConfigKey provides a human-friendly identifier for this type of Config.

func (*TracingConfig) Default

func (cfg *TracingConfig) Default() error

Default sets the fields of this Config to sensible values.

func (*TracingConfig) LoadJSON

func (cfg *TracingConfig) LoadJSON(raw []byte) error

LoadJSON sets the fields of this Config to the values defined by the JSON representation of it, as generated by ToJSON.

func (*TracingConfig) ToDisplayJSON added in v0.13.0

func (cfg *TracingConfig) ToDisplayJSON() ([]byte, error)

ToDisplayJSON returns JSON config as a string.

func (*TracingConfig) ToJSON

func (cfg *TracingConfig) ToJSON() ([]byte, error)

ToJSON generates a human-friendly JSON representation of this Config.

func (*TracingConfig) Validate

func (cfg *TracingConfig) Validate() error

Validate checks that the fields of this Config have working values, at least in appearance.

Jump to

Keyboard shortcuts

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