1 /**
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 package org.apache.hadoop.metrics2;
20
21 /**
22 * Metrics Histogram interface. Implementing classes will expose computed
23 * quartile values through the metrics system.
24 */
25 public interface MetricHistogram {
26
27 //Strings used to create metrics names.
28 String NUM_OPS_METRIC_NAME = "_num_ops";
29 String MIN_METRIC_NAME = "_min";
30 String MAX_METRIC_NAME = "_max";
31 String MEAN_METRIC_NAME = "_mean";
32 String MEDIAN_METRIC_NAME = "_median";
33 String TWENTY_FIFTH_PERCENTILE_METRIC_NAME = "_25th_percentile";
34 String SEVENTY_FIFTH_PERCENTILE_METRIC_NAME = "_75th_percentile";
35 String NINETIETH_PERCENTILE_METRIC_NAME = "_90th_percentile";
36 String NINETY_FIFTH_PERCENTILE_METRIC_NAME = "_95th_percentile";
37 String NINETY_EIGHTH_PERCENTILE_METRIC_NAME = "_98th_percentile";
38 String NINETY_NINETH_PERCENTILE_METRIC_NAME = "_99th_percentile";
39 String NINETY_NINE_POINT_NINETH_PERCENTILE_METRIC_NAME = "_99.9th_percentile";
40
41 /**
42 * Add a single value to a histogram's stream of values.
43 * @param value
44 */
45 void add(long value);
46
47 }