juicedata/juicefs · error
extract samples: %w
Error message
extract samples: %w
What it means
Returned by ConvertMetricsToTimeSeries when expfmt.ExtractSamples fails to decode samples from the metric families — e.g. inconsistent label cardinality or histogram/summary fields that cannot produce samples. The wrapped error names the extraction failure.
Source
Thrown at sdk/java/libjfs/remote_write.go:204
return fmt.Errorf("send request: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode/100 != 2 {
return fmt.Errorf("remote_write failed: %s", resp.Status)
}
return nil
}
// ConvertMetricsToTimeSeries converts Prometheus metric families to TimeSeries.
func (rw *RemoteWriter) ConvertMetricsToTimeSeries(mfs []*dto.MetricFamily) ([]prompb.TimeSeries, error) {
now := model.Time(time.Now().UnixMilli())
samples, err := expfmt.ExtractSamples(&expfmt.DecodeOptions{
Timestamp: now,
}, mfs...)
if err != nil {
return nil, fmt.Errorf("extract samples: %w", err)
}
var tsList []prompb.TimeSeries
for _, sample := range samples {
// Convert model.Metric to prompb.Label slice
labels := make([]prompb.Label, 0, len(sample.Metric))
for name, value := range sample.Metric {
labels = append(labels, prompb.Label{
Name: string(name),
Value: string(value),
})
}
tsList = append(tsList, prompb.TimeSeries{
Labels: labels,
Samples: []prompb.Sample{{
Value: float64(sample.Value),
Timestamp: int64(sample.Timestamp),View on GitHub (pinned to c9a67b23e8)
Solutions
- Ensure exported metrics are well-formed (consistent labels, valid histograms)
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at sdk/java/libjfs/remote_write.go:204 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/91bdf91826b8b704.
Report an issue: GitHub.