OpenTelemetry attributes: semantic conventions lookup
Type part of an attribute name, such as gen_ai.agent or status_code. Each result shows its type and stability, and links to the spans that set it, real values and renamed names.
211 attributes
- gen_ai.agent.descriptionstringDevelopment
Free-form description of the GenAI agent provided by the application.
- gen_ai.agent.idstringDevelopment
The unique and stable identifier of the GenAI hosted agent resource.
- gen_ai.agent.namestringDevelopment
Human-readable name of the GenAI agent provided by the application.
- gen_ai.agent.versionstringDevelopment
The version of the GenAI agent.
- gen_ai.conversation.compactedbooleanDevelopment
Indicates whether the effective conversation context used for this operation is a compacted view of a prior conversation.
- gen_ai.conversation.idstringDevelopment
The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.
- gen_ai.data_source.idstringDevelopment
The data source identifier.
- gen_ai.embeddings.dimension.countintDevelopment
The number of dimensions the resulting output embeddings should have.
- gen_ai.evaluation.explanationstringDevelopment
A free-form explanation for the assigned score provided by the evaluator.
- gen_ai.evaluation.namestringDevelopment
The name of the evaluation metric used for the GenAI response.
- gen_ai.evaluation.score.labelstringDevelopment
Human readable label for evaluation.
- gen_ai.evaluation.score.valuedoubleDevelopment
The evaluation score returned by the evaluator.
- gen_ai.input.messagesanyDevelopment
The chat history provided to the model as an input.
- gen_ai.main_agent.descriptionstringDevelopment
The free-form description of the top-level Generative AI agent in the process.
- gen_ai.main_agent.idstringDevelopment
The unique and stable identifier of the top-level Generative AI agent in the process
- gen_ai.main_agent.namestringDevelopment
The human-readable name of the top-level Generative AI agent in the process.
- gen_ai.memory.query.textstringDevelopment
The search query used to retrieve memories.
- gen_ai.memory.record.countintDevelopment
The number of memory records relevant to the operation.
- gen_ai.memory.record.idstringDevelopment
The unique identifier of the memory record.
- gen_ai.memory.recordsanyDevelopment
The memory records stored or retrieved in a memory operation.
- gen_ai.memory.store.idstringDevelopment
The unique identifier of the memory store.
- gen_ai.operation.namestringDevelopment
The name of the operation being performed.
- gen_ai.output.messagesanyDevelopment
Messages returned by the model where each message represents a specific model response (choice, candidate).
- gen_ai.output.typestringDevelopment
Represents the content type requested by the client.
- gen_ai.prompt.namestringDevelopment
The name of the prompt that uniquely identifies it.
- gen_ai.prompt.variable.<key>stringDevelopment
The variables supplied to the prompt template, the <key> being the variable name, the value being the variable value.
- gen_ai.prompt.versionstringDevelopment
The version of the prompt template used.
- gen_ai.provider.namestringDevelopment
The Generative AI provider as identified by the client or server instrumentation.
- gen_ai.request.choice.countintDevelopment
The target number of candidate completions to return.
- gen_ai.request.encoding_formatsstring[]Development
The encoding formats requested in an embeddings operation, if specified.
- gen_ai.request.frequency_penaltydoubleDevelopment
The frequency penalty setting for the GenAI request.
- gen_ai.request.max_tokensintDevelopment
The maximum number of tokens the model generates for a request.
- gen_ai.request.modelstringDevelopment
The name of the GenAI model a request is being made to.
- gen_ai.request.presence_penaltydoubleDevelopment
The presence penalty setting for the GenAI request.
- gen_ai.request.previous_response.idstringDevelopment
The unique identifier of a previous response or interaction used to provide context for the current operation.
- gen_ai.request.reasoning.levelstringDevelopment
The reasoning or thinking effort level requested for a GenAI model.
- gen_ai.request.seedintDevelopment
Requests with same seed value more likely to return same result.
- gen_ai.request.stop_sequencesstring[]Development
List of sequences that the model will use to stop generating further tokens.
- gen_ai.request.streambooleanDevelopment
Indicates whether the GenAI request was made in streaming mode.
- gen_ai.request.stream_cursorstringDevelopment
The cursor identifying the last streamed event already received, used to resume a streamed response from that position.
- gen_ai.request.temperaturedoubleDevelopment
The temperature setting for the GenAI request.
- gen_ai.request.top_kintDevelopment
The top-K sampling setting for the GenAI request: restricts token generation at each step to the K most likely next tokens.
- gen_ai.request.top_pdoubleDevelopment
The top_p sampling setting for the GenAI request.
- gen_ai.response.finish_reasonsstring[]Development
Array of reasons the model stopped generating tokens, corresponding to each generation received.
- gen_ai.response.idstringDevelopment
The unique identifier for the completion.
- gen_ai.response.modelstringDevelopment
The name of the model that generated the response.
- gen_ai.response.statusstringDevelopment
The lifecycle status of a generated response, as reported by the provider when the response is fetched or polled.
- gen_ai.response.time_to_first_chunkdoubleDevelopment
Time to first chunk in a streaming response, measured from request issuance, in seconds.
- gen_ai.retrieval.documentsanyDevelopment
The documents retrieved.
- gen_ai.retrieval.query.textstringDevelopment
The query text used for retrieval.
- gen_ai.retrieval.top_kintDevelopment
The maximum number of documents the retriever was asked to return for the query (also known as k, limit, or max_num_results).
- gen_ai.skill.descriptionstringDevelopment
The description of the Agent Skill.
- gen_ai.skill.namestringDevelopment
The name of the Agent Skill.
- gen_ai.skill.resource.namestringDevelopment
The skill-relative name of the resource (script, reference, or asset) being accessed or executed.
- gen_ai.skill.source.uristringDevelopment
The source URI for loading the skill.
- gen_ai.system_instructionsanyDevelopment
The system message or instructions provided to the GenAI model separately from the chat history.
- gen_ai.token.modalitystringDevelopment
The modality of the tokens being counted.
- gen_ai.tool.call.argumentsanyDevelopment
Parameters passed to the tool call.
- gen_ai.tool.call.idstringDevelopment
The tool call identifier supplied by the model or provider.
- gen_ai.tool.call.resultanyDevelopment
The result returned by the tool call (if any and if execution was successful).
- gen_ai.tool.definitionsanyDevelopment
The list of tool definitions available to the GenAI agent or model.
- gen_ai.tool.descriptionstringDevelopment
The tool description.
- gen_ai.tool.namestringDevelopment
Name of the tool utilized by the agent.
- gen_ai.tool.typestringDevelopment
Type of the tool utilized by the agent
- gen_ai.usage.audio.cache_read.input_tokensintDevelopment
The number of audio input tokens served from a provider-managed cache.
- gen_ai.usage.audio.input_tokensintDevelopment
The number of audio input tokens.
- gen_ai.usage.audio.output_tokensintDevelopment
The number of audio output tokens.
- gen_ai.usage.cache_read.input_tokensintDevelopment
The number of input tokens served from a provider-managed cache.
- gen_ai.usage.cache_write.input_tokensintDevelopment
The number of input tokens written to a provider-managed cache.
- gen_ai.usage.image.cache_read.input_tokensintDevelopment
The number of image input tokens served from a provider-managed cache.
- gen_ai.usage.image.input_tokensintDevelopment
The number of image input tokens.
- gen_ai.usage.image.output_tokensintDevelopment
The number of image output tokens.
- gen_ai.usage.input_tokensintDevelopment
The number of tokens used in the GenAI input (prompt).
- gen_ai.usage.output_tokensintDevelopment
The number of tokens used in the GenAI response (completion).
- gen_ai.usage.reasoning.output_tokensintDevelopment
The number of output tokens used for reasoning (e.g.
- gen_ai.usage.text.cache_read.input_tokensintDevelopment
The number of text input tokens served from a provider-managed cache.
- gen_ai.usage.text.input_tokensintDevelopment
The number of text input tokens.
- gen_ai.usage.text.output_tokensintDevelopment
The number of text output tokens.
- gen_ai.workflow.namestringDevelopment
Human-readable name of the GenAI workflow provided by the application.
- gen_ai.completionstringDeprecated
Removed, no replacement at this time.
- gen_ai.openai.request.response_formatstringDeprecated
Replaced by gen_ai.output.type.
- gen_ai.openai.request.seedintDeprecated
Replaced by gen_ai.request.seed.
- gen_ai.openai.request.service_tierstringDeprecated
Replaced by openai.request.service_tier.
- gen_ai.openai.response.service_tierstringDeprecated
Replaced by openai.response.service_tier.
- gen_ai.openai.response.system_fingerprintstringDeprecated
Replaced by openai.response.system_fingerprint.
- gen_ai.promptstringDeprecated
Removed, no replacement at this time.
- gen_ai.systemstringDeprecated
Replaced by gen_ai.provider.name.
- gen_ai.token.typestringDeprecated
Replaced, with the gen_ai.client.token.usage histogram it served, by per-direction token histograms and gen_ai.token.modality (changelog).
- gen_ai.usage.cache_creation.input_tokensintDeprecated
Renamed to gen_ai.usage.cache_write.input_tokens (changelog).
- gen_ai.usage.completion_tokensintDeprecated
Replaced by gen_ai.usage.output_tokens.
- gen_ai.usage.prompt_tokensintDeprecated
Replaced by gen_ai.usage.input_tokens.
- mcp.method.namestringDevelopment
The name of the request or notification method.
- mcp.protocol.versionstringDevelopment
The version of the Model Context Protocol used.
- mcp.resource.uristringDevelopment
The value of the resource uri.
- mcp.session.idstringDevelopment
Identifies MCP session.
- rpc.methodstringRelease candidate
The fully-qualified logical name of the method from the RPC interface perspective.
- rpc.method_originalstringRelease candidate
The original name of the method used by the client.
- rpc.request.metadata.<key>string[]Development
RPC request metadata, <key> being the normalized RPC metadata key (lowercase), the value being the metadata values.
- rpc.response.metadata.<key>string[]Development
RPC response metadata, <key> being the normalized RPC metadata key (lowercase), the value being the metadata values.
- rpc.response.status_codestringRelease candidate
Status code of the RPC returned by the RPC server or generated by the client
- rpc.system.namestringRelease candidate
The Remote Procedure Call (RPC) system.
- rpc.connect_rpc.error_codestringDeprecated
Renamed to rpc.response.status_code.
- rpc.connect_rpc.request.metadata.<key>string[]Deprecated
Renamed to rpc.request.metadata.<key>.
- rpc.connect_rpc.response.metadata.<key>string[]Deprecated
Renamed to rpc.response.metadata.<key>.
- rpc.grpc.request.metadata.<key>string[]Deprecated
Renamed to rpc.request.metadata.<key>.
- rpc.grpc.response.metadata.<key>string[]Deprecated
Renamed to rpc.response.metadata.<key>.
- rpc.grpc.status_codestringDeprecated
Replaced by rpc.response.status_code.
- rpc.jsonrpc.error_codeintDeprecated
Replaced by rpc.response.status_code.
- rpc.jsonrpc.error_messagestringDeprecated
Use the span status description when reporting JSON-RPC spans.
- rpc.jsonrpc.request_idstringDeprecated
Renamed to jsonrpc.request.id.
- rpc.jsonrpc.versionstringDeprecated
Renamed to jsonrpc.protocol.version.
- rpc.message.compressed_sizeintDeprecated
Deprecated, no replacement at this time.
- rpc.message.idintDeprecated
Deprecated, no replacement at this time.
- rpc.message.typestringDeprecated
Deprecated, no replacement at this time.
- rpc.message.uncompressed_sizeintDeprecated
Deprecated, no replacement at this time.
- rpc.servicestringDeprecated
Value should be included in rpc.method which is expected to be a fully-qualified name.
- rpc.systemstringDeprecated
Renamed to rpc.system.name.
- jsonrpc.protocol.versionstringDevelopment
Protocol version, as specified in the jsonrpc property of the request and its corresponding response.
- jsonrpc.request.idstringDevelopment
A string representation of the id property of the request and its corresponding response.
- http.connection.statestringDevelopment
State of the HTTP connection in the HTTP connection pool.
- http.request.body.sizeintDevelopment
The size of the request payload body in bytes.
- http.request.header.<key>string[]Stable
HTTP request headers, <key> being the normalized HTTP Header name (lowercase), the value being the header values.
- http.request.methodstringStable
HTTP request method.
- http.request.method_originalstringStable
Original HTTP method sent by the client in the request line.
- http.request.resend_countintStable
The ordinal number of request resending attempt (for any reason, including redirects).
- http.request.sizeintDevelopment
The total size of the request in bytes.
- http.response.body.sizeintDevelopment
The size of the response payload body in bytes.
- http.response.header.<key>string[]Stable
HTTP response headers, <key> being the normalized HTTP Header name (lowercase), the value being the header values.
- http.response.sizeintDevelopment
The total size of the response in bytes.
- http.response.status_codeintStable
HTTP response status code.
- http.routestringStable
The matched route template for the request.
- http.client_ipstringDeprecated
Renamed to client.address.
- http.flavorstringDeprecated
Replaced by network.protocol.name.
- http.hoststringDeprecated
Replaced by one of server.address, client.address or http.request.header.host, depending on the usage.
- http.methodstringDeprecated
Renamed to http.request.method.
- http.request_content_lengthintDeprecated
Replaced by http.request.header.content-length.
- http.request_content_length_uncompressedintDeprecated
Renamed to http.request.body.size.
- http.response_content_lengthintDeprecated
Replaced by http.response.header.content-length.
- http.response_content_length_uncompressedintDeprecated
Renamed to http.response.body.size.
- http.schemestringDeprecated
Renamed to url.scheme.
- http.server_namestringDeprecated
Renamed to server.address.
- http.status_codeintDeprecated
Renamed to http.response.status_code.
- http.targetstringDeprecated
Replaced by url.path.
- http.urlstringDeprecated
Renamed to url.full.
- http.user_agentstringDeprecated
Renamed to user_agent.original.
- error.typestringStable
Describes a class of error the operation ended with.
- error.messagestringDeprecated
Use domain-specific error message attribute. For example, use feature_flag.error.message for feature flag errors.
- server.addressstringStable
Server domain name if available without reverse DNS lookup.
- server.portintStable
Server port number.
- client.addressstringStable
Client address - domain name if available without reverse DNS lookup.
- client.portintStable
Client port number.
- blockchain.system.namestringDevelopmenthashspan
evm
- blockchain.chain.idintDevelopmenthashspan
EIP-155 chain id, e.g.
- blockchain.operation.namestringDevelopmenthashspan
send | confirm | payment
- blockchain.tx.hashstringDevelopmenthashspan
0x-prefixed tx hash.
- blockchain.tx.fromstringDevelopmenthashspan
sender address, subject to address mode
- blockchain.tx.tostringDevelopmenthashspan
recipient / contract address, subject to address mode
- blockchain.tx.valuestringDevelopmenthashspan
value in wei, decimal string
- blockchain.tx.nonceintDevelopmenthashspan
sender nonce, when the sending call passes one (a nonce the wallet or viem picks is not known to the adapter)
- blockchain.tx.authorization.countintDevelopmenthashspan
number of EIP-7702 authorizations a type 4 transaction carries
- blockchain.tx.authorization.addressesstring[]Developmenthashspan
delegated contract address of each well-formed authorization, subject to address mode, at most 64.
- blockchain.tx.authorization.chain_idsint[]Developmenthashspan
chain id of each well-formed authorization, in the order of the addresses, at most 64.
- blockchain.contract.function.namestringDevelopmenthashspan
decoded function name when an ABI is known
- blockchain.contract.function.selectorstringDevelopmenthashspan
4-byte selector, e.g.
- blockchain.contract.function.argumentsstringDevelopmenthashspan
decoded call arguments as a JSON array, e.g.
- blockchain.tx.statusstringDevelopmenthashspan
from chain data: success | reverted | replaced
- blockchain.block.numberintDevelopmenthashspan
inclusion block.
- blockchain.tx.gas.usedintDevelopmenthashspan
gas used
- blockchain.tx.effective_gas_pricestringDevelopmenthashspan
price per gas in the chain's fee unit (see the fee table below), decimal string.
- blockchain.tx.l1_feestringDevelopmenthashspan
L1 data fee on OP-stack chains, in the chain's fee unit.
- blockchain.tx.feestringDevelopmenthashspan
gas.used × effective_gas_price + l1_fee, in the chain's fee unit: wei of the native currency, or the token fee_asset names (see the fee table below).
- blockchain.tx.operator_feestringDevelopmenthashspan
OP Stack operator fee (Isthmus and later), wei, decimal string.
- blockchain.tx.fee_assetstringDevelopmenthashspan
contract address of the token the fee was paid in, subject to address mode, as the chain reports it (a Celo fee currency, which for a 6-decimal token is its 18-decimal adapter contract.
- blockchain.tx.revert.reasonstringDevelopmenthashspan
decoded revert reason when available, also of a reverted user operation: the Error(string) message, Panic(0x..), ErrorName(arg, ...) for custom errors with a known ABI, else the 4-byte error selector.
- blockchain.tx.replacement.hashstringDevelopmenthashspan
on a replaced confirm span: hash of the mined transaction that replaced it
- blockchain.tx.replacement.reasonstringDevelopmenthashspan
on a replaced confirm span: repriced | cancelled | replaced, as reported by the instrumented library.
- blockchain.tx.wait.confirmationsintDevelopmenthashspan
on a transaction's confirm span: the confirmations (blocks, counting the receipt's own) that the wait which ended the span asked for, as the library applies them: a viem wait's or a CDP network-scoped wait's confirmations when it is a positive safe integer.
- blockchain.user_operation.hashstringDevelopmenthashspan
0x-prefixed user operation hash (userOpHash), which identifies the operation with the chain id
- blockchain.user_operation.senderstringDevelopmenthashspan
address of the smart account, subject to address mode
- blockchain.user_operation.entry_pointstringDevelopmenthashspan
address of the EntryPoint contract, subject to address mode
- blockchain.user_operation.call_countintDevelopmenthashspan
number of calls the operation makes, when the adapter knows them
- blockchain.user_operation.noncestringDevelopmenthashspan
the operation's nonce, decimal string (a 192-bit key and a 64-bit sequence number)
- blockchain.user_operation.successbooleanDevelopmenthashspan
whether the operation's calls succeeded.
- blockchain.user_operation.gas.usedintDevelopmenthashspan
gas the operation used (actualGasUsed)
- blockchain.user_operation.gas.coststringDevelopmenthashspan
what the operation paid (actualGasCost), wei, decimal string.
- blockchain.user_operation.paymasterstringDevelopmenthashspan
address of the paymaster that paid for the operation, subject to address mode.
- blockchain.call_batch.idstringDevelopmenthashspan
the batch id the wallet returned for EIP-5792 wallet_sendCalls (0x-prefixed hex, at most 8194 characters), truncated after 256 characters.
- blockchain.call_batch.senderstringDevelopmenthashspan
address of the account the calls are sent from, subject to address mode
- blockchain.call_batch.call_countintDevelopmenthashspan
number of calls in the batch
- blockchain.call_batch.statusstringDevelopmenthashspan
the batch's outcome from chain data: success | reverted | partially_reverted.
- blockchain.call_batch.status_codeintDevelopmenthashspan
the EIP-5792 status code the wallet reported, e.g.
- blockchain.call_batch.atomicbooleanDevelopmenthashspan
whether the wallet ran the calls atomically
- blockchain.call_batch.transaction_hashesstring[]Developmenthashspan
hashes of the transactions whose receipts the wallet reported for the batch, de-duplicated, at most 64
- blockchain.operation.subjectstringDevelopmenthashspan
on metrics of user operations: user_operation.
- blockchain.fee.payerstringDevelopmenthashspan
on blockchain.client.fee samples whose fee the sender of the traced transaction or operation did not pay: facilitator for a payment's settlement transaction that another party sent (x402), paymaster for a user operation a paymaster paid for, sponsor for a transaction whose receipt names another account as its fee payer (a Tempo feePayer).
- blockchain.fee.denominationstringDevelopmenthashspan
on blockchain.client.fee samples whose fee was paid in a token rather than the chain's native currency: token, a constant, never an address or a value read from the chain.
- blockchain.payment.protocolstringDevelopmenthashspan
x402 | mpp.
- blockchain.payment.payerstringDevelopmenthashspan
address that pays, subject to address mode.
- blockchain.payment.recipientstringDevelopmenthashspan
address that is paid, subject to address mode
- blockchain.payment.assetstringDevelopmenthashspan
contract address of the token paid with, subject to address mode
- blockchain.payment.amountstringDevelopmenthashspan
amount in the asset's smallest unit, decimal string.
- blockchain.payment.settled_amountstringDevelopmenthashspan
amount the settling party reports it settled, decimal string, e.g.
- blockchain.payment.verifiedbooleanDevelopmenthashspan
whether the settlement transaction carries this payment (its receipt and, for Permit2, its input.
- blockchain.payment.statusstringDevelopmenthashspan
settled | pending | failed
- x402.schemestringDevelopmenthashspan
x402 payment scheme, e.g.
- x402.resourcestringDevelopmenthashspan
the resource paid for, per the tracker's paymentResource mode: origin (default) records scheme, host and port only, path the URL without query string, fragment or user info, off nothing.
- mpp.methodstringDevelopmenthashspan
MPP payment method, e.g.
- mpp.intentstringDevelopmenthashspan
MPP intent, e.g.
- mpp.modestringDevelopmenthashspan
how an MPP charge is settled: push (the payer broadcasts) | pull (the server broadcasts what the payer signed)
- mpp.challenge.idstringDevelopmenthashspan
id of the MPP challenge paid, chosen by the server: 1 to 128 characters of A-Z a-z 0-9 - .
- mpp.resourcestringDevelopmenthashspan
the resource paid for, as x402.resource records it
No attribute matches. Try a shorter part of the name, set Stability to All to include renamed names, or suggest a namespace.
Which attribute namespaces does it cover?
The OpenTelemetry namespaces an agent or a service that talks to a blockchain node uses most, and hashspan's own. Each has a page with the spans that set it and the names it replaced.
| Namespace | Page | Names |
|---|---|---|
gen_ai.* | gen_ai.* attributes | 79 |
mcp.* | gen_ai.* attributes | 4 |
rpc.* | rpc.* and jsonrpc.* attributes | 6 |
jsonrpc.* | rpc.* and jsonrpc.* attributes | 2 |
http.* | http.* attributes | 12 |
error.* | error.type | 1 |
server.* | server.address and server.port | 2 |
client.* | server.address and server.port | 2 |
blockchain.* | hashspan semantic conventions | 53 |
x402.* | hashspan semantic conventions | 2 |
mpp.* | hashspan semantic conventions | 5 |
What do the stability levels mean?
- Stable. The name and its meaning stay.
http.request.method,error.typeandserver.addressare Stable. - Release candidate. Ready to become Stable; breaking changes only in special cases. The core
rpc.*attributes are here in v1.44.0. - Development. Can still be renamed or removed. Every
gen_ai.*andmcp.*attribute is Development, and so is every hashspan attribute. - Deprecated. Replaced or removed. Hidden by default above; each one says what replaced it.
Where do these names come from?
From the model files that the official registry is built from: open-telemetry/semantic-conventions at v1.44.0, and open-telemetry/semantic-conventions-genai at commit 547934a, because the GenAI conventions moved there in 2026 and have no release yet. A script reads them at a pinned version and keeps names, types, stability, one-line descriptions and the spans that reference each name. Every row links to the official definition.
hashspan's own blockchain.*, x402.* and mpp.* rows come from its semantic conventions at @hashspan/core@1.3.1, the version on npm. OpenTelemetry has no blockchain conventions yet, so these are hashspan's namespace, not OpenTelemetry's.
FAQ
Is this the official OpenTelemetry attribute registry?
No. It is generated from the official model files at a pinned version, and every attribute links to its entry in the official registry. Where the two disagree, the official registry wins.
Why are the gen_ai.* attributes not shown as deprecated here?
The main semantic-conventions repository marks them deprecated because they moved to the semantic-conventions-genai repository. This list takes them from the new repository, where they are current. Only names that were really renamed or removed are marked Deprecated.
What do Release candidate and Development mean?
Development names can still be renamed or removed. A Release candidate is ready to become Stable, and breaking changes are allowed only in special cases. Stable names keep their meaning.
OpenTelemetry attribute names, types, stability and descriptions: © OpenTelemetry Authors, Apache-2.0, from open-telemetry/semantic-conventions (semantic-conventions v1.44.0 (e10a930)) and open-telemetry/semantic-conventions-genai.
Something wrong or out of date? Report a problem with this page.