juicedata/juicefs · error

convert metrics: %w

Error message

convert metrics: %w

What it means

Returned by RemoteWriter.Push in the Java SDK when converting gathered Prometheus metric families into TimeSeries fails — unexpected metric types or malformed label/sample data. The wrapped error identifies the offending conversion step.

Source

Thrown at sdk/java/libjfs/remote_write.go:153

		}
	}
	if err != nil || len(mfs) == 0 {
		switch rw.errorHandling {
		case AbortOnError:
			return err
		case ContinueOnError:
			if rw.logger != nil {
				rw.logger.Println("continue on error:", err)
			}
		default:
			return err
		}
	}

	// Convert metrics to TimeSeries
	tsList, err := rw.ConvertMetricsToTimeSeries(mfs)
	if err != nil {
		return fmt.Errorf("convert metrics: %w", err)
	}

	if len(tsList) == 0 {
		return nil // No samples to push
	}

	// Send to remote write endpoint
	wr := &prompb.WriteRequest{Timeseries: tsList}
	data, err := wr.Marshal()
	if err != nil {
		return fmt.Errorf("marshal protobuf: %w", err)
	}

	compressed := snappy.Encode(nil, data)
	req, err := http.NewRequest("POST", rw.url, bytes.NewReader(compressed))
	if err != nil {
		return fmt.Errorf("create request: %w", err)
	}

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check that registered metrics use standard Prometheus types with valid names/labels
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at sdk/java/libjfs/remote_write.go:153 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/21b3f91740bc3730. Report an issue: GitHub.