1 /* 2 * Copyright 2018, OpenCensus Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package io.opencensus.metrics; 18 19 import com.google.auto.value.AutoValue; 20 import io.opencensus.common.ExperimentalApi; 21 import javax.annotation.concurrent.Immutable; 22 23 /** 24 * The key of a {@code Label} associated with a {@code MetricDescriptor}. 25 * 26 * @since 0.15 27 */ 28 @ExperimentalApi 29 @Immutable 30 @AutoValue 31 public abstract class LabelKey { 32 LabelKey()33 LabelKey() {} 34 35 /** 36 * Creates a {@link LabelKey}. 37 * 38 * @param key the key of a {@code Label}. 39 * @param description a human-readable description of what this label key represents. 40 * @return a {@code LabelKey}. 41 * @since 0.17 42 */ create(String key, String description)43 public static LabelKey create(String key, String description) { 44 return new AutoValue_LabelKey(key, description); 45 } 46 47 /** 48 * Returns the key of this {@link LabelKey}. 49 * 50 * @return the key. 51 * @since 0.17 52 */ getKey()53 public abstract String getKey(); 54 55 /** 56 * Returns the description of this {@link LabelKey}. 57 * 58 * @return the description. 59 * @since 0.17 60 */ getDescription()61 public abstract String getDescription(); 62 } 63