Parseable

Schema Reference


When Parseable receives GenAI traces at the /v1/traces endpoint, it flattens the nested OTel JSON into a single row per span event. This page documents every column you can query.

Span Hierarchy

A single agent invocation produces a tree of spans sharing the same span_trace_id:

span_trace_id: abc123
|
+-- [root] agent_run (gen_ai.operation.name = "agent")
      |
      +-- chat gpt-4o (gen_ai.operation.name = "chat")
      |     +-- event: gen_ai.prompt   (event_name row)
      |     +-- event: gen_ai.completion (event_name row)
      |
      +-- execute_tool search_api (gen_ai.operation.name = "execute_tool")
      |
      +-- chat gpt-4o (gen_ai.operation.name = "chat")
            +-- event: gen_ai.prompt   (event_name row)
            +-- event: gen_ai.completion (event_name row)

Key points:

  • Span rows have event_name IS NULL. These contain the gen_ai.* attributes, token counts, and Parseable-enriched columns.
  • Event rows have event_name set (e.g., gen_ai.prompt or gen_ai.completion). These contain the message content in event_gen_ai.prompt or event_gen_ai.completion. Event rows are only present when content capture is enabled (OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true).
  • Use span_parent_span_id to reconstruct the call tree within a trace.

Core Trace Columns

These are standard OpenTelemetry span fields, present on every row.

ColumnTypeDescription
span_trace_idStringUnique identifier for the entire trace (shared across all spans in one agent run).
span_span_idStringUnique identifier for this individual span.
span_parent_span_idStringSpan ID of the parent span. Empty string for root spans.
span_nameStringHuman-readable span name (e.g., chat gpt-4o, execute_tool search).
span_kindIntOTel span kind numeric value (0=Unspecified, 1=Internal, 2=Server, 3=Client).
span_kind_descriptionStringHuman-readable span kind (e.g., SPAN_KIND_CLIENT).
span_start_time_unix_nanoBigIntSpan start time in nanoseconds since epoch.
span_end_time_unix_nanoBigIntSpan end time in nanoseconds since epoch.
span_status_codeIntStatus code: 0=Unset, 1=OK, 2=Error.
span_status_descriptionStringHuman-readable status (e.g., STATUS_CODE_OK).
span_status_messageStringError message when span_status_code = 2.
span_trace_stateStringW3C trace state string.
span_flagsIntSpan flags bitmask.
span_flags_descriptionStringHuman-readable span flags.
span_dropped_attributes_countIntNumber of attributes dropped due to limits.
span_dropped_events_countIntNumber of events dropped due to limits.
span_dropped_links_countIntNumber of links dropped due to limits.
p_timestampTimestampParseable ingest timestamp.
p_metadataStringParseable metadata field.
p_tagsStringParseable tags field.
service.nameStringOTel resource attribute identifying the service.
scope_nameStringInstrumentation scope name.
scope_versionStringInstrumentation scope version.
schema_urlStringOTel schema URL.

GenAI Identity and Operation

Columns that identify the GenAI operation being performed.

ColumnTypeDescription
gen_ai.operation.nameStringType of operation: chat, text_completion, embeddings, execute_tool, agent.
gen_ai.systemStringGenAI provider system identifier (e.g., openai, anthropic, cohere).
gen_ai.provider.nameStringProvider name when different from system.
gen_ai.conversation.idStringUnique identifier for a multi-turn conversation thread.

Model Request

Columns capturing the parameters sent to the model.

ColumnTypeDescription
gen_ai.request.modelStringModel requested (e.g., gpt-4o, claude-3-opus-20240229).
gen_ai.request.temperatureFloatSampling temperature.
gen_ai.request.top_pFloatNucleus sampling parameter.
gen_ai.request.top_kIntTop-k sampling parameter.
gen_ai.request.max_tokensIntMaximum tokens requested for the response.
gen_ai.request.seedIntRandom seed for reproducibility.
gen_ai.request.frequency_penaltyFloatFrequency penalty parameter.
gen_ai.request.presence_penaltyFloatPresence penalty parameter.
gen_ai.request.stop_sequencesStringStop sequences (JSON array as string).

Model Response

Columns capturing what the model returned.

ColumnTypeDescription
gen_ai.response.idStringProvider-assigned response ID (e.g., chatcmpl-abc123).
gen_ai.response.modelStringActual model used (may differ from requested, e.g., gpt-4o-2024-08-06).
gen_ai.response.finish_reasonsStringReason the model stopped generating (JSON array, e.g., ["stop"], ["tool_calls"]).

Token Usage

Columns tracking token consumption per span.

ColumnTypeDescription
gen_ai.usage.input_tokensIntNumber of input (prompt) tokens consumed.
gen_ai.usage.output_tokensIntNumber of output (completion) tokens generated.
gen_ai.usage.input_token_details.cached_tokensIntNumber of input tokens served from cache.
gen_ai.usage.output_token_details.reasoning_tokensIntNumber of output tokens used for chain-of-thought reasoning.

Agent

Columns specific to agent-level spans (where gen_ai.operation.name = 'agent').

ColumnTypeDescription
gen_ai.agent.nameStringName of the agent.
gen_ai.agent.idStringUnique identifier for the agent instance.
gen_ai.agent.descriptionStringHuman-readable description of the agent's purpose.

Tool Execution

Columns specific to tool call spans (where gen_ai.operation.name = 'execute_tool').

ColumnTypeDescription
gen_ai.tool.nameStringName of the tool invoked (e.g., search_api, calculator).
gen_ai.tool.typeStringType of tool (e.g., function, retrieval, code_interpreter).
gen_ai.tool.call.idStringProvider-assigned tool call ID.
gen_ai.tool.call.argumentsStringJSON string of arguments passed to the tool.
gen_ai.tool.call.resultStringJSON string or text of the tool execution result.

Content Columns (Opt-In)

These columns are only populated when content capture is enabled via OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true. They appear on event rows (where event_name is not null).

ColumnTypeDescription
event_nameStringEvent type: gen_ai.prompt, gen_ai.completion, gen_ai.tool.message, etc.
event_gen_ai.promptStringThe full prompt or user message content. Present on gen_ai.prompt events.
event_gen_ai.completionStringThe full completion or assistant message content. Present on gen_ai.completion events.
event_time_unix_nanoBigIntEvent timestamp in nanoseconds since epoch.
event_dropped_attributes_countIntNumber of event attributes dropped due to limits.

Parseable-Enriched Columns

These columns are computed server-side by Parseable at ingest time. They do not exist in the raw OTel data.

ColumnTypeDescription
p_genai_cost_usdFloatEstimated cost in USD for this span, computed from the model name and token counts using Parseable's built-in pricing table.
p_genai_tokens_totalIntSum of gen_ai.usage.input_tokens + gen_ai.usage.output_tokens.
p_genai_tokens_per_secFloatThroughput: output_tokens / (span_duration_seconds). Useful for comparing model and provider performance.
p_genai_duration_msFloatSpan duration in milliseconds, computed from span_end_time_unix_nano - span_start_time_unix_nano.

Was this page helpful?

On this page