# Span

`import { Span } from "destack:telemetry";`

Active trace span.

```ds title="Span"
export class Span {
    name: string;
    context: SpanContext;
    kind: SpanKind;
    constructor(name: &'a readonly string, context: SpanContext, kind?: SpanKind | undefined, fields?: Fields | undefined, sink?: readonly TraceSink | undefined);
    addFields(fields: { readonly [key: string]: FieldValue }): void;
    event(name: &'b readonly string, fields?: Fields | undefined): void;
    setStatus(status: SpanStatus): void;
    error(error: unknown): void;
    end(status?: SpanStatus | undefined): void;
}
```

[language/library/src/telemetry/trace.ds:22:121](https://github.com/destack-sh/destack/blob/main/language/library/src/telemetry/trace.ds#L22-L121)

## Members

### `name: string`

Span name.

### `context: SpanContext`

Span identity.

### `kind: SpanKind`

Span kind.

### `constructor(name: &'a readonly string, context: SpanContext, kind?: SpanKind | undefined, fields?: Fields | undefined, sink?: readonly TraceSink | undefined)`

Create a span.

### `addFields(fields: { readonly [key: string]: FieldValue }): void`

Add fields to this span.

### `event(name: &'b readonly string, fields?: Fields | undefined): void`

Add one event to this span.

### `setStatus(status: SpanStatus): void`

Set this span status.

### `error(error: unknown): void`

Mark this span as failed.

### `end(status?: SpanStatus | undefined): void`

Finish this span.
