Interface Attributes
The keys are AttributeKeys and the values are Object instances that match the type of
the provided key.
Null keys will be silently dropped.
Note: The behavior of null-valued attributes is undefined, and hence strongly discouraged.
Implementations of this interface *must* be immutable and have well-defined value-based equals/hashCode implementations. If an implementation does not strictly conform to these requirements, behavior of the OpenTelemetry APIs and default SDK cannot be guaranteed.
For this reason, it is strongly suggested that you use the implementation that is provided
here via the factory methods and the AttributesBuilder.
-
Method Summary
Modifier and TypeMethodDescriptionMap<AttributeKey<?>, Object> asMap()Returns a read-only view of thisAttributesas aMap.static AttributesBuilderbuilder()Returns a newAttributesBuilderinstance for creating arbitraryAttributes.static Attributesempty()Returns aAttributesinstance with no attributes.voidforEach(BiConsumer<? super AttributeKey<?>, ? super Object> consumer) Iterates over all the key-value pairs of attributes contained by this instance.<T> Tget(AttributeKey<T> key) Returns the value for the givenAttributeKey, ornullif not found.booleanisEmpty()Whether there are any attributes contained in this.static <T> Attributesof(AttributeKey<T> key, T value) Returns aAttributesinstance with a single key-value pair.static <T,U> Attributes of(AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2) Returns aAttributesinstance with two key-value pairs.static <T,U, V> Attributes of(AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3) Returns aAttributesinstance with three key-value pairs.static <T,U, V, W>
Attributesof(AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4) Returns aAttributesinstance with four key-value pairs.static <T,U, V, W, X>
Attributesof(AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4, AttributeKey<X> key5, X value5) Returns aAttributesinstance with five key-value pairs.static <T,U, V, W, X, Y>
Attributesof(AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4, AttributeKey<X> key5, X value5, AttributeKey<Y> key6, Y value6) Returns aAttributesinstance with the given key-value pairs.intsize()The number of attributes contained in this.Returns a newAttributesBuilderinstance populated with the data of thisAttributes.
-
Method Details
-
get
Returns the value for the givenAttributeKey, ornullif not found.Note: this method will automatically return the corresponding
Valueinstance when passed a key of typeAttributeType.VALUEand a simple attribute is found. This is the inverse ofAttributesBuilder.put(AttributeKey, Object)when the key isAttributeType.VALUE.- If
put(AttributeKey.stringKey("key"), "a")was called, thenget(AttributeKey.valueKey("key"))returnsValue.of("a"). - If
put(AttributeKey.longKey("key"), 1L)was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(1L). - If
put(AttributeKey.doubleKey("key"), 1.0)was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(1.0). - If
put(AttributeKey.booleanKey("key"), true)was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(true). - If
put(AttributeKey.stringArrayKey("key"), Arrays.asList("a", "b"))was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(Value.of("a"), Value.of("b")). - If
put(AttributeKey.longArrayKey("key"), Arrays.asList(1L, 2L))was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(Value.of(1L), Value.of(2L)). - If
put(AttributeKey.doubleArrayKey("key"), Arrays.asList(1.0, 2.0))was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(Value.of(1.0), Value.of(2.0)). - If
put(AttributeKey.booleanArrayKey("key"), Arrays.asList(true, false))was called, thenget(AttributeKey.valueKey("key"))returnsValue.of(Value.of(true), Value.of(false)).
Further, if
put(AttributeKey.valueKey("key"), Value.of(emptyList()))was called, thenget(AttributeKey.stringArrayKey("key"))get(AttributeKey.longArrayKey("key"))get(AttributeKey.booleanArrayKey("key"))get(AttributeKey.doubleArrayKey("key"))
all return an empty list (as opposed to
null). - If
-
forEach
Iterates over all the key-value pairs of attributes contained by this instance.Note:
AttributeType.VALUEattributes will be represented as simple attributes if possible. SeeAttributesBuilder.put(AttributeKey, Object)for more details. -
size
int size()The number of attributes contained in this. -
isEmpty
boolean isEmpty()Whether there are any attributes contained in this. -
asMap
Map<AttributeKey<?>,Object> asMap()Returns a read-only view of thisAttributesas aMap.Note:
AttributeType.VALUEattributes will be represented as simple attributes in this map if possible. SeeAttributesBuilder.put(AttributeKey, Object)for more details. -
empty
Returns aAttributesinstance with no attributes. -
of
Returns aAttributesinstance with a single key-value pair. -
of
Returns aAttributesinstance with two key-value pairs. Order of the keys is not preserved. Duplicate keys will be removed. -
of
static <T,U, Attributes ofV> (AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3) Returns aAttributesinstance with three key-value pairs. Order of the keys is not preserved. Duplicate keys will be removed. -
of
static <T,U, Attributes ofV, W> (AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4) Returns aAttributesinstance with four key-value pairs. Order of the keys is not preserved. Duplicate keys will be removed. -
of
static <T,U, Attributes ofV, W, X> (AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4, AttributeKey<X> key5, X value5) Returns aAttributesinstance with five key-value pairs. Order of the keys is not preserved. Duplicate keys will be removed. -
of
static <T,U, Attributes ofV, W, X, Y> (AttributeKey<T> key1, T value1, AttributeKey<U> key2, U value2, AttributeKey<V> key3, V value3, AttributeKey<W> key4, W value4, AttributeKey<X> key5, X value5, AttributeKey<Y> key6, Y value6) Returns aAttributesinstance with the given key-value pairs. Order of the keys is not preserved. Duplicate keys will be removed. -
builder
Returns a newAttributesBuilderinstance for creating arbitraryAttributes. -
toBuilder
AttributesBuilder toBuilder()Returns a newAttributesBuilderinstance populated with the data of thisAttributes.
-