|
| 1 | +--- |
| 2 | +title: Logfire |
| 3 | +description: Query traces, logs, and metrics in Pydantic Logfire |
| 4 | +--- |
| 5 | + |
| 6 | +import { BlockInfoCard } from "@/components/ui/block-info-card" |
| 7 | + |
| 8 | +<BlockInfoCard |
| 9 | + type="logfire" |
| 10 | + color="#E520E9" |
| 11 | +/> |
| 12 | + |
| 13 | +{/* MANUAL-CONTENT-START:intro */} |
| 14 | +[Pydantic Logfire](https://pydantic.dev/logfire) is an observability platform built on OpenTelemetry. It collects the traces, logs, and metrics your services emit, stores every span in a queryable `records` table, and exposes that table through a read-only SQL API. |
| 15 | + |
| 16 | +With Logfire, you can: |
| 17 | + |
| 18 | +- **Search spans and logs**: Filter by message text, service, span name, severity, deployment environment, and whether an exception was recorded — no SQL required. |
| 19 | +- **Run SQL directly**: Query the `records` and `metrics` tables with PostgreSQL-compatible syntax for aggregations like error rates and latency percentiles. |
| 20 | +- **Reconstruct a request**: Pull every span in a trace, ordered earliest to latest, and walk the parent-child tree to see where time went and where it failed. |
| 21 | +- **Confirm a credential**: Resolve which organization and project a read token targets before querying it. |
| 22 | + |
| 23 | +Sim's Logfire integration lets agents read production telemetry as part of a run. Use it to triage errors against a live service, attach a root-cause summary to an incident ticket, or watch latency between deploys and page when it regresses. |
| 24 | + |
| 25 | +Authentication uses a Logfire **read token**, which you create per project under Settings → Read tokens. The region is detected from the token's prefix, so Cloud users on US and EU need no extra configuration. Self-hosted instances set the Host field to their own base URL, which must be reachable over HTTPS at a publicly resolvable domain. |
| 26 | +{/* MANUAL-CONTENT-END */} |
| 27 | + |
| 28 | + |
| 29 | +## Usage Instructions |
| 30 | + |
| 31 | +Integrate Pydantic Logfire into workflows. Run SQL over your observability data, search spans and logs with structured filters, pull an entire trace by ID, and confirm which project a read token targets. |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +## Actions |
| 36 | + |
| 37 | +### `logfire_query` |
| 38 | + |
| 39 | +Run a read-only SQL query against Logfire traces, logs, and metrics. Reads the records and metrics tables using PostgreSQL-compatible syntax. |
| 40 | + |
| 41 | +#### Input |
| 42 | + |
| 43 | +| Parameter | Type | Required | Description | |
| 44 | +| --------- | ---- | -------- | ----------- | |
| 45 | +| `apiKey` | string | Yes | Logfire read token | |
| 46 | +| `region` | string | No | Logfire data region: auto, us, or eu. Auto reads the region from the token. | |
| 47 | +| `host` | string | No | Base URL of a self-hosted Logfire instance, e.g. https://logfire.example.com. Overrides region. Leave blank for Logfire Cloud. | |
| 48 | +| `sql` | string | Yes | SQL SELECT query to run against the records or metrics table | |
| 49 | +| `minTimestamp` | string | No | ISO 8601 lower bound on start_timestamp. Defaults to 2020-01-01T00:00:00Z when omitted. | |
| 50 | +| `maxTimestamp` | string | No | ISO 8601 upper bound on start_timestamp | |
| 51 | +| `limit` | number | No | Maximum rows to return. Logfire defaults to 100 and caps at 10000. | |
| 52 | +| `timezone` | string | No | IANA timezone used to evaluate the query, for example Europe/Paris | |
| 53 | +| `environment` | string | No | Restrict results to a single deployment environment | |
| 54 | + |
| 55 | +#### Output |
| 56 | + |
| 57 | +| Parameter | Type | Description | |
| 58 | +| --------- | ---- | ----------- | |
| 59 | +| `rows` | array | Result rows. Row fields depend on the query projection. | |
| 60 | +| `columns` | array | Column metadata for the result set | |
| 61 | +| ↳ `name` | string | Column name | |
| 62 | +| ↳ `datatype` | json | Arrow datatype of the column | |
| 63 | +| ↳ `nullable` | boolean | Whether the column is nullable | |
| 64 | +| `rowCount` | number | Number of rows returned | |
| 65 | + |
| 66 | +### `logfire_search_records` |
| 67 | + |
| 68 | +Search Logfire spans and logs using structured filters for message text, service, span name, severity, environment, and exceptions. Returns the most recent matches first without writing SQL. |
| 69 | + |
| 70 | +#### Input |
| 71 | + |
| 72 | +| Parameter | Type | Required | Description | |
| 73 | +| --------- | ---- | -------- | ----------- | |
| 74 | +| `apiKey` | string | Yes | Logfire read token | |
| 75 | +| `region` | string | No | Logfire data region: auto, us, or eu. Auto reads the region from the token. | |
| 76 | +| `host` | string | No | Base URL of a self-hosted Logfire instance, e.g. https://logfire.example.com. Overrides region. Leave blank for Logfire Cloud. | |
| 77 | +| `query` | string | No | Case-insensitive text to match within the record message | |
| 78 | +| `service` | string | No | Exact service name to filter on | |
| 79 | +| `spanName` | string | No | Exact span name to filter on | |
| 80 | +| `minLevel` | string | No | Minimum severity to include: trace, debug, info, notice, warn, error, or fatal | |
| 81 | +| `exceptionsOnly` | boolean | No | Only return records that recorded an exception | |
| 82 | +| `environment` | string | No | Restrict results to a single deployment environment | |
| 83 | +| `minTimestamp` | string | No | ISO 8601 lower bound on start_timestamp. Defaults to 2020-01-01T00:00:00Z when omitted. | |
| 84 | +| `maxTimestamp` | string | No | ISO 8601 upper bound on start_timestamp | |
| 85 | +| `limit` | number | No | Maximum records to return. Logfire defaults to 100 and caps at 10000. | |
| 86 | + |
| 87 | +#### Output |
| 88 | + |
| 89 | +| Parameter | Type | Description | |
| 90 | +| --------- | ---- | ----------- | |
| 91 | +| `rows` | array | Matching spans and logs, most recent first | |
| 92 | +| ↳ `startTimestamp` | string | UTC time the span started | |
| 93 | +| ↳ `endTimestamp` | string | UTC time the span ended | |
| 94 | +| ↳ `duration` | number | Span duration in seconds. Null for logs. | |
| 95 | +| ↳ `level` | string | Severity name, such as info, warn, or error | |
| 96 | +| ↳ `message` | string | Human-readable message | |
| 97 | +| ↳ `spanName` | string | Template label for similar records | |
| 98 | +| ↳ `kind` | string | Record kind: span, log, or span_event | |
| 99 | +| ↳ `serviceName` | string | Service that emitted the record | |
| 100 | +| ↳ `deploymentEnvironment` | string | Deployment environment of the record | |
| 101 | +| ↳ `traceId` | string | Trace this record belongs to | |
| 102 | +| ↳ `spanId` | string | Identifier of this span | |
| 103 | +| ↳ `parentSpanId` | string | Parent span identifier | |
| 104 | +| ↳ `isException` | boolean | Whether an exception was recorded on the span | |
| 105 | +| ↳ `exceptionType` | string | Fully qualified exception class name | |
| 106 | +| ↳ `exceptionMessage` | string | Exception message | |
| 107 | +| `rowCount` | number | Number of rows returned | |
| 108 | +| `sql` | string | SQL query that was executed against Logfire | |
| 109 | + |
| 110 | +### `logfire_get_trace` |
| 111 | + |
| 112 | +Fetch every span and log belonging to a Logfire trace, ordered from earliest to latest, so a single request can be reconstructed end to end. |
| 113 | + |
| 114 | +#### Input |
| 115 | + |
| 116 | +| Parameter | Type | Required | Description | |
| 117 | +| --------- | ---- | -------- | ----------- | |
| 118 | +| `apiKey` | string | Yes | Logfire read token | |
| 119 | +| `region` | string | No | Logfire data region: auto, us, or eu. Auto reads the region from the token. | |
| 120 | +| `host` | string | No | Base URL of a self-hosted Logfire instance, e.g. https://logfire.example.com. Overrides region. Leave blank for Logfire Cloud. | |
| 121 | +| `traceId` | string | Yes | 32-character hexadecimal trace identifier | |
| 122 | +| `minTimestamp` | string | No | ISO 8601 lower bound on start_timestamp. Defaults to 2020-01-01T00:00:00Z when omitted. | |
| 123 | +| `maxTimestamp` | string | No | ISO 8601 upper bound on start_timestamp | |
| 124 | +| `limit` | number | No | Maximum spans to return. Logfire defaults to 100 and caps at 10000. | |
| 125 | + |
| 126 | +#### Output |
| 127 | + |
| 128 | +| Parameter | Type | Description | |
| 129 | +| --------- | ---- | ----------- | |
| 130 | +| `rows` | array | Spans and logs in the trace, earliest first | |
| 131 | +| ↳ `startTimestamp` | string | UTC time the span started | |
| 132 | +| ↳ `endTimestamp` | string | UTC time the span ended | |
| 133 | +| ↳ `duration` | number | Span duration in seconds. Null for logs. | |
| 134 | +| ↳ `level` | string | Severity name, such as info, warn, or error | |
| 135 | +| ↳ `message` | string | Human-readable message | |
| 136 | +| ↳ `spanName` | string | Template label for similar records | |
| 137 | +| ↳ `kind` | string | Record kind: span, log, or span_event | |
| 138 | +| ↳ `serviceName` | string | Service that emitted the record | |
| 139 | +| ↳ `deploymentEnvironment` | string | Deployment environment of the record | |
| 140 | +| ↳ `traceId` | string | Trace this record belongs to | |
| 141 | +| ↳ `spanId` | string | Identifier of this span | |
| 142 | +| ↳ `parentSpanId` | string | Parent span identifier | |
| 143 | +| ↳ `isException` | boolean | Whether an exception was recorded on the span | |
| 144 | +| ↳ `exceptionType` | string | Fully qualified exception class name | |
| 145 | +| ↳ `exceptionMessage` | string | Exception message | |
| 146 | +| `rowCount` | number | Number of rows returned | |
| 147 | +| `sql` | string | SQL query that was executed against Logfire | |
| 148 | + |
| 149 | +### `logfire_get_token_info` |
| 150 | + |
| 151 | +Resolve which Logfire organization and project a read token belongs to. Useful for confirming a credential targets the expected project before querying it. |
| 152 | + |
| 153 | +#### Input |
| 154 | + |
| 155 | +| Parameter | Type | Required | Description | |
| 156 | +| --------- | ---- | -------- | ----------- | |
| 157 | +| `apiKey` | string | Yes | Logfire read token | |
| 158 | +| `region` | string | No | Logfire data region: auto, us, or eu. Auto reads the region from the token. | |
| 159 | +| `host` | string | No | Base URL of a self-hosted Logfire instance, e.g. https://logfire.example.com. Overrides region. Leave blank for Logfire Cloud. | |
| 160 | + |
| 161 | +#### Output |
| 162 | + |
| 163 | +| Parameter | Type | Description | |
| 164 | +| --------- | ---- | ----------- | |
| 165 | +| `organizationName` | string | Logfire organization the read token belongs to | |
| 166 | +| `projectName` | string | Logfire project the read token belongs to | |
| 167 | + |
| 168 | + |
0 commit comments