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

com.amazonaws.metrics.MetricCollector Maven / Gradle / Ivy

Go to download

The Amazon Web Services SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

The newest version!
/*
 * Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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 com.amazonaws.metrics;


/**
 * Metric Collector SPI.  This is a class instead of interface so in case of
 * adding new methods in the future we can do that safetly without breaking
 * any existing clients that implements this SPI.
 */
public abstract class MetricCollector 
{
    /**
     * Can be used to serve as a factory for the request metric collector.
     */
    public static interface Factory {
        /**
         * Returns an instance of the collector; or null if if failed to create
         * one.
         */
        public MetricCollector getInstance();
    }
    /**
     * Starts the request metric collector.
     * 
     * @return true if the collector is successfully started; false otherwise.
     */
    public abstract boolean start();

    /** 
     * Stops the request metric collector.
     *
     * @return true if the collector is successfully stopped; false if the
     *         collector is not running and therefore the call has no effect.
     */
    public abstract boolean stop();
    /** Returns true if this collector is enabled; false otherwise. */
    public abstract boolean isEnabled();
    public abstract RequestMetricCollector getRequestMetricCollector();
    public abstract ServiceMetricCollector getServiceMetricCollector();

    /** A convenient instance of a no-op request metric collector. */
    public static final MetricCollector NONE = new MetricCollector() {
        @Override public boolean start() { return true; }
        @Override public boolean stop() { return true; }
        /** Always returns false. */
        @Override public boolean isEnabled() { return false; }
        @Override public RequestMetricCollector getRequestMetricCollector() {
            return RequestMetricCollector.NONE;
        }
        @Override public ServiceMetricCollector getServiceMetricCollector() {
            return ServiceMetricCollector.NONE;
        }
    };
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy