All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.export.MetricProducer Maven / Gradle / Ivy

There is a newer version: 5.0.7
Show newest version
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.export;

import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.data.MetricData;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.export.CollectionRegistration;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.export.MetricReader;
import java.util.Collection;
import java.util.Collections;
import javax.annotation.concurrent.ThreadSafe;

/**
 * {@code MetricProducer} is the interface that is used to make metric data available to the {@link
 * MetricReader}s. Implementations should be stateful, in that each call to {@link
 * #collectAllMetrics()} will return any metric generated since the last call was made.
 *
 * 

Implementations must be thread-safe. * *

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. */ @ThreadSafe public interface MetricProducer extends CollectionRegistration { /** Cast the registration to a {@link MetricProducer}. */ static MetricProducer asMetricProducer(CollectionRegistration registration) { if (!(registration instanceof MetricProducer)) { throw new IllegalArgumentException( "unrecognized CollectionRegistration, custom MetricReader implementations are not currently supported"); } return (MetricProducer) registration; } /** Return a noop {@link MetricProducer}. */ static MetricProducer noop() { return Collections::emptyList; } /** * Returns a collection of produced {@link MetricData}s to be exported. This will only be those * metrics that have been produced since the last time this method was called. * * @return a collection of produced {@link MetricData}s to be exported. */ Collection collectAllMetrics(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy