diff --git a/src/common/Attributes.ts b/src/common/Attributes.ts new file mode 100644 index 0000000..11869a1 --- /dev/null +++ b/src/common/Attributes.ts @@ -0,0 +1,35 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Attributes is a map from string to attribute values. + */ +export interface Attributes { + [attributeKey: string]: AttributeValue | undefined; +} + +/** + * Attribute values may be any non-nullish primitive value except an object. + * + * null or undefined attribute values are invalid and will result in undefined behavior. + */ +export type AttributeValue = + | string + | number + | boolean + | Array + | Array + | Array; diff --git a/src/index.ts b/src/index.ts index f896193..1f81da2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,6 +18,7 @@ export * from './baggage/types'; export { baggageEntryMetadataFromString } from './baggage/utils'; export * from './common/Exception'; export * from './common/Time'; +export * from './common/Attributes'; export * from './diag'; export * from './propagation/TextMapPropagator'; export * from './trace/attributes'; diff --git a/src/trace/attributes.ts b/src/trace/attributes.ts index a14fe1d..0fb156b 100644 --- a/src/trace/attributes.ts +++ b/src/trace/attributes.ts @@ -14,19 +14,14 @@ * limitations under the License. */ -export interface SpanAttributes { - [attributeKey: string]: SpanAttributeValue | undefined; -} +import { Attributes, AttributeValue } from '../common/Attributes'; /** - * Attribute values may be any non-nullish primitive value except an object. - * - * null or undefined attribute values are invalid and will result in undefined behavior. + * @deprecated please use Attributes + */ +export type SpanAttributes = Attributes; + +/** + * @deprecated please use AttributeValue */ -export type SpanAttributeValue = - | string - | number - | boolean - | Array - | Array - | Array; +export type SpanAttributeValue = AttributeValue;