in exporter/collector/metrics.go [1291:1329]
func (m *metricMapper) gaugePointToTimeSeries(
resource *monitoredrespb.MonitoredResource,
extraLabels labels,
metric pmetric.Metric,
_ pmetric.Gauge,
point pmetric.NumberDataPoint,
) []*monitoringpb.TimeSeries {
if point.Flags().NoRecordedValue() {
// Drop points without a value.
return nil
}
t, err := m.metricNameToType(metric.Name(), metric)
if err != nil {
m.obs.log.Debug("Unable to get metric type (i.e. name) for gauge metric.", zap.Error(err), zap.Any("metric", metric))
return nil
}
metricKind := metricpb.MetricDescriptor_GAUGE
value, valueType := m.numberDataPointToValue(point, metricKind, metric.Unit())
return []*monitoringpb.TimeSeries{{
Resource: resource,
Unit: metric.Unit(),
MetricKind: metricKind,
ValueType: valueType,
Points: []*monitoringpb.Point{{
Interval: &monitoringpb.TimeInterval{
EndTime: timestamppb.New(point.Timestamp().AsTime()),
},
Value: value,
}},
Metric: &metricpb.Metric{
Type: t,
Labels: mergeLabels(
attributesToLabels(point.Attributes()),
extraLabels,
),
},
}}
}