Documentation ¶
Overview ¶
Package types contains miscellaneous structs and interfaces used throughout tsmon. They live here to avoid circular dependencies between other packages.
Index ¶
Constants ¶
const ( Unknown = "" Seconds = "s" Milliseconds = "ms" Microseconds = "us" Nanoseconds = "ns" Bits = "B" Bytes = "By" Kilobytes = "kBy" // 1000 bytes (not 1024). Megabytes = "MBy" // 1e6 (1,000,000) bytes. Gigabytes = "GBy" // 1e9 (1,000,000,000) bytes. Kibibytes = "kiBy" // 1024 bytes. Mebibytes = "MiBy" // 1024^2 (1,048,576) bytes. Gibibytes = "GiBy" // 1024^3 (1,073,741,824) bytes. // * Extended Units AmpUnit = "A" MilliampUnit = "mA" DegreeCelsiusUnit = "Cel" )
Units of metrics data.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cell ¶
type Cell struct { MetricInfo MetricMetadata CellData }
Cell is the smallest unit of data recorded by tsmon. Metrics can be thought of as multi-dimensional maps (with fields defining the dimensions) - a Cell is one value in that map, with information about its fields and its type.
type CellData ¶
type CellData struct { FieldVals []interface{} Target Target ResetTime time.Time Value interface{} }
CellData contains the value of a single cell.
type DistributionMetric ¶
type DistributionMetric interface { Metric Bucketer() *distribution.Bucketer }
DistributionMetric is the low-level interface provided by all distribution metrics. It has a Bucketer which is responsible for assigning buckets to samples. Concrete types are defined in the "metrics" package.
type Metric ¶
type Metric interface { Info() MetricInfo Metadata() MetricMetadata // SetFixedResetTime overrides the reset time for this metric. Usually cells // take the current time when they're first assigned a value, but it can be // useful to override the reset time when tracking an external counter. SetFixedResetTime(t time.Time) }
Metric is the low-level interface provided by all metrics. Concrete types are defined in the "metrics" package.
type MetricDataUnits ¶
type MetricDataUnits string
MetricDataUnits are enums for the units of metrics data.
func (MetricDataUnits) IsSpecified ¶
func (units MetricDataUnits) IsSpecified() bool
IsSpecified returns true if a unit annotation has been specified for a given metric.
type MetricInfo ¶
type MetricInfo struct { Name string Description string Fields []field.Field ValueType ValueType TargetType TargetType }
MetricInfo contains the definition of a metric.
type MetricMetadata ¶
type MetricMetadata struct {
Units MetricDataUnits // the unit of recorded data for a given metric.
}
MetricMetadata contains user-provided metadata for a metric.
type Target ¶
type Target interface { // TODO(1026140): the hash and proto of a Target object should be created // at the time of the object creation. PopulateProto(d *pb.MetricsCollection) Hash() uint64 Clone() Target Type() TargetType }
A Target knows how to put information about itself in a MetricsData message.
type TargetType ¶
type TargetType struct { // Name is the name of the TargeType that can be given to --target-type // command line option. Name string // Type is the reflect.Type of the Target struct. Type reflect.Type }
TargetType represents the type of a Target, which identifies a metric with the name.
A metric is identified by (metric.info.name, metric.info.target_type).
func (TargetType) String ¶
func (tt TargetType) String() string
type ValueType ¶
type ValueType int
ValueType is an enum for the type of a metric.
const ( NonCumulativeIntType ValueType = iota CumulativeIntType NonCumulativeFloatType CumulativeFloatType StringType BoolType NonCumulativeDistributionType CumulativeDistributionType )
Types of metric values.
func (ValueType) IsCumulative ¶
IsCumulative returns true if this is a cumulative metric value type.