001/* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.apache.hadoop.metrics2; 019 020import org.apache.yetus.audience.InterfaceAudience; 021 022/** 023 * Metrics Histogram interface. Implementing classes will expose computed quartile values through 024 * the metrics system. 025 */ 026@InterfaceAudience.Private 027public interface MetricHistogram { 028 029 // Strings used to create metrics names. 030 String NUM_OPS_METRIC_NAME = "_num_ops"; 031 String MIN_METRIC_NAME = "_min"; 032 String MAX_METRIC_NAME = "_max"; 033 String MEAN_METRIC_NAME = "_mean"; 034 String MEDIAN_METRIC_NAME = "_median"; 035 String TWENTY_FIFTH_PERCENTILE_METRIC_NAME = "_25th_percentile"; 036 String SEVENTY_FIFTH_PERCENTILE_METRIC_NAME = "_75th_percentile"; 037 String NINETIETH_PERCENTILE_METRIC_NAME = "_90th_percentile"; 038 String NINETY_FIFTH_PERCENTILE_METRIC_NAME = "_95th_percentile"; 039 String NINETY_EIGHTH_PERCENTILE_METRIC_NAME = "_98th_percentile"; 040 String NINETY_NINETH_PERCENTILE_METRIC_NAME = "_99th_percentile"; 041 String NINETY_NINE_POINT_NINETH_PERCENTILE_METRIC_NAME = "_99.9th_percentile"; 042 043 /** 044 * Add a single value to a histogram's stream of values. 045 */ 046 void add(long value); 047 048 /** 049 * Return the total number of values added to the histogram. 050 * @return the total number of values. 051 */ 052 long getCount(); 053 054}