Search in sources :

Example 36 with Sample

use of io.prometheus.client.Collector.MetricFamilySamples.Sample in project promregator by promregator.

the class GenericMetricFamilySamplesPrefixRewriterTest method testPrefixesProperly.

@Test
public void testPrefixesProperly() {
    GenericMetricFamilySamplesPrefixRewriter subject = new GenericMetricFamilySamplesPrefixRewriter("prefix");
    List<Sample> samples = new LinkedList<>();
    Sample s = new Sample("dummyname", Arrays.asList(new String[] { "labelName" }), Arrays.asList(new String[] { "labelValue" }), 1.0);
    samples.add(s);
    MetricFamilySamples mfs = new MetricFamilySamples("dummyname", Type.GAUGE, "dummyHelp", samples);
    HashMap<String, MetricFamilySamples> map = new HashMap<>();
    map.put("metricName", mfs);
    HashMap<String, MetricFamilySamples> result = subject.determineEnumerationOfMetricFamilySamples(map);
    MetricFamilySamples mfsResult = result.get("prefix_metricName");
    Assert.assertNotNull(mfsResult);
    Assert.assertEquals("prefix_dummyname", mfsResult.name);
    Assert.assertEquals(1, mfsResult.samples.size());
    Sample sampleResult = mfsResult.samples.get(0);
    ;
    Assert.assertEquals("prefix_dummyname", sampleResult.name);
}
Also used : HashMap(java.util.HashMap) Sample(io.prometheus.client.Collector.MetricFamilySamples.Sample) MetricFamilySamples(io.prometheus.client.Collector.MetricFamilySamples) LinkedList(java.util.LinkedList) Test(org.junit.Test)

Example 37 with Sample

use of io.prometheus.client.Collector.MetricFamilySamples.Sample in project promregator by promregator.

the class MergableMetricFamilySamplesTest method testStraightFowardHashMap.

@Test
public void testStraightFowardHashMap() {
    MergableMetricFamilySamples subject = new MergableMetricFamilySamples();
    List<Sample> samples = new LinkedList<>();
    MetricFamilySamples mfs = new MetricFamilySamples("dummy", Type.COUNTER, "somehelp", samples);
    List<MetricFamilySamples> list = new LinkedList<>();
    list.add(mfs);
    HashMap<String, MetricFamilySamples> hmmfs = new HashMap<>();
    hmmfs.put("dummy", mfs);
    subject.merge(hmmfs);
    Enumeration<MetricFamilySamples> returnedEMFS = subject.getEnumerationMetricFamilySamples();
    Assert.assertTrue(returnedEMFS.hasMoreElements());
    MetricFamilySamples element = returnedEMFS.nextElement();
    Assert.assertFalse(returnedEMFS.hasMoreElements());
    Assert.assertEquals(mfs, element);
    HashMap<String, MetricFamilySamples> returnedHMMFS = subject.getEnumerationMetricFamilySamplesInHashMap();
    Assert.assertEquals(1, returnedHMMFS.size());
    Assert.assertEquals(mfs, returnedHMMFS.get("dummy"));
}
Also used : HashMap(java.util.HashMap) Sample(io.prometheus.client.Collector.MetricFamilySamples.Sample) MetricFamilySamples(io.prometheus.client.Collector.MetricFamilySamples) LinkedList(java.util.LinkedList) Test(org.junit.Test)

Example 38 with Sample

use of io.prometheus.client.Collector.MetricFamilySamples.Sample in project promregator by promregator.

the class MetricFamilySamplesEnricherTest method testSimple.

@Test
public void testSimple() {
    AbstractMetricFamilySamplesEnricher subject = new CFMetricFamilySamplesEnricher("testOrgName", "testSpaceName", "testComponent", "testInstance:42");
    List<Sample> samples = new LinkedList<>();
    Sample s = new Sample("dummyname", Arrays.asList(new String[] { "labelName" }), Arrays.asList(new String[] { "labelValue" }), 1.0);
    samples.add(s);
    MetricFamilySamples mfs = new MetricFamilySamples("dummyname", Type.GAUGE, "dummyHelp", samples);
    HashMap<String, MetricFamilySamples> map = new HashMap<>();
    map.put("metricName", mfs);
    HashMap<String, MetricFamilySamples> result = subject.determineEnumerationOfMetricFamilySamples(map);
    Assert.assertEquals(1, result.size());
    MetricFamilySamples testMFS = result.get("metricName");
    Assert.assertNotNull(testMFS);
    Assert.assertEquals(1, testMFS.samples.size());
    Sample testSample = testMFS.samples.get(0);
    Assert.assertNotNull(testSample);
    List<String> labelNamesList = testSample.labelNames;
    String[] labelNames = labelNamesList.toArray(new String[0]);
    Assert.assertEquals("labelName", labelNames[0]);
    Assert.assertEquals("org_name", labelNames[1]);
    Assert.assertEquals("space_name", labelNames[2]);
    Assert.assertEquals("app_name", labelNames[3]);
    Assert.assertEquals("cf_instance_id", labelNames[4]);
    Assert.assertEquals("cf_instance_number", labelNames[5]);
    List<String> labelValuesList = testSample.labelValues;
    String[] labelValues = labelValuesList.toArray(new String[0]);
    Assert.assertEquals("labelValue", labelValues[0]);
    Assert.assertEquals("testOrgName", labelValues[1]);
    Assert.assertEquals("testSpaceName", labelValues[2]);
    Assert.assertEquals("testComponent", labelValues[3]);
    Assert.assertEquals("testInstance:42", labelValues[4]);
    Assert.assertEquals("42", labelValues[5]);
}
Also used : HashMap(java.util.HashMap) Sample(io.prometheus.client.Collector.MetricFamilySamples.Sample) MetricFamilySamples(io.prometheus.client.Collector.MetricFamilySamples) LinkedList(java.util.LinkedList) Test(org.junit.Test)

Example 39 with Sample

use of io.prometheus.client.Collector.MetricFamilySamples.Sample in project java-chassis by ServiceComb.

the class PrometheusPublisher method describe.

@Override
public List<MetricFamilySamples> describe() {
    List<MetricFamilySamples> familySamples = new ArrayList<>();
    if (globalRegistry == null) {
        return familySamples;
    }
    List<Sample> samples = new ArrayList<>();
    for (Registry registry : globalRegistry.getRegistries()) {
        for (Meter meter : registry) {
            meter.measure().forEach(measurement -> {
                Sample sample = convertMeasurementToSample(measurement);
                samples.add(sample);
            });
        }
    }
    familySamples.add(new MetricFamilySamples("ServiceComb_Metrics", Type.UNTYPED, "ServiceComb Metrics", samples));
    return familySamples;
}
Also used : Meter(com.netflix.spectator.api.Meter) Sample(io.prometheus.client.Collector.MetricFamilySamples.Sample) ArrayList(java.util.ArrayList) CollectorRegistry(io.prometheus.client.CollectorRegistry) GlobalRegistry(org.apache.servicecomb.foundation.metrics.registry.GlobalRegistry) Registry(com.netflix.spectator.api.Registry)

Example 40 with Sample

use of io.prometheus.client.Collector.MetricFamilySamples.Sample in project java-chassis by ServiceComb.

the class PrometheusPublisher method convertMeasurementToSample.

protected Sample convertMeasurementToSample(Measurement measurement) {
    String prometheusName = measurement.id().name().replace(".", "_");
    List<String> labelNames = new ArrayList<>();
    List<String> labelValues = new ArrayList<>();
    labelNames.add("appId");
    labelValues.add(RegistrationManager.INSTANCE.getAppId());
    for (Tag tag : measurement.id().tags()) {
        labelNames.add(tag.key());
        labelValues.add(tag.value());
    }
    return new Sample(prometheusName, labelNames, labelValues, measurement.value());
}
Also used : Sample(io.prometheus.client.Collector.MetricFamilySamples.Sample) ArrayList(java.util.ArrayList) Tag(com.netflix.spectator.api.Tag)

Aggregations

Sample (io.prometheus.client.Collector.MetricFamilySamples.Sample)44 MetricFamilySamples (io.prometheus.client.Collector.MetricFamilySamples)34 Test (org.junit.Test)32 LinkedList (java.util.LinkedList)27 Collector (io.prometheus.client.Collector)18 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 Type (io.prometheus.client.Collector.Type)2 Collector.doubleToGoString (io.prometheus.client.Collector.doubleToGoString)2 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 Meter (com.netflix.spectator.api.Meter)1 Registry (com.netflix.spectator.api.Registry)1 Tag (com.netflix.spectator.api.Tag)1 LabelValue (io.opencensus.metrics.LabelValue)1 Distribution (io.opencensus.metrics.export.Distribution)1 BucketOptions (io.opencensus.metrics.export.Distribution.BucketOptions)1 ExplicitOptions (io.opencensus.metrics.export.Distribution.BucketOptions.ExplicitOptions)1 MetricDescriptor (io.opencensus.metrics.export.MetricDescriptor)1 Summary (io.opencensus.metrics.export.Summary)1 ValueAtPercentile (io.opencensus.metrics.export.Summary.Snapshot.ValueAtPercentile)1