001package io.prometheus.metrics.model.snapshots;
002
003import io.prometheus.metrics.annotations.StableApi;
004
005/**
006 * Thrown when a collector tries to create a {@link MetricSnapshot} where multiple data points have
007 * the same labels (same label names and label values).
008 */
009@StableApi
010public class DuplicateLabelsException extends IllegalArgumentException {
011
012  private static final long serialVersionUID = 0L;
013
014  private final MetricMetadata metadata;
015  private final Labels labels;
016
017  public DuplicateLabelsException(MetricMetadata metadata, Labels labels) {
018    super("Duplicate labels for metric \"" + metadata.getName() + "\": " + labels);
019    this.metadata = metadata;
020    this.labels = labels;
021  }
022
023  public MetricMetadata getMetadata() {
024    return metadata;
025  }
026
027  public Labels getLabels() {
028    return labels;
029  }
030}