SigNoz/signoz · warning

metric metadata not found: %s

Error message

metric metadata not found: %s

What it means

Returned when the requested metric name has no entry in the resolved metadata map, i.e. SigNoz has no recorded type/temporality/unit for that metric. This is a plain lookup miss after GetUpdatedMetricsMetadata succeeded, so it indicates unknown or not-yet-indexed metric names rather than an infrastructure failure.

Source

Thrown at pkg/query-service/app/clickhouseReader/reader.go:3256

	metadataMap, apiError := r.GetUpdatedMetricsMetadata(ctx, orgID, metricName)
	if apiError != nil {
		r.logger.Error("Error in getting metric cached metadata", errorsV2.Attr(apiError))
		return nil, fmt.Errorf("error fetching metric metadata: %s", apiError.Err.Error())
	}

	// Defaults in case metadata is not found
	var (
		deltaExists bool
		isMonotonic bool
		temporality string
		description string
		metricType  string
		unit        string
	)

	metadata, ok := metadataMap[metricName]
	if !ok {
		return nil, fmt.Errorf("metric metadata not found: %s", metricName)
	}

	metricType = string(metadata.MetricType)
	temporality = string(metadata.Temporality)
	isMonotonic = metadata.IsMonotonic
	description = metadata.Description
	unit = metadata.Unit

	if temporality == string(v3.Delta) {
		deltaExists = true
	}
	// 2. Only for Histograms, get `le` buckets
	var leFloat64 []float64
	if metricType == string(v3.MetricTypeHistogram) {
		reductionEnabled := r.fl.BooleanOrEmpty(ctx, flagger.FeatureEnableMetricsReduction, featuretypes.NewFlaggerEvaluationContext(orgID))

		var query string
		if reductionEnabled {

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Verify the exact metric name spelling, including dots/underscores and case
  2. Confirm the metric exists: SELECT DISTINCT metric_name FROM signoz_metrics.time_series
  3. Wait for the metadata refresh interval and retry if the metric was just created
  4. If metadata is persistently missing, check the metrics metadata updater job / signoz_metrics_metadata table
Defensive patterns

Strategy: validation

Validate before calling

names, err := fetchMetricNames(ctx)
if !slices.Contains(names, metricName) {
    return fmt.Errorf("unknown metric %q", metricName)
}

Try / catch

if err != nil {
    if strings.Contains(err.Error(), "metric metadata not found") {
        // surface friendly message, suggest available metrics
    }
}

Prevention

When it happens

Trigger: Querying histogram buckets or similar metadata-dependent endpoints for a metric name that was never ingested, is misspelled, or was ingested so recently that the metadata cache/job hasn't picked it up.

Common situations: Typos in dashboard/widget metric names; querying immediately after a new metric is first emitted (metadata updater runs periodically); metrics from deleted/renamed instruments; environment mismatch (querying prod metric name in dev).

Related errors


AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28). Data as JSON: /api/errors/500cabd06cb3b5a5. Report an issue: GitHub.