Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2018, OpenCensus Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.opencensus.metrics;
import io.opencensus.common.ExperimentalApi;
import io.opencensus.common.ToDoubleFunction;
import io.opencensus.common.ToLongFunction;
import io.opencensus.internal.Utils;
import java.util.List;
/**
* Creates and manages your application's set of metrics. The default implementation of this creates
* a {@link io.opencensus.metrics.export.MetricProducer} and registers it to the global {@link
* io.opencensus.metrics.export.MetricProducerManager}.
*
* @since 0.17
*/
@ExperimentalApi
public abstract class MetricRegistry {
/**
* This will be removed in 0.22.
*
* @deprecated since 0.20, use {@link #addLongGauge(String, MetricOptions)}.
* @since 0.17
*/
@Deprecated
public LongGauge addLongGauge(
String name, String description, String unit, List labelKeys) {
return addLongGauge(
name,
MetricOptions.builder()
.setDescription(description)
.setUnit(unit)
.setLabelKeys(labelKeys)
.build());
}
/**
* Builds a new long gauge to be added to the registry. This is a more convenient form when you
* want to manually increase and decrease values as per your service requirements.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code LongGauge}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.20
*/
@ExperimentalApi
public abstract LongGauge addLongGauge(String name, MetricOptions options);
/**
* This will be removed in 0.22.
*
* @deprecated since 0.20, use {@link #addDoubleGauge(String, MetricOptions)}.
* @since 0.17
*/
@Deprecated
public DoubleGauge addDoubleGauge(
String name, String description, String unit, List labelKeys) {
return addDoubleGauge(
name,
MetricOptions.builder()
.setDescription(description)
.setUnit(unit)
.setLabelKeys(labelKeys)
.build());
}
/**
* Builds a new double gauge to be added to the registry. This is a more convenient form when you
* want to manually increase and decrease values as per your service requirements.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DoubleGauge}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.20
*/
@ExperimentalApi
public abstract DoubleGauge addDoubleGauge(String name, MetricOptions options);
/**
* This will be removed in 0.22.
*
* @deprecated since 0.20, use {@link #addDerivedLongGauge(String, MetricOptions)}.
* @since 0.17
*/
@Deprecated
public DerivedLongGauge addDerivedLongGauge(
String name, String description, String unit, List labelKeys) {
return addDerivedLongGauge(
name,
MetricOptions.builder()
.setDescription(description)
.setUnit(unit)
.setLabelKeys(labelKeys)
.build());
}
/**
* Builds a new derived long gauge to be added to the registry. This is a more convenient form
* when you want to define a gauge by executing a {@link ToLongFunction} on an object.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DerivedLongGauge}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.17
*/
@ExperimentalApi
public abstract DerivedLongGauge addDerivedLongGauge(String name, MetricOptions options);
/**
* This will be removed in 0.22.
*
* @deprecated since 0.20, use {@link #addDerivedDoubleGauge(String, MetricOptions)}.
* @since 0.17
*/
@Deprecated
public DerivedDoubleGauge addDerivedDoubleGauge(
String name, String description, String unit, List labelKeys) {
return addDerivedDoubleGauge(
name,
MetricOptions.builder()
.setDescription(description)
.setUnit(unit)
.setLabelKeys(labelKeys)
.build());
}
/**
* Builds a new derived double gauge to be added to the registry. This is a more convenient form
* when you want to define a gauge by executing a {@link ToDoubleFunction} on an object.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DerivedDoubleGauge}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.17
*/
@ExperimentalApi
public abstract DerivedDoubleGauge addDerivedDoubleGauge(String name, MetricOptions options);
/**
* Builds a new long cumulative to be added to the registry. This is a more convenient form when
* you want to manually increase values as per your service requirements.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code LongCumulative}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.21
*/
@ExperimentalApi
public abstract LongCumulative addLongCumulative(String name, MetricOptions options);
/**
* Builds a new double cumulative to be added to the registry. This is a more convenient form when
* you want to manually increase values as per your service requirements.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DoubleCumulative}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.21
*/
@ExperimentalApi
public abstract DoubleCumulative addDoubleCumulative(String name, MetricOptions options);
/**
* Builds a new derived long cumulative to be added to the registry. This is a more convenient
* form when you want to define a cumulative by executing a {@link ToLongFunction} on an object.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DerivedLongCumulative}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.21
*/
@ExperimentalApi
public abstract DerivedLongCumulative addDerivedLongCumulative(
String name, MetricOptions options);
/**
* Builds a new derived double cumulative to be added to the registry. This is a more convenient
* form when you want to define a cumulative by executing a {@link ToDoubleFunction} on an object.
*
* @param name the name of the metric.
* @param options the options for the metric.
* @return a {@code DerivedDoubleCumulative}.
* @throws NullPointerException if {@code name} is null.
* @throws IllegalArgumentException if different metric with the same name already registered.
* @since 0.21
*/
@ExperimentalApi
public abstract DerivedDoubleCumulative addDerivedDoubleCumulative(
String name, MetricOptions options);
static MetricRegistry newNoopMetricRegistry() {
return new NoopMetricRegistry();
}
private static final class NoopMetricRegistry extends MetricRegistry {
@Override
public LongGauge addLongGauge(String name, MetricOptions options) {
return LongGauge.newNoopLongGauge(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DoubleGauge addDoubleGauge(String name, MetricOptions options) {
return DoubleGauge.newNoopDoubleGauge(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DerivedLongGauge addDerivedLongGauge(String name, MetricOptions options) {
return DerivedLongGauge.newNoopDerivedLongGauge(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DerivedDoubleGauge addDerivedDoubleGauge(String name, MetricOptions options) {
return DerivedDoubleGauge.newNoopDerivedDoubleGauge(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public LongCumulative addLongCumulative(String name, MetricOptions options) {
return LongCumulative.newNoopLongCumulative(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DoubleCumulative addDoubleCumulative(String name, MetricOptions options) {
return DoubleCumulative.newNoopDoubleCumulative(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DerivedLongCumulative addDerivedLongCumulative(String name, MetricOptions options) {
return DerivedLongCumulative.newNoopDerivedLongCumulative(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
@Override
public DerivedDoubleCumulative addDerivedDoubleCumulative(String name, MetricOptions options) {
return DerivedDoubleCumulative.newNoopDerivedDoubleCumulative(
Utils.checkNotNull(name, "name"),
options.getDescription(),
options.getUnit(),
options.getLabelKeys());
}
}
}