---
title: "Span"
description: "one timed operation inside a trace, with its attributes and its outcome"
section: concepts
address: /concepts/span
contract: 0476e35e6e275db5
---

# Span

one timed operation inside a trace, with its attributes and its outcome

[figure: Span is a fact at platform scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | fact |
| scope | platform |
| key | its id |
| store | lake:landed |
| family | observability |



## Fields


| field | type | required | note |
|---|---|---|---|
| `span_id` | `hash` | yes |  |
| `context` | [TelemetryContext](/concepts/telemetrycontext) | yes |  |
| `name` | `text` | yes | the operation, from a closed list per role |
| `role` | `text` | yes |  |
| `started_at` | `time` | yes |  |
| `duration` | `duration` | yes |  |
| `outcome` | `one of ok \| refused \| failed \| timed-out` | yes |  |
| `attributes` | `{text:text}` | yes | from the attribute allow-list only; never a secret value |



## Routes that use it
No route takes or returns Span directly. The record holds it, and the objects that point at it reach it.
