in prometheus-to-sd/translator/translator.go [287:320]
func translateOne(config *config.CommonConfig,
name string,
mType dto.MetricType,
m *dto.Metric,
start time.Time,
end time.Time,
cache *MetricDescriptorCache) *v3.TimeSeries {
interval := &v3.TimeInterval{
EndTime: timestamppb.New(end.UTC()),
}
metricKind := extractMetricKind(mType)
if metricKind == metric.MetricDescriptor_CUMULATIVE {
interval.StartTime = timestamppb.New(start.UTC())
}
valueType := extractValueType(mType, cache.getMetricDescriptor(name))
point := &v3.Point{
Interval: interval,
Value: &v3.TypedValue{},
}
setValue(mType, valueType, m, point)
mr := getMonitoredResourceFromLabels(config, m.GetLabel())
glog.V(4).Infof("MonitoredResource to write: %v", mr)
return &v3.TimeSeries{
Metric: &metric.Metric{
Labels: getMetricLabels(config, m.GetLabel()),
Type: getMetricType(config, name),
},
Resource: getMonitoredResourceFromLabels(config, m.GetLabel()),
MetricKind: metricKind,
ValueType: valueType,
Points: []*v3.Point{point},
}
}