metricsx

package
v0.0.27 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2018 License: Apache-2.0 Imports: 17 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Hash

func Hash(value string) string

Hash returns a hashed string of the value.

Types

type MemoryStatistics

type MemoryStatistics struct {
	sync.Mutex
	// Alloc is bytes of allocated heap objects.
	Alloc uint64 `json:"alloc"`
	// TotalAlloc is cumulative bytes allocated for heap objects.
	TotalAlloc uint64 `json:"totalAlloc"`
	// Sys is the total bytes of memory obtained from the OS.
	Sys uint64 `json:"sys"`
	// Lookups is the number of pointer lookups performed by the
	// runtime.
	Lookups uint64 `json:"lookups"`
	// Mallocs is the cumulative count of heap objects allocated.
	// The number of live objects is Mallocs - Frees.
	Mallocs uint64 `json:"mallocs"`
	// Frees is the cumulative count of heap objects freed.
	Frees uint64 `json:"frees"`
	// HeapAlloc is bytes of allocated heap objects.
	HeapAlloc uint64 `json:"heapAlloc"`
	// HeapSys is bytes of heap memory obtained from the OS.
	HeapSys uint64 `json:"heapSys"`
	// HeapIdle is bytes in idle (unused) spans.
	HeapIdle uint64 `json:"heapIdle"`
	// HeapInuse is bytes in in-use spans.
	HeapInuse uint64 `json:"heapInuse"`
	// HeapReleased is bytes of physical memory returned to the OS.
	HeapReleased uint64 `json:"heapReleased"`
	// HeapObjects is the number of allocated heap objects.
	HeapObjects uint64 `json:"heapObjects"`
	// NumGC is the number of completed GC cycles.
	NumGC uint32 `json:"numGC"`
}

MemoryStatistics is a JSON-able version of runtime.MemStats

func (*MemoryStatistics) ToMap

func (ms *MemoryStatistics) ToMap() map[string]interface{}

ToMap converts to a map[string]interface{}.

func (*MemoryStatistics) Update

func (ms *MemoryStatistics) Update()

Update takes the most recent stats from runtime.

type MetricsManager

type MetricsManager struct {
	sync.RWMutex

	Segment analytics.Client   `json:"-"`
	Logger  logrus.FieldLogger `json:"-"`

	ID               string            `json:"id"`
	UpTime           int64             `json:"uptime"`
	MemoryStatistics *MemoryStatistics `json:"memory"`
	BuildVersion     string            `json:"buildVersion"`
	BuildHash        string            `json:"buildHash"`
	BuildTime        string            `json:"buildTime"`
	InstanceID       string            `json:"instanceId"`
	ServiceName      string            `json:"serviceName"`
	// contains filtered or unexported fields
}

MetricsManager helps with providing context on metrics.

func NewMetricsManager

func NewMetricsManager(
	id string,
	enable bool,
	writeKey string,
	whitelistedURLs []string,
	logger logrus.FieldLogger,
	serviceName string,
	sampling float64,
	endpoint string,
) *MetricsManager

NewMetricsManager returns a new metrics manager.

func NewMetricsManagerWithConfig

func NewMetricsManagerWithConfig(
	id string,
	enable bool,
	writeKey string,
	whitelistedURLs []string,
	logger logrus.FieldLogger,
	serviceName string,
	sampling float64,
	config analytics.Config,
) *MetricsManager

NewMetricsManagerWithConfig returns a new metrics manager and allows configuration.

func (*MetricsManager) CommitMemoryStatistics

func (sw *MetricsManager) CommitMemoryStatistics()

CommitMemoryStatistics commits memory statistics to segment.

func (*MetricsManager) RegisterSegment

func (sw *MetricsManager) RegisterSegment(version, hash, buildTime string)

RegisterSegment enables reporting to segment.

func (*MetricsManager) ServeHTTP

func (sw *MetricsManager) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)

ServeHTTP is a middleware for sending meta information to segment.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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