messages

package
v0.0.0-...-fe13f99 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2018 License: Apache-2.0 Imports: 4 Imported by: 5

Documentation

Overview

Package messages provides types for JSON and go rpc.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Distribution

type Distribution struct {
	// Sum of the values
	Sum float64 `json:"sum"`
	// Total count of values
	Count uint64 `json:"count"`
	// The number of values within each range. Length is always one more
	// than length of UpperLimis field in the EndpointMetric structure
	Counts []uint64 `json:"counts"`
	// Count of rollovers starting at 1
	RollOverCount uint64 `json:"rollOverCount"`
}

Distribution represents a distribution of values

The Value field of the TimestampedValue struct will hold a *Distribution for distributions.

Distribution instances should be treated as immutable.

type EndpointMetric

type EndpointMetric struct {
	// The hostname, appname combination identify the endpoint
	HostName string `json:"hostName,omitempty"`
	AppName  string `json:"appName,omitempty"`

	Path        string               `json:"path,omitempty"`
	Description string               `json:"description"`
	Unit        units.Unit           `json:"unit,omitempty"`
	Kind        types.Type           `json:"kind"`
	SubType     types.Type           `json:"subType,omitempty"`
	Bits        int                  `json:"bits,omitempty"`
	Values      TimestampedValueList `json:"values"`

	// This field is true if this distribution is not cumulative.
	IsNotCumulative bool `json:"isNotCumulative,omitempty"`
	// The upper limits for the distribution buckets.
	UpperLimits []float64 `json:"upperLimits,omitempty"`
}

EndpointMetric represents the values of a metric on an endpoint

type EndpointMetricList

type EndpointMetricList []*EndpointMetric

EndpointMetricList represents a list of EndpointMetric. Client should treat EndpointMetricList instances as immutable. In particular, clients should not modify contained EndpointMetric instances in place.

type Error

type Error struct {
	HostName  string `json:"hostName"`
	Timestamp string `json:"timestamp"`
	Error     string `json:"error"`
}

Error represents an error retrieving metrics from a particular endpoint

type ErrorList

type ErrorList []*Error

ErrorList represents a list of Error instances. Clients should treat ErrorList instances as immutable.

type LatestMetric

type LatestMetric struct {
	// The hostname, appname combination identify the endpoint
	HostName string `json:"hostName,omitempty"`
	AppName  string `json:"appName,omitempty"`

	Path        string     `json:"path,omitempty"`
	Description string     `json:"description"`
	Unit        units.Unit `json:"unit,omitempty"`
	Kind        types.Type `json:"kind"`
	SubType     types.Type `json:"subType,omitempty"`
	Bits        int        `json:"bits,omitempty"`
	// The timestamp of the value in seconds past Jan 1, 1970 GMT
	// For JSON this is a string like "123456789.987654321";
	// For GoRPC this is a time.Time instance.
	Timestamp interface{} `json:"timestamp"`
	// value stored here. The actual type stored depends on the Kind and
	// SubType fields
	Value interface{} `json:"value"`

	// This field is true if this distribution is not cumulative.
	IsNotCumulative bool `json:"isNotCumulative,omitempty"`
	// The upper limits for the distribution buckets.
	UpperLimits []float64 `json:"upperLimits,omitempty"`
}

type TimestampedValue

type TimestampedValue struct {
	// The timestamp of the value in seconds past Jan 1, 1970 GMT
	Timestamp string `json:"timestamp"`
	// value stored here. zero equivalent stored for inactive markers.
	// For lists, the zero equivalent is an empty list.
	// For distributions, the zero equivalent is nil *Distribution
	// or for JSON, None.
	Value interface{} `json:"value"`
	// True for real values, false for inactive markers. Used to
	// distinguish inactive markers from real 0 values.
	Active bool `json:"active"`
}

Timestamped value represents a single timestamped value. The type of value stored in the value field depends on the kind field of the enclosing EndpointMetric struct. See https://godoc.org/github.com/Symantec/tricorder/go/tricorder/messages#Metric for more detail.

type TimestampedValueList

type TimestampedValueList []*TimestampedValue

TimestampedValueList represents a list of TimestampedValue instances. Clients should treat TimestampedValueList instances as immutable. In particular, clients should not modify contained TimestampedValue instances in place.

Jump to

Keyboard shortcuts

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