| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | import { Exception } from '../common/Exception';import { TimeInput } from '../common/Time';import { SpanAttributes, SpanAttributeValue } from './attributes';import { SpanContext } from './span_context';import { SpanStatus } from './status';import { Link } from './link';/** * An interface that represents a span. A span represents a single operation * within a trace. Examples of span might include remote procedure calls or a * in-process function calls to sub-components. A Trace has a single, top-level * "root" Span that in turn may have zero or more child Spans, which in turn * may have children. * * Spans are created by the {@link Tracer.startSpan} method. */export interface Span {    /**     * Returns the {@link SpanContext} object associated with this Span.     *     * Get an immutable, serializable identifier for this span that can be used     * to create new child spans. Returned SpanContext is usable even after the     * span ends.     *     * @returns the SpanContext object associated with this Span.     */    spanContext(): SpanContext;    /**     * Sets an attribute to the span.     *     * Sets a single Attribute with the key and value passed as arguments.     *     * @param key the key for this attribute.     * @param value the value for this attribute. Setting a value null or     *              undefined is invalid and will result in undefined behavior.     */    setAttribute(key: string, value: SpanAttributeValue): this;    /**     * Sets attributes to the span.     *     * @param attributes the attributes that will be added.     *                   null or undefined attribute values     *                   are invalid and will result in undefined behavior.     */    setAttributes(attributes: SpanAttributes): this;    /**     * Adds an event to the Span.     *     * @param name the name of the event.     * @param [attributesOrStartTime] the attributes that will be added; these are     *     associated with this event. Can be also a start time     *     if type is {@type TimeInput} and 3rd param is undefined     * @param [startTime] start time of the event.     */    addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this;    /**     * Adds a single link to the span.     *     * Links added after the creation will not affect the sampling decision.     * It is preferred span links be added at span creation.     *     * @param link the link to add.     */    addLink(link: Link): this;    /**     * Adds multiple links to the span.     *     * Links added after the creation will not affect the sampling decision.     * It is preferred span links be added at span creation.     *     * @param links the links to add.     */    addLinks(links: Link[]): this;    /**     * Sets a status to the span. If used, this will override the default Span     * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value     * of previous calls to SetStatus on the Span.     *     * @param status the SpanStatus to set.     */    setStatus(status: SpanStatus): this;    /**     * Updates the Span name.     *     * This will override the name provided via {@link Tracer.startSpan}.     *     * Upon this update, any sampling behavior based on Span name will depend on     * the implementation.     *     * @param name the Span name.     */    updateName(name: string): this;    /**     * Marks the end of Span execution.     *     * Call to End of a Span MUST not have any effects on child spans. Those may     * still be running and can be ended later.     *     * Do not return `this`. The Span generally should not be used after it     * is ended so chaining is not desired in this context.     *     * @param [endTime] the time to set as Span's end time. If not provided,     *     use the current time as the span's end time.     */    end(endTime?: TimeInput): void;    /**     * Returns the flag whether this span will be recorded.     *     * @returns true if this Span is active and recording information like events     *     with the `AddEvent` operation and attributes using `setAttributes`.     */    isRecording(): boolean;    /**     * Sets exception as a span event     * @param exception the exception the only accepted values are string or Error     * @param [time] the time to set as Span's event time. If not provided,     *     use the current time.     */    recordException(exception: Exception, time?: TimeInput): void;}//# sourceMappingURL=span.d.ts.map
 |