MCPcopy Create free account
hub / github.com/cortexproject/cortex / convertToPromTS

Function convertToPromTS

pkg/util/push/otlp.go:184–216  ·  view source on GitHub ↗
(ctx context.Context, pmetrics pmetric.Metrics, cfg distributor.OTLPConfig, overrides *validation.Overrides, userID string, logger log.Logger)

Source from the content-addressed store, hash-verified

182}
183
184func convertToPromTS(ctx context.Context, pmetrics pmetric.Metrics, cfg distributor.OTLPConfig, overrides *validation.Overrides, userID string, logger log.Logger) ([]prompb.TimeSeries, []prompb.MetricMetadata, error) {
185 collector := newCollectingAppender()
186 promConverter := prometheusremotewrite.NewPrometheusConverter(collector)
187 settings := prometheusremotewrite.Settings{
188 AddMetricSuffixes: cfg.AddMetricSuffixes,
189 DisableTargetInfo: cfg.DisableTargetInfo,
190 AllowDeltaTemporality: cfg.AllowDeltaTemporality,
191 EnableTypeAndUnitLabels: overrides.EnableTypeAndUnitLabels(userID),
192 }
193
194 var annots annotations.Annotations
195 var err error
196
197 if cfg.ConvertAllAttributes {
198 annots, err = promConverter.FromMetrics(ctx, convertToMetricsAttributes(pmetrics), settings)
199 } else {
200 settings.PromoteResourceAttributes = prometheusremotewrite.NewPromoteResourceAttributes(config.OTLPConfig{
201 PromoteResourceAttributes: overrides.PromoteResourceAttributes(userID),
202 })
203 annots, err = promConverter.FromMetrics(ctx, pmetrics, settings)
204 }
205
206 ws, _ := annots.AsStrings("", 0, 0)
207 if len(ws) > 0 {
208 level.Warn(logger).Log("msg", "Warnings translating OTLP metrics to Prometheus write request", "warnings", ws)
209 }
210
211 if err != nil {
212 level.Warn(logger).Log("msg", "Error translating OTLP metrics to Prometheus write request", "err", err)
213 }
214
215 return collector.TimeSeries(), collector.Metadata(), err
216}
217
218func makeLabels(in []prompb.Label) []cortexpb.LabelAdapter {
219 builder := labels.NewBuilder(labels.EmptyLabels())

Calls 7

newCollectingAppenderFunction · 0.85
TimeSeriesMethod · 0.80
LogMethod · 0.45
MetadataMethod · 0.45