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 */ 018 019package org.apache.hadoop.metrics2; 020 021import org.apache.yetus.audience.InterfaceAudience; 022 023/** 024 * Metrics Histogram interface. Implementing classes will expose computed 025 * quartile values through the metrics system. 026 */ 027@InterfaceAudience.Private 028public interface MetricHistogram { 029 030 //Strings used to create metrics names. 031 String NUM_OPS_METRIC_NAME = "_num_ops"; 032 String MIN_METRIC_NAME = "_min"; 033 String MAX_METRIC_NAME = "_max"; 034 String MEAN_METRIC_NAME = "_mean"; 035 String MEDIAN_METRIC_NAME = "_median"; 036 String TWENTY_FIFTH_PERCENTILE_METRIC_NAME = "_25th_percentile"; 037 String SEVENTY_FIFTH_PERCENTILE_METRIC_NAME = "_75th_percentile"; 038 String NINETIETH_PERCENTILE_METRIC_NAME = "_90th_percentile"; 039 String NINETY_FIFTH_PERCENTILE_METRIC_NAME = "_95th_percentile"; 040 String NINETY_EIGHTH_PERCENTILE_METRIC_NAME = "_98th_percentile"; 041 String NINETY_NINETH_PERCENTILE_METRIC_NAME = "_99th_percentile"; 042 String NINETY_NINE_POINT_NINETH_PERCENTILE_METRIC_NAME = "_99.9th_percentile"; 043 044 /** 045 * Add a single value to a histogram's stream of values. 046 * @param value 047 */ 048 void add(long value); 049 050}