Documentation ¶
Index ¶
Constants ¶
View Source
const BatchSize = 12
BatchSize is samples per batch; this was choose by benchmarking all sizes from 1 to 128.
Variables ¶
View Source
var BenchmarkLabels = labels.Labels{ {Name: model.MetricNameLabel, Value: "container_cpu_usage_seconds_total"}, {Name: "beta_kubernetes_io_arch", Value: "amd64"}, {Name: "beta_kubernetes_io_instance_type", Value: "c3.somesize"}, {Name: "beta_kubernetes_io_os", Value: "linux"}, {Name: "container_name", Value: "some-name"}, {Name: "cpu", Value: "cpu01"}, {Name: "failure_domain_beta_kubernetes_io_region", Value: "somewhere-1"}, {Name: "failure_domain_beta_kubernetes_io_zone", Value: "somewhere-1b"}, {Name: "id", Value: "/kubepods/burstable/pod6e91c467-e4c5-11e7-ace3-0a97ed59c75e/a3c8498918bd6866349fed5a6f8c643b77c91836427fb6327913276ebc6bde28"}, {Name: "image", Value: "registry/organisation/name@sha256:dca3d877a80008b45d71d7edc4fd2e44c0c8c8e7102ba5cbabec63a374d1d506"}, {Name: "instance", Value: "ip-111-11-1-11.ec2.internal"}, {Name: "job", Value: "kubernetes-cadvisor"}, {Name: "kubernetes_io_hostname", Value: "ip-111-11-1-11"}, {Name: "monitor", Value: "prod"}, {Name: "name", Value: "k8s_some-name_some-other-name-5j8s8_kube-system_6e91c467-e4c5-11e7-ace3-0a97ed59c75e_0"}, {Name: "namespace", Value: "kube-system"}, {Name: "pod_name", Value: "some-other-name-5j8s8"}, }
BenchmarkLabels is a real example from Kubernetes' embedded cAdvisor metrics, lightly obfuscated
Functions ¶
This section is empty.
Types ¶
type Batch ¶ added in v1.18.0
type Batch struct { Timestamps [BatchSize]int64 Values [BatchSize]float64 Histograms [BatchSize]*histogram.Histogram FloatHistograms [BatchSize]*histogram.FloatHistogram Index int Length int ValType chunkenc.ValueType }
Batch is a sorted set of (timestamp, value) pairs. They are intended to be small, and passed by value. Value can vary depending on the chunk value type.
type Chunk ¶
type Chunk struct { // These fields will be in all chunks, including old ones. From model.Time `json:"from"` Through model.Time `json:"through"` Metric labels.Labels `json:"metric"` Data chunkenc.Chunk `json:"-"` }
Chunk contains encoded timeseries data
func (*Chunk) NewIterator ¶ added in v1.18.0
type Iterator ¶ added in v1.18.0
type Iterator interface { // Scans the next value in the chunk. Directly after the iterator has // been created, the next value is the first value in the // chunk. Otherwise, it is the value following the last value scanned or // found (by one of the Find... methods). Returns chunkenc.ValNoe if either // the end of the chunk is reached or an error has occurred. Scan() chunkenc.ValueType // Finds the oldest value at or after the provided time and returns the value type. // Returns chunkenc.ValNone if either the chunk contains no value at or after // the provided time, or an error has occurred. FindAtOrAfter(model.Time) chunkenc.ValueType // Returns a batch of the provisded size; NB not idempotent! Should only be called // once per Scan. Batch(size int, valType chunkenc.ValueType) Batch // Returns the last error encountered. In general, an error signals data // corruption in the chunk and requires quarantining. Err() error }
Iterator enables efficient access to the content of a chunk. It is generally not safe to use an Iterator concurrently with or after chunk mutation.
Click to show internal directories.
Click to hide internal directories.