func()

in plugins/runtimemetrics/registers.go [194:223]


func (m *meterInfo) updateMetricValue(sample original_metrics.Sample) {
	if !m.isHistogram {
		if v, ok := m.readingFloat64(sample); ok {
			m.gaugeValue = v
		}
		return
	}

	m.initHistogramIfNeeds(sample)
	if m.histogramMetric == nil || m.latestHistogramValue == nil {
		return
	}
	histogram, ok := m.readingHistogram(sample)
	if !ok {
		return
	}
	for i, val := range histogram.Counts {
		if i < m.histogramStartInx {
			continue
		}
		if i >= len(m.latestHistogramValue) {
			break
		}
		newestValue := int64(val)
		if add := newestValue - m.latestHistogramValue[i]; add > 0 {
			m.histogramMetric.ObserveWithCount(histogram.Buckets[i]*float64(m.histogramMultiple), add)
			m.latestHistogramValue[i] = newestValue
		}
	}
}