本文整理匯總了Golang中github.com/square/metrics/api.Timerange.Slots方法的典型用法代碼示例。如果您正苦於以下問題:Golang Timerange.Slots方法的具體用法?Golang Timerange.Slots怎麽用?Golang Timerange.Slots使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/square/metrics/api.Timerange
的用法示例。
在下文中一共展示了Timerange.Slots方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: bucketsFromMetricPoints
func bucketsFromMetricPoints(metricPoints []metricPoint, resultField func(metricPoint) float64, timerange api.Timerange) [][]float64 {
buckets := make([][]float64, timerange.Slots())
for _, point := range metricPoints {
addMetricPoint(point, resultField, timerange, buckets)
}
return buckets
}
示例2: addMetricPoint
func addMetricPoint(metricPoint metricPoint, field func(metricPoint) float64, timerange api.Timerange, buckets [][]float64) bool {
value := field(metricPoint)
// The index to assign within the array is computed using the timestamp.
// It floors to the nearest index.
index := (metricPoint.Timestamp - timerange.Start()) / timerange.ResolutionMillis()
if index < 0 || index >= int64(timerange.Slots()) {
return false
}
buckets[index] = append(buckets[index], value)
return true
}
示例3: ToSeriesList
func (value ScalarValue) ToSeriesList(timerange api.Timerange) (api.SeriesList, error) {
series := make([]float64, timerange.Slots())
for i := range series {
series[i] = float64(value)
}
return api.SeriesList{
Series: []api.Timeseries{api.Timeseries{Values: series, TagSet: api.NewTagSet()}},
Timerange: timerange,
}, nil
}
示例4: processResult
func processResult(parsedResult queryResponse, timerange api.Timerange, sampler sampler) []float64 {
// buckets are each filled with from the points stored in result.Values, according to their timestamps.
buckets := bucketsFromMetricPoints(parsedResult.Values, sampler.fieldSelector, timerange)
// values will hold the final values to be returned as the series.
values := make([]float64, timerange.Slots())
for i, bucket := range buckets {
if len(bucket) == 0 {
values[i] = math.NaN()
continue
}
values[i] = sampler.bucketSampler(bucket)
}
return values
}
示例5: processResult
func processResult(
points []metricPoint,
timerange api.Timerange,
sampler sampler,
queryResolution Resolution) []float64 {
// buckets are each filled with from the points stored in `points`, according to their timestamps.
buckets := bucketsFromMetricPoints(points, sampler.fieldSelector, timerange)
// values will hold the final values to be returned as the series.
values := make([]float64, timerange.Slots())
for i, bucket := range buckets {
if len(bucket) == 0 {
values[i] = math.NaN()
continue
}
values[i] = sampler.bucketSampler(bucket)
}
// interpolate.
return values
}