func translateOne()

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},
	}
}