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

Function ValidateMetadata

pkg/util/validation/validate.go:344–374  ·  view source on GitHub ↗

ValidateMetadata returns an err if a metric metadata is invalid.

(validateMetrics *ValidateMetrics, cfg *Limits, userID string, metadata *cortexpb.MetricMetadata)

Source from the content-addressed store, hash-verified

342
343// ValidateMetadata returns an err if a metric metadata is invalid.
344func ValidateMetadata(validateMetrics *ValidateMetrics, cfg *Limits, userID string, metadata *cortexpb.MetricMetadata) error {
345 if cfg.EnforceMetadataMetricName && metadata.GetMetricFamilyName() == "" {
346 validateMetrics.DiscardedMetadata.WithLabelValues(missingMetricName, userID).Inc()
347 return httpgrpc.Errorf(http.StatusBadRequest, errMetadataMissingMetricName)
348 }
349
350 maxMetadataValueLength := cfg.MaxMetadataLength
351 var reason string
352 var cause string
353 var metadataType string
354 if len(metadata.GetMetricFamilyName()) > maxMetadataValueLength {
355 metadataType = typeMetricName
356 reason = metricNameTooLong
357 cause = metadata.GetMetricFamilyName()
358 } else if len(metadata.Help) > maxMetadataValueLength {
359 metadataType = typeHelp
360 reason = helpTooLong
361 cause = metadata.Help
362 } else if len(metadata.Unit) > maxMetadataValueLength {
363 metadataType = typeUnit
364 reason = unitTooLong
365 cause = metadata.Unit
366 }
367
368 if reason != "" {
369 validateMetrics.DiscardedMetadata.WithLabelValues(reason, userID).Inc()
370 return httpgrpc.Errorf(http.StatusBadRequest, errMetadataTooLong, metadataType, cause, metadata.GetMetricFamilyName())
371 }
372
373 return nil
374}
375
376func ValidateNativeHistogram(validateMetrics *ValidateMetrics, limits *Limits, userID string, ls []cortexpb.LabelAdapter, histogramSample cortexpb.Histogram) (cortexpb.Histogram, error) {
377 // sample size validation for native histogram

Callers 2

prepareMetadataKeysMethod · 0.92
TestValidateMetadataFunction · 0.85

Calls 2

GetMetricFamilyNameMethod · 0.80
IncMethod · 0.45

Tested by 1

TestValidateMetadataFunction · 0.68