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