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

org.eclipse.microprofile.metrics.annotation.package-info Maven / Gradle / Ivy

There is a newer version: 5.1.2
Show newest version
/*
 **********************************************************************
 * Copyright (c) 2017, 2023 Contributors to the Eclipse Foundation
 *
 * See the NOTICES file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * 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.
 *
 * SPDX-License-Identifier: Apache-2.0
 **********************************************************************/

/**
 * 

* This package contains the annotations used for MicroProfile Metrics. * *

Metric Annotation

*

* The {@link org.eclipse.microprofile.metrics.annotation.Metric Metric} annotation is used to provide metadata for the * metric being injected. If a metric with the same name exists in the * {@link org.eclipse.microprofile.metrics.MetricRegistry MetricRegistry}, the metric is returned. Otherwise, a new * metric is registered into the MetricRegistry along with the metadata provided by the {@literal @}Metric annotation. *

* For example, * *

 * 
 *     {@literal @}Inject
 *     {@literal @}Metric(name="histogram", description="The description")
 *     public Histogram histogram;
 * 
 * 
* *

Interceptor Bindings

*

* MicroProfile Metrics provides interceptor bindings which can be used to instrument an application: * {@literal @}Counted, {@literal @}Gauge and {@literal @}Timed *

* An example using {@literal @}Counted, * *

 * 
 *     {@literal @}Counted (name="visitorCount",
 *         description="The number of visitors to the application")
 *     public void visit () {
 *         ...
 *     }
 * 
 * 
*

* An example using {@literal @}Gauge, * *

 * 
 *     {@literal @}Gauge(name = "queueSize")
 *     public int getQueueSize() {
 *         return queue.size;
 *     }
 * 
 * 
* *

RegistryScope annotation

*

* The {@link org.eclipse.microprofile.metrics.annotation.RegistryScope RegistryScope} is used to identify which * MetricRegistry (Application, Base, Vendor or a user-defined scope) should be injected. Injecting a * MetricRegistry without a RegistryScope annotation gives the application-scoped * MetricRegistry. * *

 * 
 *      {@literal @}Inject
 *      {@literal @}RegistryScope(scope=MetricRegistry.APPLICATION_SCOPE)
 *      MetricRegistry appRegistry;
 * 
 * 
* *

RegistryType CDI Qualifier

*

* * This is DEPRECATED. Please use {@link RegistryScope} instead. * * The {@link org.eclipse.microprofile.metrics.annotation.RegistryType RegistryType} is used to identify which * MetricRegistry (Application, Base, or Vendor) should be injected. Injecting a * MetricRegistry without a RegistryType annotation gives the application-scoped * MetricRegistry. * *

 * 
 *      {@literal @}Inject
 *      {@literal @}RegistryType(type=MetricRegistry.Type.BASE)
 *      MetricRegistry baseRegistry;
 * 
 * 
* */ @org.osgi.annotation.versioning.Version("5.1.0") package org.eclipse.microprofile.metrics.annotation;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy