001package io.prometheus.client.dropwizard.samplebuilder; 002 003import io.prometheus.client.Collector; 004 005import java.util.List; 006 007/** 008 * SampleBuilder defines the action of creating a {@link io.prometheus.client.Collector.MetricFamilySamples.Sample} for the given parameters. 009 */ 010public interface SampleBuilder { 011 012 /** 013 * Creates a new {@link io.prometheus.client.Collector.MetricFamilySamples.Sample} for the given parameters. 014 * 015 * @param dropwizardName Metric name coming from Dropwizard. 016 * @param nameSuffix Optional suffix to add. 017 * @param additionalLabelNames Optional additional label names. Needs to have same size as additionalLabelValues. 018 * @param additionalLabelValues Optional additional label values. Needs to have same size as additionalLabelNames. 019 * @param value Metric value 020 * @return A new {@link io.prometheus.client.Collector.MetricFamilySamples.Sample}. 021 */ 022 Collector.MetricFamilySamples.Sample createSample(String dropwizardName, String nameSuffix, List<String> additionalLabelNames, List<String> additionalLabelValues, double value); 023}