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

com.palantir.conjure.java.okhttp.HostMetrics Maven / Gradle / Ivy

/*
 * (c) Copyright 2017 Palantir Technologies Inc. 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.
 * 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 com.palantir.conjure.java.okhttp;

import com.codahale.metrics.Meter;
import com.codahale.metrics.Timer;
import java.time.Instant;

/** Per-target-host HTTP response code metrics. */
public interface HostMetrics {

    /**
     * The name of the service these metrics describe. This is generally the simple name of the class being proxied (eg:
     * RemoteService).
     */
    String serviceName();

    /** The name of the host these metrics describe. This may be the hostname, ip, or some other URI. */
    String hostname();

    /** The port on the host used to gather the metrics. */
    int port();

    /** The {@link Instant} that these {@link HostMetrics} were last updated. */
    Instant lastUpdate();

    /** A timer of 1xx responses. */
    Timer get1xx();

    /** A timer of 2xx responses. */
    Timer get2xx();

    /** A timer of 3xx responses. */
    Timer get3xx();

    /** A timer of 4xx responses, excluding 429s. */
    Timer get4xx();

    /** A timer of 5xx responses, excluding 503s. */
    Timer get5xx();

    /** A timer of 429 and 503 responses. */
    Timer getQos();

    /** A timer of all other responses. */
    Timer getOther();

    /** A meter of all failed requests. */
    Meter getIoExceptions();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy