import "go.chromium.org/luci/common/tsmon/types"
Package types contains miscellaneous structs and interfaces used throughout tsmon. They live here to avoid circular dependencies between other packages.
cell.go doc.go metric.go metric_data_units.go target.go value_type.go
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.
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 struct { FieldVals []interface{} Target Target ResetTime time.Time Value interface{} }
CellData contains the value of a single cell.
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 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.
MetricDataUnits are enums for the units of metrics data.
func (units MetricDataUnits) IsSpecified() bool
IsSpecified returns true if a unit annotation has been specified for a given metric.
type MetricInfo struct { Name string Description string Fields []field.Field ValueType ValueType TargetType TargetType }
MetricInfo contains the definition of a metric.
type MetricMetadata struct { Units MetricDataUnits // the unit of recorded data for a given metric. }
MetricMetadata contains user-provided metadata for a metric.
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 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 (tt TargetType) String() string
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.
IsCumulative returns true if this is a cumulative metric value type.
Package types imports 6 packages (graph) and is imported by 50 packages. Updated 2021-01-27. Refresh now. Tools for package owners.