# Sentry Semantic Convention Attributes Total: 969 attributes | Stable: 687 | Deprecated: 282 --- ## general ### address - Brief: The destination hostname or IP address for a TCP connection. - Type: string - Apply Scrubbing: manual - Examples: - example.com - Aliases: server.address, http.server_name, net.host.name, http.host, server_name, net.peer.name - Deprecated: yes (use server.address) ### app_start_cold - Brief: The duration of a cold app start in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app.vitals.start.cold.value - Deprecated: yes (use app.vitals.start.cold.value) ### app_start_type - Brief: Mobile app start variant. Either cold or warm. - Type: string - Apply Scrubbing: manual - Example: cold - Aliases: app.vitals.start.type - Deprecated: yes (use app.vitals.start.type) ### app_start_warm - Brief: The duration of a warm app start in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app.vitals.start.warm.value - Deprecated: yes (use app.vitals.start.warm.value) ### aws_region - Brief: The geographical region the AWS resource is running - Type: string - Apply Scrubbing: manual - Examples: - us-east-1 - Aliases: cloud.region, gcp_region - Deprecated: yes (use cloud.region) ### blocked_main_thread - Brief: Whether the main thread was blocked by the span. - Type: boolean - Apply Scrubbing: manual - Example: true ### channel - Brief: The channel name that is being used. - Type: string - Apply Scrubbing: manual - Example: mail ### cls - Brief: The value of the recorded Cumulative Layout Shift (CLS) web vital - Type: double - Apply Scrubbing: manual - Example: 0.2361 - Aliases: browser.web_vital.cls.value - Deprecated: yes (use browser.web_vital.cls.value) ### code - Brief: Status code of the RPC returned by the RPC server or generated by the client. - Type: string - Apply Scrubbing: manual - Examples: - DEADLINE_EXCEEDED - Aliases: rpc.grpc.status_code, rpc.response.status_code - Deprecated: yes (use rpc.response.status_code) ### connectionType - Brief: Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc). - Type: string - Apply Scrubbing: manual - Example: wifi - Aliases: network.connection.type, device.connection_type - Deprecated: yes (use network.connection.type) ### deviceMemory - Brief: The estimated total memory capacity of the device, only a rough estimation in gigabytes. - Type: string - Apply Scrubbing: manual - Example: 8 GB - Aliases: device.memory.estimated_capacity - Deprecated: yes (use device.memory.estimated_capacity) ### dist - Brief: The sentry dist. - Type: string - Apply Scrubbing: never - Example: 1.0 - Aliases: sentry.dist - Deprecated: yes (use sentry.dist) ### effectiveConnectionType - Brief: Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g). - Type: string - Apply Scrubbing: manual - Example: 4g - Aliases: network.connection.effective_type - Deprecated: yes (use network.connection.effective_type) ### environment - Brief: The sentry environment. - Type: string - Apply Scrubbing: never - Example: production - Aliases: sentry.environment - Deprecated: yes (use sentry.environment) ### fcp - Brief: The time it takes for the browser to render the first piece of meaningful content on the screen - Type: double - Apply Scrubbing: manual - Example: 547.6951 - Aliases: browser.web_vital.fcp.value - Deprecated: yes (use browser.web_vital.fcp.value) ### fp - Brief: The time it takes for the browser to render the first pixel on the screen - Type: double - Apply Scrubbing: manual - Example: 477.1926 - Aliases: browser.web_vital.fp.value - Deprecated: yes (use browser.web_vital.fp.value) ### frames_frozen_rate - Brief: The rate of frozen frames, or `app.vitals.frames.frozen.count` divided by `app.vitals.frames.total.count`. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Aliases: app.vitals.frames.frozen.rate - Deprecated: yes (use app.vitals.frames.frozen.rate) ### frames_slow_rate - Brief: The rate of slow frames, or `app.vitals.frames.slow.count` divided by `app.vitals.frames.total.count`. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Aliases: app.vitals.frames.slow.rate - Deprecated: yes (use app.vitals.frames.slow.rate) ### fs_error - Brief: The error message of a file system error. - Type: string - Apply Scrubbing: manual - Example: ENOENT: no such file or directory - Deprecated: yes (use error.type) ### gcp_region - Brief: The geographical region the GCP resource is running - Type: string - Apply Scrubbing: manual - Examples: - us-east-1 - Aliases: cloud.region, aws_region - Deprecated: yes (use cloud.region) ### hardwareConcurrency - Brief: The number of logical CPU cores available. - Type: string - Apply Scrubbing: manual - Example: 14 - Aliases: device.processor_count - Deprecated: yes (use device.processor_count) ### id - Brief: A unique identifier for the span. - Type: string - Apply Scrubbing: never - Example: f47ac10b58cc4372a5670e02b2c3d479 ### inp - Brief: The value of the recorded Interaction to Next Paint (INP) web vital - Type: double - Apply Scrubbing: manual - Example: 200 - Aliases: browser.web_vital.inp.value - Deprecated: yes (use browser.web_vital.inp.value) ### lcp - Brief: The value of the recorded Largest Contentful Paint (LCP) web vital - Type: double - Apply Scrubbing: manual - Example: 2500 - Aliases: browser.web_vital.lcp.value - Deprecated: yes (use browser.web_vital.lcp.value) ### method - Brief: The HTTP method used. - Type: string - Apply Scrubbing: manual - Example: GET - Aliases: http.request.method, http.request_method, http.method - Deprecated: yes (use http.request.method) ### port - Brief: The destination port for a TCP connection. - Type: integer - Apply Scrubbing: manual - Examples: - 1337 - Aliases: server.port, net.host.port - Deprecated: yes (use server.port) ### previous_route - Brief: Also used by mobile SDKs to indicate the previous route in the application. - Type: string - Apply Scrubbing: manual - Example: HomeScreen ### profile_id - Brief: The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling. - Type: string - Apply Scrubbing: never - Example: 123e4567e89b12d3a456426614174000 - Aliases: sentry.profile_id - Deprecated: yes (use sentry.profile_id) ### query - Brief: The database query being executed. - Type: string - Apply Scrubbing: auto - Examples: - SELECT * FROM users WHERE id = $1 - Aliases: db.query.text, db.statement - Deprecated: yes (use db.query.text) ### release - Brief: The sentry release. - Type: string - Apply Scrubbing: never - Example: production - Aliases: sentry.release - Deprecated: yes (use sentry.release) ### replay_id - Brief: The id of the sentry replay. - Type: string - Apply Scrubbing: never - Example: 123e4567e89b12d3a456426614174000 - Aliases: sentry.replay_id - Deprecated: yes (use sentry.replay_id) ### replayId - Brief: The id of the sentry replay. - Type: string - Apply Scrubbing: never - Example: 123e4567e89b12d3a456426614174000 - Aliases: sentry.replay_id - Deprecated: yes (use sentry.replay_id) ### route - Brief: The matched route, that is, the path template in the format used by the respective server framework. Also used by mobile SDKs to indicate the current route in the application. - Type: string - Apply Scrubbing: manual - Example: App\Controller::indexAction - Aliases: http.route - Deprecated: yes (use http.route) ### server_name - Brief: The name of the device. On servers and desktops, this is typically the hostname. - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, server.address, http.server_name, net.host.name, http.host, net.peer.name - Deprecated: yes (use server.address) ### stall_percentage - Brief: The fraction of time the app was stalled. Only applies to React Native. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Aliases: app.vitals.stall.percentage - Deprecated: yes (use app.vitals.stall.percentage) ### stall_total_time - Brief: The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Aliases: app.vitals.stall.duration - Deprecated: yes (use app.vitals.stall.duration) ### time_to_full_display - Brief: The duration of time to full display in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app.vitals.ttfd.value - Deprecated: yes (use app.vitals.ttfd.value) ### time_to_initial_display - Brief: The duration of time to initial display in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app.vitals.ttid.value - Deprecated: yes (use app.vitals.ttid.value) ### transaction - Brief: The sentry transaction (segment name). - Type: string - Apply Scrubbing: manual - Example: GET / - Aliases: sentry.segment.name, sentry.transaction - Deprecated: yes (use sentry.segment.name) ### ttfb - Brief: The value of the recorded Time To First Byte (TTFB) web vital in milliseconds - Type: double - Apply Scrubbing: manual - Example: 194 - Aliases: browser.web_vital.ttfb.value - Deprecated: yes (use browser.web_vital.ttfb.value) ### type - Brief: More granular type of the operation happening. - Type: string - Apply Scrubbing: manual - Example: fetch ### url - Brief: The URL of the resource that was fetched. - Type: string - Apply Scrubbing: auto - Example: https://example.com/test?foo=bar#buzz - Aliases: url.full, http.url, aws.request.url, messaging.url - Deprecated: yes (use url.full) --- ## ai ### ai.citations - Brief: References or sources cited by the AI model in its response. - Type: string[] - Apply Scrubbing: auto - Example: ["Citation 1","Citation 2"] - Deprecated: yes ### ai.completion_tokens.used - Brief: The number of tokens used to respond to the message. - Type: integer - Apply Scrubbing: manual - Example: 10 - Aliases: gen_ai.usage.output_tokens, gen_ai.usage.completion_tokens - Deprecated: yes (use gen_ai.usage.output_tokens) ### ai.documents - Brief: Documents or content chunks used as context for the AI model. - Type: string[] - Apply Scrubbing: auto - Example: ["document1.txt","document2.pdf"] - Deprecated: yes ### ai.finish_reason - Brief: The reason why the model stopped generating. - Type: string - Apply Scrubbing: manual - Example: COMPLETE - Aliases: gen_ai.response.finish_reasons - Deprecated: yes (use gen_ai.response.finish_reasons) ### ai.frequency_penalty - Brief: Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: gen_ai.request.frequency_penalty - Deprecated: yes (use gen_ai.request.frequency_penalty) ### ai.function_call - Brief: For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls - Type: string - Apply Scrubbing: manual - Example: function_name - Aliases: gen_ai.tool.name, mcp.tool.name - Deprecated: yes (use gen_ai.tool.name) ### ai.generation_id - Brief: Unique identifier for the completion. - Type: string - Apply Scrubbing: manual - Example: gen_123abc - Aliases: gen_ai.response.id, ai.response.id - Deprecated: yes (use gen_ai.response.id) ### ai.input_messages - Brief: The input messages sent to the model - Type: string - Apply Scrubbing: manual - Example: [{"role": "user", "message": "hello"}] - Aliases: gen_ai.request.messages - Deprecated: yes (use gen_ai.input.messages) ### ai.is_search_required - Brief: Boolean indicating if the model needs to perform a search. - Type: boolean - Apply Scrubbing: manual - Example: false - Deprecated: yes ### ai.metadata - Brief: Extra metadata passed to an AI pipeline step. - Type: string - Apply Scrubbing: manual - Example: {"user_id": 123, "session_id": "abc123"} - Deprecated: yes ### ai.model_id - Brief: The vendor-specific ID of the model used. - Type: string - Apply Scrubbing: manual - Example: gpt-4 - Aliases: gen_ai.request.model, ai.model.id - Deprecated: yes (use gen_ai.request.model) ### ai.model.id - Brief: The id of the model used by the Vercel AI SDK. - Type: string - Apply Scrubbing: manual - Examples: - gpt-4o - Aliases: gen_ai.request.model, ai.model_id - Deprecated: yes (use gen_ai.request.model) ### ai.model.provider - Brief: The provider of the model. - Type: string - Apply Scrubbing: manual - Example: openai - Aliases: gen_ai.provider.name, gen_ai.system - Deprecated: yes (use gen_ai.provider.name) ### ai.pipeline.name - Brief: The name of the AI pipeline. - Type: string - Apply Scrubbing: manual - Example: Autofix Pipeline - Aliases: gen_ai.pipeline.name, langchain.chain.name - Deprecated: yes (use gen_ai.pipeline.name) ### ai.preamble - Brief: For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style. - Type: string - Apply Scrubbing: manual - Example: You are now a clown. - Aliases: gen_ai.system_instructions - Deprecated: yes (use gen_ai.system_instructions) ### ai.presence_penalty - Brief: Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: gen_ai.request.presence_penalty - Deprecated: yes (use gen_ai.request.presence_penalty) ### ai.prompt - Brief: The prompt passed to the Vercel AI SDK, as a stringified object. - Type: string - Apply Scrubbing: manual - Examples: - {"prompt":"What is the weather in Paris?"} - Aliases: gen_ai.input.messages, ai.texts, ai.prompt.messages, gen_ai.prompt - Deprecated: yes (use gen_ai.input.messages) ### ai.prompt_tokens.used - Brief: The number of tokens used to process just the prompt. - Type: integer - Apply Scrubbing: manual - Example: 20 - Aliases: gen_ai.usage.prompt_tokens, gen_ai.usage.input_tokens - Deprecated: yes (use gen_ai.usage.input_tokens) ### ai.prompt.messages - Brief: The input messages sent to the AI model. - Type: string - Apply Scrubbing: manual - Example: [{"role": "user", "message": "hello"}] - Aliases: gen_ai.input.messages, ai.texts, gen_ai.prompt, ai.prompt - Deprecated: yes (use gen_ai.input.messages) ### ai.prompt.tools - Brief: The tools made available to the model, as an array of stringified tool definitions. - Type: string[] - Apply Scrubbing: manual - Examples: - ["{\"type\":\"function\",\"name\":\"get_weather\"}"] - Deprecated: yes (use gen_ai.tool.definitions) ### ai.raw_prompting - Brief: When enabled, the user’s prompt will be sent to the model without any pre-processing. - Type: boolean - Apply Scrubbing: manual - Example: true - Deprecated: yes ### ai.response_format - Brief: For an AI model call, the format of the response - Type: string - Apply Scrubbing: manual - Example: json_object - Deprecated: yes ### ai.response.id - Brief: The id of the response returned by the model. - Type: string - Apply Scrubbing: manual - Examples: - chatcmpl-BuKJgVSKAMTUYbBSjHTMUuNGKzOPY - Aliases: gen_ai.response.id, ai.generation_id - Deprecated: yes (use gen_ai.response.id) ### ai.response.model - Brief: The id of the model that produced the response. - Type: string - Apply Scrubbing: manual - Examples: - gpt-4o-2024-08-06 - Aliases: gen_ai.response.model - Deprecated: yes (use gen_ai.response.model) ### ai.response.object - Brief: The type of the object returned by the model. - Type: string - Apply Scrubbing: manual - Examples: - chat.completion - Deprecated: yes (This attribute is deprecated. The Sentry conventions have no replacement for the raw Vercel AI response object type.) ### ai.response.text - Brief: The text response from the AI model. - Type: string - Apply Scrubbing: manual - Example: The weather in Paris is currently rainy. - Aliases: gen_ai.output.messages, ai.response.toolCalls - Deprecated: yes (use gen_ai.output.messages) ### ai.response.timestamp - Brief: The ISO 8601 timestamp at which the response was produced. - Type: string - Apply Scrubbing: manual - Examples: - 2026-02-19T15:32:11.000Z - Deprecated: yes (This attribute is deprecated. The span start and end timestamps carry the same information.) ### ai.response.toolCalls - Brief: The tool calls in the AI model response. - Type: string - Apply Scrubbing: manual - Example: [{"name": "get_weather", "arguments": {"location": "Paris"}}] - Aliases: gen_ai.output.messages, ai.response.text - Deprecated: yes (use gen_ai.output.messages) ### ai.responses - Brief: The response messages sent back by the AI model. - Type: string[] - Apply Scrubbing: manual - Example: ["hello","world"] - Deprecated: yes (use gen_ai.output.messages) ### ai.schema - Brief: The stringified JSON schema the model output must conform to. - Type: string - Apply Scrubbing: manual - Examples: - {"type":"object","properties":{"city":{"type":"string"}}} - Deprecated: yes (This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.) ### ai.search_queries - Brief: Queries used to search for relevant context or documents. - Type: string[] - Apply Scrubbing: auto - Example: ["climate change effects","renewable energy"] - Deprecated: yes ### ai.search_results - Brief: Results returned from search queries for context. - Type: string[] - Apply Scrubbing: auto - Example: ["search_result_1, search_result_2"] - Deprecated: yes ### ai.seed - Brief: The seed, ideally models given the same seed and same other parameters will produce the exact same output. - Type: string - Apply Scrubbing: manual - Example: 1234567890 - Aliases: gen_ai.request.seed - Deprecated: yes (use gen_ai.request.seed) ### ai.streaming - Brief: Whether the request was streamed back. - Type: boolean - Apply Scrubbing: manual - Example: true - Aliases: gen_ai.response.streaming - Deprecated: yes (use gen_ai.response.streaming) ### ai.tags - Brief: Tags that describe an AI pipeline step. - Type: string - Apply Scrubbing: manual - Example: {"executed_function": "add_integers"} - Deprecated: yes ### ai.temperature - Brief: For an AI model call, the temperature parameter. Temperature essentially means how random the output will be. - Type: double - Apply Scrubbing: manual - Example: 0.1 - Aliases: gen_ai.request.temperature - Deprecated: yes (use gen_ai.request.temperature) ### ai.texts - Brief: Raw text inputs provided to the model. - Type: string[] - Apply Scrubbing: manual - Example: ["Hello, how are you?","What is the capital of France?"] - Aliases: gen_ai.input.messages, ai.prompt.messages, gen_ai.prompt, ai.prompt - Deprecated: yes (use gen_ai.input.messages) ### ai.tool_calls - Brief: For an AI model call, the tool calls that were made. - Type: string[] - Apply Scrubbing: manual - Example: ["tool_call_1","tool_call_2"] - Deprecated: yes (use gen_ai.output.messages) ### ai.toolCall.args - Brief: The arguments of the tool call. - Type: string - Apply Scrubbing: manual - Example: {"location": "Paris"} - Aliases: gen_ai.tool.call.arguments, gen_ai.tool.input - Deprecated: yes (use gen_ai.tool.call.arguments) ### ai.toolCall.result - Brief: The result of the tool call. - Type: string - Apply Scrubbing: manual - Example: rainy, 57°F - Aliases: gen_ai.tool.call.result, gen_ai.tool.output, gen_ai.tool.message, mcp.tool.result.content, anthropic.tool_result.content - Deprecated: yes (use gen_ai.tool.call.result) ### ai.tools - Brief: For an AI model call, the functions that are available - Type: string[] - Apply Scrubbing: manual - Example: ["function_1","function_2"] - Deprecated: yes (use gen_ai.tool.definitions) ### ai.top_k - Brief: Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered). - Type: integer - Apply Scrubbing: manual - Example: 35 - Aliases: gen_ai.request.top_k - Deprecated: yes (use gen_ai.request.top_k) ### ai.top_p - Brief: Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered). - Type: double - Apply Scrubbing: manual - Example: 0.7 - Aliases: gen_ai.request.top_p - Deprecated: yes (use gen_ai.request.top_p) ### ai.total_cost - Brief: The total cost for the tokens used. - Type: double - Apply Scrubbing: manual - Example: 12.34 - Aliases: gen_ai.cost.total_tokens - Search alias: ai.total_cost (currency) - Deprecated: yes (use gen_ai.cost.total_tokens) ### ai.total_tokens.used - Brief: The total number of tokens used to process the prompt. - Type: integer - Apply Scrubbing: manual - Example: 30 - Aliases: gen_ai.usage.total_tokens, ai.usage.tokens - Deprecated: yes (use gen_ai.usage.total_tokens) ### ai.usage.tokens - Brief: The total number of tokens used for the request and the response. - Type: integer - Apply Scrubbing: manual - Examples: - 150 - Aliases: gen_ai.usage.total_tokens, ai.total_tokens.used - Deprecated: yes (use gen_ai.usage.total_tokens) ### ai.values - Brief: The stringified values produced by a Vercel AI SDK object or array generation. - Type: string - Apply Scrubbing: manual - Examples: - [{"city":"Paris"}] - Deprecated: yes (This attribute is deprecated. Use gen_ai.output.messages for model output instead.) ### ai.warnings - Brief: Warning messages generated during model execution. - Type: string[] - Apply Scrubbing: auto - Example: ["Token limit exceeded"] - Deprecated: yes --- ## angular ### angular.version - Brief: The version of the Angular framework - Type: string - Apply Scrubbing: manual - Example: 17.1.0 --- ## anthropic ### anthropic.tool_result.content - Brief: The content of the tool result. - Type: string - Apply Scrubbing: manual - Examples: - rainy, 57°F - Aliases: gen_ai.tool.call.result, gen_ai.tool.output, gen_ai.tool.message, mcp.tool.result.content, ai.toolCall.result - Deprecated: yes (use gen_ai.tool.call.result) --- ## app ### app.app_build - Brief: Internal build identifier, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: 1 - Aliases: app.build - Deprecated: yes (use app.build) ### app.app_identifier - Brief: Version-independent application identifier, often a dotted bundle ID. - Type: string - Apply Scrubbing: manual - Example: com.example.myapp - Aliases: app.identifier - Deprecated: yes (use app.identifier) ### app.app_name - Brief: Human readable application name, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: My App - Aliases: app.name - Deprecated: yes (use app.name) ### app.app_start_time - Brief: Formatted UTC timestamp when the user started the application. - Type: string - Apply Scrubbing: manual - Example: 2025-01-01T00:00:00.000Z - Aliases: app.start_time - Deprecated: yes (use app.start_time) ### app.app_version - Brief: Human readable application version, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: 1.0.0 - Aliases: app.version - Deprecated: yes (use app.version) ### app.build - Brief: Internal build identifier, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: 1 - Aliases: app.app_build ### app.identifier - Brief: Version-independent application identifier, often a dotted bundle ID. - Type: string - Apply Scrubbing: manual - Example: com.example.myapp - Aliases: app.app_identifier ### app.in_foreground - Brief: Whether the application is currently in the foreground. - Type: boolean - Apply Scrubbing: manual - Example: true ### app.name - Brief: Human readable application name, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: My App - Aliases: app.app_name ### app.start_time - Brief: Formatted UTC timestamp when the user started the application. - Type: string - Apply Scrubbing: manual - Example: 2025-01-01T00:00:00.000Z - Aliases: app.app_start_time ### app.version - Brief: Human readable application version, as it appears on the platform. - Type: string - Apply Scrubbing: manual - Example: 1.0.0 - Aliases: app.app_version ### app.vitals.frames.delay.value - Brief: The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/). - Type: integer - Apply Scrubbing: manual - Example: 5 - Aliases: frames.delay ### app.vitals.frames.frozen.count - Brief: The number of frozen frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 3 - Aliases: frames.frozen, sentry.frames.frozen ### app.vitals.frames.frozen.rate - Brief: The fraction of rendered frames that were frozen, calculated as `app.vitals.frames.frozen.count` divided by `app.vitals.frames.total.count`. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: frames_frozen_rate ### app.vitals.frames.slow.count - Brief: The number of slow frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 1 - Aliases: frames.slow, sentry.frames.slow ### app.vitals.frames.slow.rate - Brief: The fraction of rendered frames that were slow, calculated as `app.vitals.frames.slow.count` divided by `app.vitals.frames.total.count`. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Example: 0.25 - Aliases: frames_slow_rate ### app.vitals.frames.total.count - Brief: The number of total frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 60 - Aliases: frames.total, sentry.frames.total ### app.vitals.stall.duration - Brief: The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Example: 4000 - Aliases: stall_total_time ### app.vitals.stall.percentage - Brief: The fraction of transaction duration during which the app was stalled, between 0.0 and 1.0. For example, 0.8 represents 80%. Only applies to React Native. This is computed by Relay. - Type: double - Apply Scrubbing: manual - Example: 0.8 - Aliases: stall_percentage ### app.vitals.start.cold.value - Brief: The duration of a cold app start in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app_start_cold ### app.vitals.start.prewarmed - Brief: Whether the app start was prewarmed. - Type: boolean - Apply Scrubbing: manual - Example: true ### app.vitals.start.reason - Brief: The reason that triggered the app start. - Type: string - Apply Scrubbing: manual - Example: push ### app.vitals.start.screen - Brief: The screen that is rendered when the app start is complete. This is the screen the user first sees and can interact with after launch. The absence of this attribute on the app start span indicates a background app start where no UI was rendered. - Type: string - Apply Scrubbing: manual - Example: MainActivity ### app.vitals.start.type - Brief: The type of app start, for example `cold` or `warm` - Type: string - Apply Scrubbing: manual - Example: cold - Aliases: app_start_type ### app.vitals.start.warm.value - Brief: The duration of a warm app start in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: app_start_warm ### app.vitals.ttfd.value - Brief: The duration of time to full display in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: time_to_full_display ### app.vitals.ttid.value - Brief: The duration of time to initial display in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 - Aliases: time_to_initial_display --- ## art ### art.gc.blocking_count - Brief: Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime - Type: integer - Apply Scrubbing: manual - Example: 1 ### art.gc.blocking_time - Brief: Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds - Type: double - Apply Scrubbing: manual - Example: 11.873 ### art.gc.pre_oome_count - Brief: Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime - Type: integer - Apply Scrubbing: manual - Example: 0 ### art.gc.total_count - Brief: Total number of garbage collections performed by the Android Runtime - Type: integer - Apply Scrubbing: manual - Example: 1 ### art.gc.total_time - Brief: Total time spent in garbage collection by the Android Runtime, in milliseconds - Type: double - Apply Scrubbing: manual - Example: 11.807 ### art.gc.waiting_time - Brief: Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds - Type: double - Apply Scrubbing: manual - Example: 8.054 ### art.memory.free - Brief: Free memory available to the process as reported by the Android Runtime, in bytes - Type: integer - Apply Scrubbing: manual - Example: 3181568 ### art.memory.free_until_gc - Brief: Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes - Type: integer - Apply Scrubbing: manual - Example: 3181568 ### art.memory.free_until_oome - Brief: Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes - Type: integer - Apply Scrubbing: manual - Example: 196083712 ### art.memory.max - Brief: Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes - Type: integer - Apply Scrubbing: manual - Example: 201326592 ### art.memory.total - Brief: Total memory currently allocated to the process by the Android Runtime, in bytes - Type: integer - Apply Scrubbing: manual - Example: 7774208 --- ## aws ### aws.cloudwatch.logs.log_group - Brief: The name of the CloudWatch Logs log group - Type: string - Apply Scrubbing: manual - Example: /aws/lambda/my-function ### aws.cloudwatch.logs.log_stream - Brief: The name of the CloudWatch Logs log stream - Type: string - Apply Scrubbing: manual - Example: 2024/01/01/[$LATEST]abcdef1234567890 ### aws.cloudwatch.logs.url - Brief: The URL to the CloudWatch Logs log group - Type: string - Apply Scrubbing: manual - Example: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/my-log-group ### aws.dynamodb.attribute_definitions - Brief: The JSON-serialized value of each item in the `AttributeDefinitions` request field. - Type: string[] - Apply Scrubbing: manual - Example: ["{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }"] - OpenTelemetry: yes ### aws.dynamodb.attributes_to_get - Brief: The value of the `AttributesToGet` request parameter. - Type: string[] - Apply Scrubbing: manual - Examples: - ["lives","id"] - OpenTelemetry: yes ### aws.dynamodb.consistent_read - Brief: The value of the `ConsistentRead` request parameter. - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### aws.dynamodb.consumed_capacity - Brief: The JSON-serialized value of each item in the `ConsumedCapacity` response field. - Type: string[] - Apply Scrubbing: manual - Example: ["{ \"CapacityUnits\": number, \"GlobalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"LocalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"ReadCapacityUnits\": number, \"Table\": { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number }, \"TableName\": \"string\", \"WriteCapacityUnits\": number }"] - OpenTelemetry: yes ### aws.dynamodb.count - Brief: The value of the `Count` response parameter. - Type: integer - Apply Scrubbing: manual - Example: 10 - OpenTelemetry: yes ### aws.dynamodb.exclusive_start_table - Brief: The value of the `ExclusiveStartTableName` request parameter. - Type: string - Apply Scrubbing: manual - Example: Users - OpenTelemetry: yes ### aws.dynamodb.global_secondary_index_updates - Brief: The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field. - Type: string[] - Apply Scrubbing: manual - Example: ["{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }"] - OpenTelemetry: yes ### aws.dynamodb.global_secondary_indexes - Brief: The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field. - Type: string[] - Apply Scrubbing: manual - Example: ["{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }"] - OpenTelemetry: yes ### aws.dynamodb.index_name - Brief: The value of the `IndexName` request parameter. - Type: string - Apply Scrubbing: manual - Example: name_to_group - OpenTelemetry: yes ### aws.dynamodb.item_collection_metrics - Brief: The JSON-serialized value of the `ItemCollectionMetrics` response field. - Type: string - Apply Scrubbing: manual - Example: { "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] } - OpenTelemetry: yes ### aws.dynamodb.limit - Brief: The value of the `Limit` request parameter. - Type: integer - Apply Scrubbing: manual - Example: 10 - OpenTelemetry: yes ### aws.dynamodb.local_secondary_indexes - Brief: The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. - Type: string[] - Apply Scrubbing: manual - Example: ["{ \"IndexArn\": \"string\", \"IndexName\": \"string\", \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }"] - OpenTelemetry: yes ### aws.dynamodb.projection - Brief: The value of the `ProjectionExpression` request parameter. - Type: string - Apply Scrubbing: manual - Example: Title, Price, Color - OpenTelemetry: yes ### aws.dynamodb.provisioned_read_capacity - Brief: The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. - Type: double - Apply Scrubbing: manual - Example: 1 - OpenTelemetry: yes ### aws.dynamodb.provisioned_write_capacity - Brief: The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. - Type: double - Apply Scrubbing: manual - Example: 2 - OpenTelemetry: yes ### aws.dynamodb.scan_forward - Brief: The value of the `ScanIndexForward` request parameter. - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### aws.dynamodb.scanned_count - Brief: The value of the `ScannedCount` response parameter. - Type: integer - Apply Scrubbing: manual - Example: 50 - OpenTelemetry: yes ### aws.dynamodb.segment - Brief: The value of the `Segment` request parameter. - Type: integer - Apply Scrubbing: manual - Example: 10 - OpenTelemetry: yes ### aws.dynamodb.select - Brief: The value of the `Select` request parameter. - Type: string - Apply Scrubbing: manual - Example: ALL_ATTRIBUTES - OpenTelemetry: yes ### aws.dynamodb.table_count - Brief: The number of items in the `TableNames` response parameter. - Type: integer - Apply Scrubbing: manual - Example: 20 - OpenTelemetry: yes ### aws.dynamodb.table_names - Brief: The keys in the `RequestItems` object field. - Type: string[] - Apply Scrubbing: manual - Example: ["Users","Cats"] - OpenTelemetry: yes - Additional context: - List each table name once, sorted alphabetically, so the same call gets the same value and span description (`DynamoDB.BatchGetItem Cat, Users`), whatever the order of the tables in the request. ### aws.dynamodb.total_segments - Brief: The value of the `TotalSegments` request parameter. - Type: integer - Apply Scrubbing: manual - Example: 100 - OpenTelemetry: yes ### aws.extended_request_id - Brief: The AWS extended request ID as returned in the response headers. - Type: string - Apply Scrubbing: manual - Example: wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ= - Aliases: aws.request.extended_id - OpenTelemetry: yes ### aws.kinesis.stream_name - Brief: The name of the AWS Kinesis stream the request refers to. - Type: string - Apply Scrubbing: manual - Example: some-stream-name - Aliases: aws.kinesis.stream.name - OpenTelemetry: yes ### aws.kinesis.stream.name - Brief: The name of the AWS Kinesis stream the request refers to. - Type: string - Apply Scrubbing: manual - Example: some-stream-name - Aliases: aws.kinesis.stream_name - Deprecated: yes (use aws.kinesis.stream_name) ### aws.lambda.aws_request_id - Brief: The AWS request ID as received by the Lambda function runtime - Type: string - Apply Scrubbing: manual - Example: 8476a536-e9f4-11e8-9739-2dfe598c3fcd - Aliases: faas.invocation_id, faas.execution - Deprecated: yes (use faas.invocation_id) ### aws.lambda.execution_duration_in_millis - Brief: The execution duration of the Lambda function invocation in milliseconds - Type: double - Apply Scrubbing: manual - Example: 1234.56 ### aws.lambda.function_name - Brief: The name of the Lambda function - Type: string - Apply Scrubbing: manual - Example: my-function - Aliases: faas.name - Deprecated: yes (use faas.name) ### aws.lambda.function_version - Brief: The version of the Lambda function - Type: string - Apply Scrubbing: manual - Example: $LATEST - Aliases: faas.version - Deprecated: yes (use faas.version) ### aws.lambda.initialization_type - Brief: How AWS Lambda initialized the execution environment, as reported by AWS_LAMBDA_INITIALIZATION_TYPE. - Type: string - Apply Scrubbing: manual - Examples: - native-http - on-demand - provisioned-concurrency - snap-start ### aws.lambda.invoked_arn - Brief: The full ARN of the Lambda function that was invoked - Type: string - Apply Scrubbing: manual - Example: arn:aws:lambda:us-east-1:123456789012:function:my-function - Aliases: aws.lambda.invoked_function_arn - OpenTelemetry: yes ### aws.lambda.invoked_function_arn - Brief: The full ARN of the Lambda function that was invoked - Type: string - Apply Scrubbing: manual - Example: arn:aws:lambda:us-east-1:123456789012:function:my-function - Aliases: aws.lambda.invoked_arn - Deprecated: yes (use aws.lambda.invoked_arn) ### aws.lambda.remaining_time_in_millis - Brief: The remaining time in milliseconds before the Lambda function times out - Type: double - Apply Scrubbing: manual - Example: 5000 ### aws.lambda.resource_mapping.id - Brief: The UUID of the [AWS Lambda EventSource Mapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html). An event source is mapped to a lambda function. Its contents are read by Lambda and used to trigger a function. This isn't available in the lambda execution context or the lambda runtime environment. This is going to be populated by the AWS SDK for each language when that UUID is present. Some of these operations are Create/Delete/Get/List/Update EventSourceMapping. - Type: string - Apply Scrubbing: manual - Examples: - 587ad24b-03b9-4413-8202-bbd56b36e5b7 - OpenTelemetry: yes ### aws.lambda.target_function.name - Brief: The name of the AWS Lambda function that an AWS SDK call acts on. - Type: string - Apply Scrubbing: manual - Examples: - billing - Additional context: - Set on Lambda API calls that take a `FunctionName`, such as `GetFunction` or `UpdateFunctionCode`, without a version or alias qualifier (`billing`, not `billing:prod`). Different from `faas.name` which is the function the code runs in. ### aws.lambda.web.endpoint_name - Brief: The name of the AWS Lambda Web Function endpoint that received the request, as reported by the lambda-web-endpoint-name request header. - Type: string - Apply Scrubbing: manual - Examples: - prod - canary ### aws.log.group.names - Brief: The name(s) of the AWS log group(s) an application is writing to. - Type: string[] - Apply Scrubbing: manual - Example: ["/aws/lambda/my-function","opentelemetry-service"] - OpenTelemetry: yes ### aws.log.stream.names - Brief: The name(s) of the AWS log stream(s) an application is writing to. - Type: string[] - Apply Scrubbing: manual - Example: ["logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"] - OpenTelemetry: yes ### aws.operation_name - Brief: The name of the API operation invoked on an AWS service. - Type: string - Apply Scrubbing: manual - Examples: - PutObject - Aliases: rpc.method - Deprecated: yes (use rpc.method) ### aws.request_id - Brief: The AWS request ID as returned in the response headers. - Type: string - Apply Scrubbing: manual - Example: 79b9da39-b7ae-508a-a6bc-864b2829c622 - Aliases: aws.request.id - OpenTelemetry: yes ### aws.request.extended_id - Brief: The AWS extended request ID as returned in the response headers. - Type: string - Apply Scrubbing: manual - Example: wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ= - Aliases: aws.extended_request_id - Deprecated: yes (use aws.extended_request_id) ### aws.request.id - Brief: The AWS request ID as returned in the response headers. - Type: string - Apply Scrubbing: manual - Example: 79b9da39-b7ae-508a-a6bc-864b2829c622 - Aliases: aws.request_id - Deprecated: yes (use aws.request_id) ### aws.request.url - Brief: The URL of the AWS API request. - Type: string - Apply Scrubbing: auto - Example: https://sqs.us-east-1.amazonaws.com/123456789/my-queue - Aliases: url.full, http.url, url, messaging.url - Deprecated: yes (use url.full) ### aws.s3.bucket - Brief: The S3 bucket name the request refers to. - Type: string - Apply Scrubbing: manual - Example: ot-demo-test - OpenTelemetry: yes ### aws.s3.copy_source - Brief: The source object (in the form bucket/key) for the copy operation. - Type: string - Apply Scrubbing: auto - Examples: - someFile.yml - OpenTelemetry: yes - Additional context: - Applicable to the copy-object and upload-part-copy operations, corresponding to the CopySource parameter. ### aws.s3.delete - Brief: The JSON-serialized value of Delete request field, which specifies the objects to be deleted. - Type: string - Apply Scrubbing: auto - Examples: - {"Objects":[{"Key":"someFile.yml","VersionId":"3HL4kqtJlcpXroDTDmJ"}],"Quiet":false} - OpenTelemetry: yes - Additional context: - Applicable only to the delete-objects operation, corresponding to its Delete parameter. ### aws.s3.key - Brief: The S3 object key the request refers to. Corresponds to the --key parameter of the S3 API operations. - Type: string - Apply Scrubbing: auto - Examples: - someFile.yml - OpenTelemetry: yes ### aws.s3.part_number - Brief: The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000. - Type: integer - Apply Scrubbing: manual - Examples: - 3456 - OpenTelemetry: yes - Additional context: - Applicable only to the upload-part and upload-part-copy operations. ### aws.s3.upload_id - Brief: Upload ID that identifies the multipart upload. - Type: string - Apply Scrubbing: manual - Examples: - dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ - OpenTelemetry: yes ### aws.secretsmanager.secret.arn - Brief: The ARN of the Secret stored in Secrets Manager. - Type: string - Apply Scrubbing: manual - Example: arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretName-6RandomCharacters - OpenTelemetry: yes ### aws.secretsmanager.secret.name - Brief: The name of the secret stored in AWS Secrets Manager. - Type: string - Apply Scrubbing: manual - Examples: - db-password - prod/billing/api-key - Additional context: - Without the hyphen and six random characters that Secrets Manager appends to the name in the secret's ARN (`db-password`, not `db-password-AbCdEf`). ### aws.sns.topic.arn - Brief: The ARN of the AWS SNS Topic. An Amazon SNS topic is a logical access point that acts as a communication channel. - Type: string - Apply Scrubbing: manual - Example: arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE - OpenTelemetry: yes ### aws.sqs.queue.url - Brief: The URL of the AWS SQS Queue. It’s a unique identifier for a queue in Amazon Simple Queue Service (SQS) and is used to access the queue and perform actions on it. - Type: string - Apply Scrubbing: manual - Examples: - https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue - OpenTelemetry: yes ### aws.step_functions.activity.arn - Brief: The ARN of the AWS Step Functions Activity. - Type: string - Apply Scrubbing: manual - Example: arn:aws:states:us-east-1:123456789012:activity:get-greeting - OpenTelemetry: yes ### aws.step_functions.activity.name - Brief: The name of the AWS Step Functions activity. - Type: string - Apply Scrubbing: manual - Examples: - resize-image - Additional context: - The last part of the activity ARN (`arn:aws:states:us-east-1:123456789012:activity:resize-image`). ### aws.step_functions.execution.arn - Brief: The ARN of the AWS Step Functions Execution. - Type: string - Apply Scrubbing: manual - Examples: - arn:aws:states:us-east-1:123456789012:execution:myStateMachine:myExecution ### aws.step_functions.state_machine.arn - Brief: The ARN of the AWS Step Functions State Machine. - Type: string - Apply Scrubbing: manual - Example: arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1 - OpenTelemetry: yes ### aws.step_functions.state_machine.name - Brief: The name of the AWS Step Functions state machine. - Type: string - Apply Scrubbing: manual - Examples: - orders - Additional context: - Contains no version or alias qualifier (`orders`, not `orders:1` or `orders:prod`). --- ## browser ### browser.bfcache.frame - Brief: Which frame in the page's frame tree a back/forward cache not-restored reason originated from: the top document or a child frame. - Type: string - Apply Scrubbing: manual - Examples: - top - child ### browser.bfcache.not_restored_reason_count - Brief: The number of reported reasons a page was not restored from the back/forward cache on a back/forward navigation. 0 when the browser reported no reasons (e.g. non-Chromium browsers). - Type: integer - Apply Scrubbing: manual - Examples: - 2 ### browser.bfcache.outcome - Brief: Whether a back/forward navigation was restored from the browser's back/forward cache (bfcache). 'hit' means the page was restored; 'miss' means it was reloaded. - Type: string - Apply Scrubbing: manual - Examples: - hit - miss ### browser.bfcache.reason - Brief: A browser-reported reason a page was not restored from the back/forward cache on a back/forward navigation, taken from the notRestoredReasons API. Reported per reason (a single miss can have several). Currently Chromium-only. - Type: string - Apply Scrubbing: manual - Examples: - unload-listener - websocket - idbversionchangeevent - response-cache-control-no-store ### browser.name - Brief: The name of the browser. - Type: string - Apply Scrubbing: manual - Example: Chrome - Aliases: sentry.browser.name ### browser.navigation.id - Brief: The identifier of the navigation the measurement belongs to, incremented by the browser for each navigation within a page's lifetime. - Type: integer - Apply Scrubbing: manual - Examples: - 1 - 3 - 0 - Additional context: - Sourced from `PerformanceEntry.navigationId`, defined by the Soft Navigations spec. Despite its origin it is not soft-navigation specific: the field is set on the `PerformanceNavigationTiming` entry of a hard navigation too. - The value starts at 1 for the initial page load and increments for each subsequent navigation. It is only unique within a single page lifetime, not globally. - A value of 0 is a fallback rather than a real navigation id: web-vitals reports 0 when the browser does not expose `PerformanceEntry.navigationId`, so 0 means the id is unknown. - Pairs with `browser.navigation.type`: the type says how the browser arrived at the page, the id says which navigation of that page a measurement belongs to. - Not to be confused with the Navigation API's `NavigationHistoryEntry.id`, which is an opaque string identifying a history entry rather than a counter, and is not interchangeable with this value. - Also distinct from the `router.navigation.*` attributes, which describe the client-side router's own view of a navigation. Those come from the framework, this one comes from the browser, and both can be set on the same span. ### browser.navigation.type - Brief: The type of navigation the browser performed to arrive at the page the metrics were measured on. - Type: string - Apply Scrubbing: manual - Examples: - navigate - reload - back-forward - back-forward-cache - prerender - restore - soft-navigation - Additional context: - Carries the `navigationType` value reported by the web-vitals library verbatim. web-vitals hyphenates the Navigation Timing `PerformanceNavigationTiming.type` value (`back_forward` becomes `back-forward`) and adds states that API does not cover: `back-forward-cache` for a restore from the back/forward cache, `prerender`, `restore` for a discarded tab being reloaded, and `soft-navigation`. - `back-forward-cache` is only set when the page was actually restored from the back/forward cache. A back/forward navigation that missed the cache is a full document load and reports `back-forward`. Use the `browser.bfcache.*` attributes to diagnose misses. - `prerender` pages finish painting before activation, so their paint timings are offset by `browser.performance.navigation.activation_start`. Keep them separate when aggregating web vitals. - Not to be confused with `router.navigation.type`, which holds the client-side router's own vocabulary (`link`, `goto`, `router.push`). The two are independent and can both be set on the same span. ### browser.paint.type - Brief: The type of paint timing entry reported by the browser. - Type: string - Apply Scrubbing: manual - Examples: - first-paint - first-contentful-paint ### browser.performance.navigation.activation_start - Brief: The time between initiating a navigation to a page and the browser activating the page - Type: double - Apply Scrubbing: manual - Example: 1.983 - Aliases: performance.activationStart ### browser.performance.time_origin - Brief: The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated - Type: double - Apply Scrubbing: manual - Example: 1776185678.886 - Aliases: performance.timeOrigin ### browser.report.type - Brief: A browser report sent via reporting API.. - Type: string - Apply Scrubbing: manual - Example: network-error ### browser.script.invoker - Brief: How a script was called in the browser. - Type: string - Apply Scrubbing: manual - Example: Window.requestAnimationFrame ### browser.script.invoker_type - Brief: Browser script entry point type. - Type: string - Apply Scrubbing: manual - Example: event-listener ### browser.script.source_char_position - Brief: A number representing the script character position of the script. - Type: integer - Apply Scrubbing: manual - Example: 678 ### browser.version - Brief: The version of the browser. - Type: string - Apply Scrubbing: manual - Example: 120.0.6099.130 - Aliases: sentry.browser.version ### browser.web_vital.cls.report_event - Brief: The event that caused the SDK to report CLS (pagehide or navigation) - Type: string - Apply Scrubbing: manual - Example: navigation - Deprecated: yes (The JavaScript SDK stopped setting this in v11. With per-navigation web vitals, web-vitals decides when the CLS value is final, so there is no report event to record. No replacement.) ### browser.web_vital.cls.source. - Brief: The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N - Type: string - Apply Scrubbing: manual - Example: body > div#app - Aliases: cls.source. - Has dynamic suffix: yes ### browser.web_vital.cls.value - Brief: The value of the recorded Cumulative Layout Shift (CLS) web vital - Type: double - Apply Scrubbing: manual - Example: 0.2361 - Aliases: cls ### browser.web_vital.fcp.value - Brief: The time it takes for the browser to render the first piece of meaningful content on the screen - Type: double - Apply Scrubbing: manual - Example: 547.6951 - Aliases: fcp ### browser.web_vital.fp.value - Brief: The time in milliseconds it takes for the browser to render the first pixel on the screen - Type: double - Apply Scrubbing: manual - Example: 477.1926 - Aliases: fp ### browser.web_vital.inp.input_delay - Brief: The time between the user interacting with the page and the browser starting to run the event handlers, for the interaction INP was reported on, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 120 - Additional context: - One of the three INP subparts, which add up to `browser.web_vital.inp.value`: input delay, processing duration and presentation delay. Named after `inputDelay` in the web-vitals attribution build. - Measured from the interaction's `PerformanceEventTiming` entry as `processingStart` minus `startTime`. - Omitted when INP is reported without an interaction to attribute it to, like `browser.web_vital.inp.target`. ### browser.web_vital.inp.interaction_type - Brief: The kind of user interaction INP was reported on - Type: string - Apply Scrubbing: manual - Examples: - click - hover - drag - press - Additional context: - One of `click`, `hover`, `drag` or `press`, derived from the DOM event name of the Event Timing entry: pointer, mouse and touch events map to `click`, `mouseover` and similar to `hover`, drag and drop events to `drag`, and keyboard and `input` events to `press`. The same value forms the suffix of the span's `ui.interaction.*` op. - Not to be confused with the `interactionType` of the web-vitals attribution build, which only distinguishes `pointer` and `keyboard`. - Omitted when INP is reported without an interaction to attribute it to, see `browser.web_vital.inp.target`. The op of such a span still falls into `ui.interaction.click` so that it stays within the interaction span family, which makes this attribute, not the op, the way to tell a real click from a value with no interaction. ### browser.web_vital.inp.presentation_delay - Brief: The time between the event handlers finishing and the browser presenting the next frame, for the interaction INP was reported on, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 100 - Additional context: - One of the three INP subparts, which add up to `browser.web_vital.inp.value`. Named after `presentationDelay` in the web-vitals attribution build. - Measured from the interaction's `PerformanceEventTiming` entry as `startTime` plus `duration` minus `processingEnd`. - Omitted when INP is reported without an interaction to attribute it to, like `browser.web_vital.inp.target`. ### browser.web_vital.inp.processing_duration - Brief: The time it took the event handlers to run, for the interaction INP was reported on, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 140 - Additional context: - One of the three INP subparts, which add up to `browser.web_vital.inp.value`. Named after `processingDuration` in the web-vitals attribution build. - Measured from the interaction's `PerformanceEventTiming` entry as `processingEnd` minus `processingStart`. - Omitted when INP is reported without an interaction to attribute it to, like `browser.web_vital.inp.target`. ### browser.web_vital.inp.target - Brief: The HTML element selector or component name of the element the user interacted with, for the interaction INP was reported on - Type: string - Apply Scrubbing: manual - Examples: - body > div#app > button.submit - SubmitButton - Additional context: - Named after `PerformanceEventTiming.target`, the way `browser.web_vital.lcp.element` is named after `LargestContentfulPaint.element`. The value uses the same format as that attribute. - Omitted when INP is reported without an interaction to attribute it to. web-vitals reports such a value for a soft navigation whose interactions all stayed below the Event Timing duration threshold, so there is no element to name. The span is still named and still carries `browser.web_vital.inp.value`. ### browser.web_vital.inp.value - Brief: The value of the recorded Interaction to Next Paint (INP) web vital - Type: double - Apply Scrubbing: manual - Example: 200 - Aliases: inp ### browser.web_vital.lcp.element - Brief: The HTML element selector or component name for which LCP was reported - Type: string - Apply Scrubbing: manual - Example: body > div#app > div#container > div - Aliases: lcp.element ### browser.web_vital.lcp.element_render_delay - Brief: The time between the LCP resource finishing loading and the LCP element being rendered, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 410 - Additional context: - One of the four LCP subparts, which add up to `browser.web_vital.lcp.value`. Named after `elementRenderDelay` in the web-vitals attribution build. - Measured as the LCP value minus the LCP resource's `responseEnd`. When the LCP element is text, it covers all time after TTFB. - For a prerendered page, timestamps are measured from `activationStart`. ### browser.web_vital.lcp.id - Brief: The id of the dom element responsible for the largest contentful paint - Type: string - Apply Scrubbing: manual - Example: #gero - Aliases: lcp.id ### browser.web_vital.lcp.load_time - Brief: The time it took for the LCP element to be loaded - Type: integer - Apply Scrubbing: manual - Example: 1402 - Aliases: lcp.loadTime ### browser.web_vital.lcp.render_time - Brief: The time it took for the LCP element to be rendered - Type: integer - Apply Scrubbing: manual - Example: 1685 - Aliases: lcp.renderTime ### browser.web_vital.lcp.report_event - Brief: The event that caused the SDK to report LCP (pagehide or navigation) - Type: string - Apply Scrubbing: manual - Example: pagehide - Deprecated: yes (The JavaScript SDK stopped setting this in v11. With per-navigation web vitals, web-vitals decides when the LCP value is final, so there is no report event to record. No replacement.) ### browser.web_vital.lcp.resource_load_delay - Brief: The time between the first byte of the document arriving and the browser starting to load the LCP resource, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 320.5 - Additional context: - One of the four LCP subparts, which add up to `browser.web_vital.lcp.value`: TTFB (`browser.web_vital.ttfb.value`), resource load delay, resource load duration and element render delay. Named after `resourceLoadDelay` in the web-vitals attribution build. - Measured as the LCP resource's `requestStart` (or `startTime` when `requestStart` is not exposed) minus TTFB. It is 0 when the LCP element is text, since no resource is loaded. - For a prerendered page, timestamps are measured from `activationStart`. ### browser.web_vital.lcp.resource_load_duration - Brief: The time it took to load the LCP resource, in milliseconds - Type: double - Apply Scrubbing: manual - Examples: - 780.2 - Additional context: - One of the four LCP subparts, which add up to `browser.web_vital.lcp.value`. Named after `resourceLoadDuration` in the web-vitals attribution build. - Measured as the LCP resource's `responseEnd` minus its `requestStart` (or `startTime` when `requestStart` is not exposed). It is 0 when the LCP element is text, since no resource is loaded. - For a prerendered page, timestamps are measured from `activationStart`. ### browser.web_vital.lcp.size - Brief: The size of the largest contentful paint element - Type: integer - Apply Scrubbing: manual - Example: 1024 - Aliases: lcp.size ### browser.web_vital.lcp.url - Brief: The url of the dom element responsible for the largest contentful paint - Type: string - Apply Scrubbing: auto - Example: https://example.com/static/img.png - Aliases: lcp.url ### browser.web_vital.lcp.value - Brief: The value of the recorded Largest Contentful Paint (LCP) web vital - Type: double - Apply Scrubbing: manual - Example: 2500 - Aliases: lcp ### browser.web_vital.ttfb.request_time - Brief: The time it takes for the server to process the initial request and send the first byte of a response to the user's browser - Type: double - Apply Scrubbing: manual - Example: 1554.5814 - Aliases: ttfb.requestTime ### browser.web_vital.ttfb.value - Brief: The value of the recorded Time To First Byte (TTFB) web vital in Milliseconds - Type: double - Apply Scrubbing: manual - Example: 194.3322 - Aliases: ttfb --- ## cache ### cache.hit - Brief: If the cache was hit during this span. - Type: boolean - Apply Scrubbing: manual - Example: true ### cache.item_age - Brief: The age of the cache entry in seconds, measured at read time. - Type: integer - Apply Scrubbing: manual - Examples: - 5 - 3600 - Search alias: cache.item_age (second) - Additional context: - Set on reads that return an entry. Absent on a miss, or when the cache does not report a write time. - Clamped to 0. On a shared cache, the writer's clock and the reader's clock can drift far enough to make the age negative. - Can exceed `cache.ttl`. A cache that discards an expired entry on read still reports the age of that entry, with `cache.hit: false`. ### cache.item_size - Brief: The size of the requested item in the cache. In bytes. - Type: integer - Apply Scrubbing: manual - Example: 58 - Search alias: cache.item_size (byte) ### cache.key - Brief: The key of the cache accessed. - Type: string[] - Apply Scrubbing: manual - Example: ["my-cache-key","my-other-cache-key"] ### cache.operation - Brief: The operation being performed on the cache. - Type: string - Apply Scrubbing: manual - Examples: - get - put - remove ### cache.tags - Brief: The tags attached to the cache entry. Tags group entries so a cache can invalidate them together. - Type: string[] - Apply Scrubbing: auto (Applications pick tag values freely and often build them from record identifiers such as a user id.) - Examples: - ["blog-posts","post-42"] - ["products"] - Additional context: - Cache library examples that support tags: Next.js `cacheTag()`, Symfony `ItemInterface::tag()`, Laravel `Cache::tags()`. - HTTP caches take tags from a response header. Cloudflare reads `Cache-Tag`, Fastly reads `Surrogate-Key`. - Record only the tags the application declared. Leave out implicit tags that the framework adds itself, for example one tag per route. - The tags describe the entry, not the operation. Take them from the entry the cache returned or stored. ### cache.ttl - Brief: The TTL (maximum lifetime) of the cache entry in seconds - Type: integer - Apply Scrubbing: manual - Example: 120 - Additional context: - Counted from the write. On a read, the value is the full TTL, not the time that remains. - A value of 0 means the entry expires immediately, as with HTTP `max-age=0`. Round a fractional TTL up, so 0.3 seconds becomes 1, not 0. - Omit the attribute when the entry never expires, the TTL is unknown, or each read restarts the TTL. ### cache.write - Brief: If the cache operation resulted in a write to the cache. - Type: boolean - Apply Scrubbing: manual - Example: true --- ## client ### client.address - Brief: Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - Type: string - Apply Scrubbing: auto - Example: example.com - Aliases: http.client_ip - OpenTelemetry: yes ### client.port - Brief: Client port number. - Type: integer - Apply Scrubbing: manual - Example: 5432 - OpenTelemetry: yes --- ## cloud ### cloud.account.id - Brief: The cloud account ID the resource is assigned to - Type: string - Apply Scrubbing: manual - Example: 123456789012 - OpenTelemetry: yes ### cloud.availability_zone - Brief: Cloud regions often have multiple, isolated locations known as zones to increase availability - Type: string - Apply Scrubbing: manual - Example: us-east-1c - OpenTelemetry: yes ### cloud.platform - Brief: The cloud platform in use - Type: string - Apply Scrubbing: manual - Example: aws_lambda - OpenTelemetry: yes ### cloud.provider - Brief: Name of the cloud provider - Type: string - Apply Scrubbing: manual - Example: aws - OpenTelemetry: yes ### cloud.region - Brief: The geographical region the resource is running - Type: string - Apply Scrubbing: manual - Example: us-east-1 - Aliases: aws_region, gcp_region - OpenTelemetry: yes ### cloud.resource_id - Brief: Cloud provider-specific native identifier of the monitored cloud resource - Type: string - Apply Scrubbing: manual - Example: arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function - Aliases: faas.id - OpenTelemetry: yes - Additional context: - This can be an identifier for a resource in AWS, GCP, or Azure. There may be some overlap in values found here with other attributes. For instance, an AWS lambda ARN may be found here as well as in `aws.lambda.invoked_arn`. OTEL recommends setting them alongside each other. --- ## cloudflare ### cloudflare.d1.duration - Brief: The duration of a Cloudflare D1 operation. - Type: integer - Apply Scrubbing: manual - Example: 543 ### cloudflare.d1.query_type - Brief: The type of query executed in a Cloudflare D1 operation - Type: string - Apply Scrubbing: manual - Example: run - Aliases: db.operation.name, db.operation, redis.command - Deprecated: yes (use db.operation.name) ### cloudflare.d1.rows_read - Brief: The number of rows read in a Cloudflare D1 operation. - Type: integer - Apply Scrubbing: manual - Example: 12 ### cloudflare.d1.rows_written - Brief: The number of rows written in a Cloudflare D1 operation. - Type: integer - Apply Scrubbing: manual - Example: 12 ### cloudflare.durable_object.query.bindings - Brief: The number of bound parameters passed to the SQL exec call. - Type: integer - Apply Scrubbing: manual - Example: 2 ### cloudflare.durable_object.response.rows_read - Brief: The number of rows read by a Cloudflare Durable Object SQL operation. - Type: integer - Apply Scrubbing: manual - Example: 12 ### cloudflare.durable_object.response.rows_written - Brief: The number of rows written by a Cloudflare Durable Object SQL operation. - Type: integer - Apply Scrubbing: manual - Example: 1 ### cloudflare.r2.bucket - Brief: The name of the Cloudflare R2 bucket binding - Type: string - Apply Scrubbing: manual - Example: MY_BUCKET ### cloudflare.r2.operation - Brief: The R2 API operation being performed - Type: string - Apply Scrubbing: manual - Example: GetObject ### cloudflare.r2.request.delimiter - Brief: The delimiter used to group objects in an R2 list operation - Type: string - Apply Scrubbing: manual - Example: / ### cloudflare.r2.request.key - Brief: The object key used in the R2 operation - Type: string - Apply Scrubbing: manual - Example: my-file.txt ### cloudflare.r2.request.part_number - Brief: The part number in a multipart upload operation - Type: integer - Apply Scrubbing: manual - Example: 1 ### cloudflare.r2.request.prefix - Brief: The prefix used to filter objects in an R2 list operation - Type: string - Apply Scrubbing: manual - Example: images/ ### cloudflare.workflow.attempt - Brief: The current attempt number for a Cloudflare Workflow step - Type: integer - Apply Scrubbing: manual - Example: 1 ### cloudflare.workflow.retries.backoff - Brief: The backoff strategy for Cloudflare Workflow step retries - Type: string - Apply Scrubbing: manual - Example: exponential ### cloudflare.workflow.retries.delay - Brief: The delay between Cloudflare Workflow step retries - Type: string - Apply Scrubbing: manual - Example: 5 seconds ### cloudflare.workflow.retries.limit - Brief: The maximum number of retries for a Cloudflare Workflow step - Type: integer - Apply Scrubbing: manual - Example: 3 ### cloudflare.workflow.timeout - Brief: The timeout duration for a Cloudflare Workflow step - Type: string - Apply Scrubbing: manual - Example: 1 minute --- ## cls ### cls.source. - Brief: The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N - Type: string - Apply Scrubbing: manual - Example: body > div#app - Aliases: browser.web_vital.cls.source. - Has dynamic suffix: yes - Deprecated: yes (use browser.web_vital.cls.source.) --- ## code ### code.file.path - Brief: The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). - Type: string - Apply Scrubbing: manual - Example: /app/myapplication/http/handler/server.py - Aliases: code.filepath, sveltekit.load.node_id - OpenTelemetry: yes ### code.filepath - Brief: The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). - Type: string - Apply Scrubbing: manual - Example: /app/myapplication/http/handler/server.py - Aliases: code.file.path, sveltekit.load.node_id - OpenTelemetry: yes - Deprecated: yes (use code.file.path) ### code.function - Brief: The method or function name, or equivalent (usually rightmost part of the code unit's name). - Type: string - Apply Scrubbing: manual - Example: server_request - Aliases: code.function.name, django.function_name - OpenTelemetry: yes ### code.function.name - Brief: The method or function fully-qualified name without arguments. - Type: string - Apply Scrubbing: manual - Example: server_request - Aliases: code.function, django.function_name - OpenTelemetry: yes ### code.line.number - Brief: The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function - Type: integer - Apply Scrubbing: manual - Example: 42 - Aliases: code.lineno - OpenTelemetry: yes ### code.lineno - Brief: The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function - Type: integer - Apply Scrubbing: manual - Example: 42 - Aliases: code.line.number - OpenTelemetry: yes - Deprecated: yes (use code.line.number) ### code.namespace - Brief: The 'namespace' within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit. - Type: string - Apply Scrubbing: manual - Example: http.handler - OpenTelemetry: yes --- ## connection ### connection.rtt - Brief: Specifies the estimated effective round-trip time of the current connection, in milliseconds. - Type: integer - Apply Scrubbing: manual - Example: 100 - Aliases: network.connection.rtt - Deprecated: yes (use network.connection.rtt) --- ## culture ### culture.calendar - Brief: The calendar system used by the culture. - Type: string - Apply Scrubbing: manual - Example: GregorianCalendar ### culture.display_name - Brief: Human readable name of the culture. - Type: string - Apply Scrubbing: manual - Example: English (United States) ### culture.is_24_hour_format - Brief: Whether the culture uses 24-hour time format. - Type: boolean - Apply Scrubbing: manual - Example: true ### culture.locale - Brief: The locale identifier following RFC 4646. - Type: string - Apply Scrubbing: manual - Example: en-US ### culture.timezone - Brief: The timezone of the culture, as a geographic timezone identifier. - Type: string - Apply Scrubbing: manual - Example: Europe/Vienna --- ## db ### db.collection.name - Brief: The name of a collection (table, container) within the database. - Type: string - Apply Scrubbing: manual - Examples: - users - ,customers,orders, - Aliases: db.mongodb.collection - OpenTelemetry: yes - Additional context: - For a call on more than one collection: the unique names, sorted and wrapped in commas (`,customers,orders,`), so each name matches `,,`. ### db.connection_string - Brief: The connection string used to connect to the database. - Type: string - Apply Scrubbing: auto - Examples: - redis://localhost:6379 - OpenTelemetry: yes - Deprecated: yes (This attribute is deprecated. The connection is described by server.address and server.port instead, so the value cannot be copied to a single replacement attribute.) ### db.driver.name - Brief: The name of the driver used for the database connection. - Type: string - Apply Scrubbing: manual - Example: psycopg2 ### db.mongodb.collection - Brief: The MongoDB collection being accessed. - Type: string - Apply Scrubbing: manual - Example: users - Aliases: db.collection.name - Deprecated: yes (use db.collection.name) ### db.name - Brief: The name of the database being accessed. - Type: string - Apply Scrubbing: manual - Example: customers - Aliases: db.namespace - OpenTelemetry: yes - Deprecated: yes (use db.namespace) ### db.namespace - Brief: The name of the database being accessed. - Type: string - Apply Scrubbing: manual - Example: customers - Aliases: db.name - OpenTelemetry: yes ### db.operation - Brief: The name of the operation being executed. - Type: string - Apply Scrubbing: manual - Example: SELECT - Aliases: db.operation.name, cloudflare.d1.query_type, redis.command - OpenTelemetry: yes - Deprecated: yes (use db.operation.name) ### db.operation.batch.size - Brief: The number of queries included in a batch operation. Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1. - Type: integer - Apply Scrubbing: manual - Example: 3 - OpenTelemetry: yes ### db.operation.name - Brief: The name of the operation being executed. - Type: string - Apply Scrubbing: manual - Example: SELECT - Aliases: db.operation, cloudflare.d1.query_type, redis.command - OpenTelemetry: yes ### db.params - Brief: The query bindings for a database request. - Type: string - Apply Scrubbing: auto - Examples: - [{"x": 100}] - Deprecated: yes (use db.query.parameter.) ### db.query.parameter. - Brief: A query parameter used in db.query.text, with being the parameter name, and the attribute value being a string representation of the parameter value. - Type: string - Apply Scrubbing: auto - Example: db.query.parameter.foo='123' - Has dynamic suffix: yes - OpenTelemetry: yes ### db.query.summary - Brief: A shortened representation of operation(s) in the full query. This attribute must be low-cardinality and should only contain the operation table names. - Type: string - Apply Scrubbing: manual - Examples: - SELECT users - INSERT products; UPDATE orders - OpenTelemetry: yes ### db.query.text - Brief: The database parameterized query being executed. Any parameter values (filters, insertion values, etc) should be replaced with parameter placeholders. If applicable, use `db.query.parameter.` to add the parameter value. - Type: string - Apply Scrubbing: auto - Example: SELECT * FROM users WHERE id = $1 - Aliases: db.statement, query - OpenTelemetry: yes ### db.redis.connection - Brief: The redis connection name. - Type: string - Apply Scrubbing: manual - Example: my-redis-instance ### db.redis.key - Brief: The key the Redis command is operating on. - Type: string - Apply Scrubbing: manual - Example: user:2047:city - Aliases: redis.key ### db.redis.parameters - Brief: The array of command parameters given to a redis command. - Type: string[] - Apply Scrubbing: auto - Example: ["test","*"] ### db.response.status_code - Brief: Database response status code. The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes. - Type: string - Apply Scrubbing: manual - Example: ORA-17002 - OpenTelemetry: yes ### db.sql.bindings - Brief: The array of query bindings. - Type: string[] - Apply Scrubbing: auto - Example: ["1","foo"] - Deprecated: yes (use db.query.parameter.) ### db.statement - Brief: The database statement being executed. - Type: string - Apply Scrubbing: auto - Example: SELECT * FROM users WHERE id = $1 - Aliases: db.query.text, query - OpenTelemetry: yes - Deprecated: yes (use db.query.text) ### db.stored_procedure.name - Brief: The name of a stored procedure being called. - Type: string - Apply Scrubbing: manual - Example: GetUserById - OpenTelemetry: yes ### db.system - Brief: An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers. - Type: string - Apply Scrubbing: manual - Example: postgresql - Aliases: db.system.name - Search alias: db.system - Deprecated search aliases: span.system - OpenTelemetry: yes - Deprecated: yes (use db.system.name) ### db.system.name - Brief: An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers. - Type: string - Apply Scrubbing: manual - Example: postgresql - Aliases: db.system - OpenTelemetry: yes ### db.user - Brief: The database user. - Type: string - Apply Scrubbing: manual - Example: fancy_user - OpenTelemetry: yes --- ## device ### device.archs - Brief: The CPU architectures of the device. - Type: string[] - Apply Scrubbing: manual - Example: ["arm64-v8a","armeabi-v7a","armeabi"] ### device.battery_level - Brief: The battery level of the device as a percentage (0-100). - Type: double - Apply Scrubbing: manual - Example: 100 ### device.battery_temperature - Brief: The battery temperature of the device in Celsius. - Type: double - Apply Scrubbing: manual - Example: 25 ### device.boot_time - Brief: A formatted UTC timestamp when the system was booted. - Type: string - Apply Scrubbing: manual - Example: 2018-02-08T12:52:12Z ### device.brand - Brief: The brand of the device. - Type: string - Apply Scrubbing: manual - Example: Apple ### device.charging - Brief: Whether the device was charging or not. - Type: boolean - Apply Scrubbing: manual - Example: false ### device.chipset - Brief: The chipset of the device. - Type: string - Apply Scrubbing: manual - Example: Qualcomm SM8550 ### device.class - Brief: The classification of the device. For example, `low`, `medium`, or `high`. Typically inferred by Relay - SDKs generally do not need to set this directly. - Type: string - Apply Scrubbing: manual - Example: medium ### device.connection_type - Brief: The internet connection type currently being used by the device. - Type: string - Apply Scrubbing: manual - Example: wifi - Aliases: network.connection.type, connectionType - Deprecated: yes (use network.connection.type) ### device.cpu_description - Brief: A description of the CPU of the device. - Type: string - Apply Scrubbing: manual - Example: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz ### device.external_free_storage - Brief: External storage free size in bytes. - Type: integer - Apply Scrubbing: manual - Example: 67108864000 ### device.external_storage_size - Brief: External storage total size in bytes. - Type: integer - Apply Scrubbing: manual - Example: 134217728000 ### device.family - Brief: The family of the device. - Type: string - Apply Scrubbing: manual - Example: iPhone ### device.free_memory - Brief: Free system memory in bytes. - Type: integer - Apply Scrubbing: manual - Example: 2147483648 ### device.free_storage - Brief: Free device storage in bytes. - Type: integer - Apply Scrubbing: manual - Example: 107374182400 ### device.id - Brief: Unique device identifier. - Type: string - Apply Scrubbing: manual - Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - OpenTelemetry: yes ### device.locale - Brief: The locale of the device. - Type: string - Apply Scrubbing: manual - Example: en-US ### device.low_memory - Brief: Whether the device was low on memory. - Type: boolean - Apply Scrubbing: manual - Example: false ### device.low_power_mode - Brief: Whether the device is in Low Power Mode. - Type: boolean - Apply Scrubbing: manual - Example: true ### device.manufacturer - Brief: The manufacturer of the device. - Type: string - Apply Scrubbing: manual - Example: Google - OpenTelemetry: yes ### device.memory_size - Brief: Total system memory available in bytes. - Type: integer - Apply Scrubbing: manual - Example: 17179869184 ### device.memory.estimated_capacity - Brief: The estimated total memory capacity of the device, only a rough estimation in gigabytes. Browsers report estimations in buckets of powers of 2, mostly capped at 8 GB - Type: integer - Apply Scrubbing: manual - Example: 8 - Aliases: deviceMemory ### device.model - Brief: The model of the device. - Type: string - Apply Scrubbing: manual - Example: iPhone 15 Pro Max ### device.model_id - Brief: An internal hardware revision to identify the device exactly. - Type: string - Apply Scrubbing: manual - Example: N861AP ### device.name - Brief: The user-assigned name of the mobile device. - Type: string - Apply Scrubbing: auto - Example: localhost ### device.online - Brief: Whether the device was online or not. - Type: boolean - Apply Scrubbing: manual - Example: true ### device.orientation - Brief: The orientation of the device, either "portrait" or "landscape". - Type: string - Apply Scrubbing: manual - Example: portrait ### device.processor_count - Brief: Number of "logical processors". - Type: integer - Apply Scrubbing: manual - Example: 8 - Aliases: hardwareConcurrency ### device.processor_frequency - Brief: Processor frequency in MHz. - Type: double - Apply Scrubbing: manual - Example: 2400 ### device.screen_density - Brief: The screen density of the device. - Type: double - Apply Scrubbing: manual - Example: 2.625 ### device.screen_dpi - Brief: The screen density in dots-per-inch (DPI) of the device. - Type: integer - Apply Scrubbing: manual - Example: 420 ### device.screen_height_pixels - Brief: The height of the device screen in pixels. - Type: integer - Apply Scrubbing: manual - Example: 2400 ### device.screen_width_pixels - Brief: The width of the device screen in pixels. - Type: integer - Apply Scrubbing: manual - Example: 1080 ### device.simulator - Brief: Whether the device is a simulator or an actual device. - Type: boolean - Apply Scrubbing: manual - Example: false ### device.storage_size - Brief: Total device storage in bytes. - Type: integer - Apply Scrubbing: manual - Example: 274877906944 ### device.thermal_state - Brief: The thermal state of the device. Based on Apple's `ProcessInfo.ThermalState` enum. - Type: string - Apply Scrubbing: manual - Example: nominal ### device.timezone - Brief: The timezone of the device. - Type: string - Apply Scrubbing: manual - Example: Europe/Vienna ### device.usable_memory - Brief: Memory usable for the app in bytes. - Type: integer - Apply Scrubbing: manual - Example: 2147483648 --- ## django ### django.function_name - Brief: The fully qualified name of a function used in a Django context. - Type: string - Apply Scrubbing: manual - Examples: - django.contrib.sessions.middleware.SessionMiddleware - Aliases: code.function.name, code.function - Deprecated: yes (use code.function.name) ### django.middleware_name - Brief: The name of the Django middleware. - Type: string - Apply Scrubbing: manual - Examples: - AuthenticationMiddleware - Aliases: middleware.name - Deprecated: yes (use middleware.name) --- ## error ### error.type - Brief: Describes a class of error the operation ended with. - Type: string - Apply Scrubbing: manual - Example: timeout - OpenTelemetry: yes --- ## event ### event.id - Brief: The unique identifier for this event (log record) - Type: integer - Apply Scrubbing: manual - Example: 1234567890 ### event.name - Brief: The name that uniquely identifies this event (log record) - Type: string - Apply Scrubbing: manual - Example: Process Payload --- ## exception ### exception.escaped - Brief: SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span. - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### exception.message - Brief: The error message. - Type: string - Apply Scrubbing: auto - Example: ENOENT: no such file or directory - OpenTelemetry: yes ### exception.stacktrace - Brief: A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. - Type: string - Apply Scrubbing: auto - Example: Exception in thread "main" java.lang.RuntimeException: Test exception at com.example.GenerateTrace.methodB(GenerateTrace.java:13) at com.example.GenerateTrace.methodA(GenerateTrace.java:9) at com.example.GenerateTrace.main(GenerateTrace.java:5) - OpenTelemetry: yes ### exception.type - Brief: The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it. - Type: string - Apply Scrubbing: manual - Example: OSError - OpenTelemetry: yes --- ## faas ### faas.coldstart - Brief: A boolean that is true if the serverless function is executed for the first time (aka cold-start). - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### faas.cron - Brief: A string containing the schedule period as Cron Expression. - Type: string - Apply Scrubbing: manual - Example: 0/5 * * * ? * - OpenTelemetry: yes ### faas.document.collection - Brief: The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name. - Type: string - Apply Scrubbing: manual - Examples: - myBucketName - myDbName - OpenTelemetry: yes ### faas.document.name - Brief: The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name. - Type: string - Apply Scrubbing: auto - Examples: - myFile.txt - myTableName - OpenTelemetry: yes ### faas.document.operation - Brief: Describes the type of the operation that was performed on the data. - Type: string - Apply Scrubbing: manual - Examples: - insert - edit - delete - OpenTelemetry: yes - Additional context: - Has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - `delete`: When an object is deleted. - `edit`: When an object is modified. - `insert`: When a new object is created. ### faas.document.time - Brief: A string containing the time when the data was accessed in the ISO 8601 format expressed in UTC. - Type: string - Apply Scrubbing: manual - Examples: - 2020-01-23T13:47:06Z - OpenTelemetry: yes ### faas.duration_in_ms - Brief: The duration a function took to run, in milliseconds. - Type: integer - Apply Scrubbing: manual - Example: 120 ### faas.entry_point - Brief: The code that's run when the cloud provider invokes your function. - Type: string - Apply Scrubbing: manual - Example: my_main_function ### faas.execution - Brief: The execution ID of the current function execution. - Type: string - Apply Scrubbing: manual - Example: af9d5aa4-a685-4c5f-a22b-444f80b3cc28 - Aliases: faas.invocation_id, aws.lambda.aws_request_id - Deprecated: yes (use faas.invocation_id) ### faas.id - Brief: The unique ID of the single function that this runtime instance executes. - Type: string - Apply Scrubbing: manual - Example: arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function - Aliases: cloud.resource_id - Deprecated: yes (use cloud.resource_id) ### faas.identity - Brief: The Service Account (GCP), IAM Execution Role (AWS), or Managed Identity (Azure) used by the serverless function when interacting with other cloud services - Type: string - Apply Scrubbing: manual - Example: name@project.iam.gserviceaccount.com (GCP), arn:aws:iam::123456789012:role/role-name (AWS), 00000000-0000-0000-0000-000000000000 (Azure) ### faas.instance - Brief: The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version. - Type: string - Apply Scrubbing: manual - Examples: - 2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de - OpenTelemetry: yes - Additional context: - For AWS Lambda, use the (full) log stream name. ### faas.invocation_id - Brief: The invocation ID of the current function invocation. - Type: string - Apply Scrubbing: manual - Example: af9d5aa4-a685-4c5f-a22b-444f80b3cc28 - Aliases: aws.lambda.aws_request_id, faas.execution - OpenTelemetry: yes ### faas.invoked_name - Brief: The name of the invoked function. - Type: string - Apply Scrubbing: manual - Example: my-function - OpenTelemetry: yes ### faas.invoked_provider - Brief: The cloud provider of the invoked function. - Type: string - Apply Scrubbing: manual - Example: aws - OpenTelemetry: yes ### faas.invoked_region - Brief: The cloud region of the invoked function. - Type: string - Apply Scrubbing: manual - Example: eu-central-1 - OpenTelemetry: yes ### faas.max_memory - Brief: The amount of memory available to the serverless function, in bytes. - Type: integer - Apply Scrubbing: manual - Examples: - 134217728 - 1073741824 - OpenTelemetry: yes - Additional context: - On AWS Lambda, multiply AWS_LAMBDA_FUNCTION_MEMORY_SIZE by 1,048,576 to convert the configured memory from MiB to bytes. ### faas.name - Brief: The name of the serverless function - Type: string - Apply Scrubbing: manual - Example: my_function - Aliases: aws.lambda.function_name - OpenTelemetry: yes ### faas.time - Brief: A string containing the function invocation time in the ISO 8601 format expressed in UTC. - Type: string - Apply Scrubbing: manual - Example: 2020-01-23T13:47:06Z - OpenTelemetry: yes ### faas.trigger - Brief: Type of the trigger which caused this function invocation. - Type: string - Apply Scrubbing: manual - Example: timer - OpenTelemetry: yes ### faas.version - Brief: The version of the function that was invoked - Type: string - Apply Scrubbing: manual - Example: $LATEST - Aliases: aws.lambda.function_version - OpenTelemetry: yes --- ## file ### file.path - Brief: Path to the file. - Type: string - Apply Scrubbing: auto (File paths can contain end-user paths (e.g. from stack traces) that may be sensitive.) - Example: /home/user/example.txt - OpenTelemetry: yes ### file.size - Brief: File size in bytes. - Type: integer - Apply Scrubbing: manual - Example: 1024 - OpenTelemetry: yes --- ## flag ### flag.evaluation. - Brief: An instance of a feature flag evaluation. The value of this attribute is the boolean representing the evaluation result. The suffix is the name of the feature flag. - Type: boolean - Apply Scrubbing: manual - Example: flag.evaluation.is_new_ui=true - Has dynamic suffix: yes --- ## frames ### frames.delay - Brief: The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/). - Type: integer - Apply Scrubbing: manual - Example: 5 - Aliases: app.vitals.frames.delay.value - Search alias: mobile.frames_delay (second) - Deprecated: yes (use app.vitals.frames.delay.value) ### frames.frozen - Brief: The number of frozen frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 3 - Aliases: app.vitals.frames.frozen.count, sentry.frames.frozen - Search alias: mobile.frozen_frames - Deprecated: yes (use app.vitals.frames.frozen.count) ### frames.slow - Brief: The number of slow frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 1 - Aliases: app.vitals.frames.slow.count, sentry.frames.slow - Search alias: mobile.slow_frames - Deprecated: yes (use app.vitals.frames.slow.count) ### frames.total - Brief: The number of total frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 60 - Aliases: app.vitals.frames.total.count, sentry.frames.total - Search alias: mobile.total_frames - Deprecated: yes (use app.vitals.frames.total.count) --- ## gcp ### gcp.function.context.event_id - Brief: The event ID from the legacy GCP Cloud Function context (1st gen) - Type: string - Apply Scrubbing: manual - Example: 1234567890 ### gcp.function.context.event_type - Brief: The type of the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: google.pubsub.topic.publish ### gcp.function.context.id - Brief: The unique event ID from the GCP CloudEvents context (2nd gen Cloud Functions) - Type: string - Apply Scrubbing: manual - Example: 1234567890 ### gcp.function.context.resource - Brief: The resource that triggered the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: projects/my-project/topics/my-topic ### gcp.function.context.source - Brief: The source of the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: //pubsub.googleapis.com/projects/my-project/topics/my-topic ### gcp.function.context.specversion - Brief: The CloudEvents specification version of the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: 1.0 ### gcp.function.context.time - Brief: The timestamp of the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: 2024-01-01T00:00:00.000Z ### gcp.function.context.timestamp - Brief: The legacy timestamp of the GCP Cloud Function event - Type: string - Apply Scrubbing: manual - Example: 2024-01-01T00:00:00.000Z ### gcp.function.context.type - Brief: The type of the GCP Cloud Function event context - Type: string - Apply Scrubbing: manual - Example: cloud_functions.context ### gcp.project.id - Brief: The ID of the project in GCP that this resource is associated with - Type: string - Apply Scrubbing: manual - Example: my-project-123 --- ## gen_ai ### gen_ai.agent.name - Brief: The name of the agent being used. - Type: string - Apply Scrubbing: manual - Example: ResearchAssistant - OpenTelemetry: yes ### gen_ai.context.utilization - Brief: The fraction of the model context window utilized by this generation. - Type: double - Apply Scrubbing: manual - Example: 0.75 ### gen_ai.context.window_size - Brief: The maximum context window size supported by the model for this generation. - Type: integer - Apply Scrubbing: manual - Example: 128000 ### gen_ai.conversation.id - Brief: The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation. - Type: string - Apply Scrubbing: manual - Example: conv_5j66UpCpwteGg4YSxUnt7lPY - OpenTelemetry: yes ### gen_ai.cost.cache_creation.input_tokens - Brief: The cost of input tokens written to cache in USD. - Type: double - Apply Scrubbing: manual - Example: 12.34 - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.cache_creation.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_creation.input_tokens. - This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens — it is already included. ### gen_ai.cost.cache_read.input_tokens - Brief: The cost of cached input tokens in USD. - Type: double - Apply Scrubbing: manual - Example: 12.34 - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.cache_read.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_read.input_tokens. - This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens — it is already included. ### gen_ai.cost.input_tokens - Brief: The total cost of all input tokens in USD (includes cached and cache creation tokens). - Type: double - Apply Scrubbing: manual - Example: 123.45 - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.input_tokens. - This is the total cost of all input tokens, including cached and cache creation tokens at their respective rates. For the cached portion, see gen_ai.cost.cache_read.input_tokens. For the cache creation portion, see gen_ai.cost.cache_creation.input_tokens. ### gen_ai.cost.output_tokens - Brief: The total cost of all output tokens in USD (includes reasoning tokens). - Type: double - Apply Scrubbing: manual - Example: 123.45 - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.output_tokens. - This is the total cost of all output tokens, including reasoning tokens at their respective rate. For the reasoning portion, see gen_ai.cost.reasoning.output_tokens. ### gen_ai.cost.reasoning.output_tokens - Brief: The cost of reasoning output tokens in USD. - Type: double - Apply Scrubbing: manual - Example: 12.34 - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.reasoning.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.reasoning.output_tokens. - This is a subset of gen_ai.cost.output_tokens, not an independent cost. Do not sum this with gen_ai.cost.output_tokens — it is already included. ### gen_ai.cost.total_tokens - Brief: The total cost for the tokens used. - Type: double - Apply Scrubbing: manual - Example: 12.34 - Aliases: ai.total_cost - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Despite the name 'cost.total_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.total_tokens. ### gen_ai.embeddings.input - Brief: The input to the embeddings model. - Type: string - Apply Scrubbing: manual - Example: What's the weather in Paris? ### gen_ai.function_id - Brief: Framework-specific tracing label for the execution of a function or other unit of execution in a generative AI system. - Type: string - Apply Scrubbing: manual - Example: my-awesome-function ### gen_ai.input.messages - Brief: The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `"user"`, `"assistant"`, `"tool"`, or `"system"`. For messages of the role `"tool"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: "text", text:"..."}`. The first example shows this shape. Some operations use a different shape. See the additional context. - Type: string - Apply Scrubbing: manual - Examples: - [{"role": "user", "parts": [{"type": "text", "content": "Weather in Paris?"}]}, {"role": "assistant", "parts": [{"type": "tool_call", "id": "call_VSPygqKTWdrhaFErNvMV18Yl", "name": "get_weather", "arguments": {"location": "Paris"}}]}, {"role": "tool", "parts": [{"type": "tool_call_response", "id": "call_VSPygqKTWdrhaFErNvMV18Yl", "response": "rainy, 57°F"}]}] - [{"state": "I cannot log in, and I also want a refund for last month.", "questions": {"authIssue": {"type": "noul", "instructions": "Is there a login problem?"}, "department": {"type": "choice", "instructions": "Which team should handle this?", "criteria": {"billing": "Charges and refunds", "technical": "Bugs and outages"}}}}] - [{"state": "Invoice INV-2291 from Northwind Supply, issued 2026-09-02, net 30. 4 pallets at $250.00 each, shipping $80.00. Contact: Dana Ruiz, Priya Shah.", "fields": {"invoice_number": {"type": "text"}, "due_date": {"type": "date", "instructions": "Issue date plus the net payment days"}, "total": {"type": "number", "decimals": 2, "unit": "USD", "instructions": "Amount due including shipping"}, "contacts": {"type": "list", "items": "text"}, "po_number": {"type": "text", "instructions": "Purchase order number"}, "days_to_pay": {"type": "estimate", "min": 0, "max": 120, "step": 1, "instructions": "Days after issue until this invoice is paid"}}}] - Aliases: ai.texts, ai.prompt.messages, gen_ai.prompt, ai.prompt - OpenTelemetry: yes - Additional context: - For `gen_ai.decide` operations, the array holds one object `{state: ..., questions: {...}}`. `state` is the evaluated state. `questions` holds the questions keyed by name, as the caller passed them. Replace binary data in `state`, including `data:` URLs, with the string `"[Blob substitute]"`. The second example shows this shape. - For `gen_ai.extract` operations, the array holds one object `{state?: string, fields: {: }, images?: string[], reference_date?: string, options?: {...}}`. This object is the request body as the caller passed it, without `model`. Do not change the values, and leave out the keys that the caller did not set. Do not record the image data. Replace each image with the string `"[Blob substitute]"`. `state` is the text that the model reads. `fields` holds the field specs keyed by field name. Set the model in `gen_ai.request.model`. The third example shows this shape. ### gen_ai.memory.query.text - Brief: The search query used to retrieve memories. Only applicable to 'search_memory'. Opt-in: instrumentations SHOULD NOT capture this by default and SHOULD gate it behind explicit user opt-in, as it may contain sensitive information. - Type: string - Apply Scrubbing: manual - Examples: - user dietary preferences - past flight bookings - OpenTelemetry: yes ### gen_ai.memory.record.count - Brief: The number of memory records relevant to the operation. For 'search_memory' this is the number returned; for 'create_memory', 'update_memory', 'upsert_memory' and 'delete_memory' it is the number the operation attempted to create, modify, create-or-update, or delete respectively. - Type: integer - Apply Scrubbing: manual - Examples: - 3 - OpenTelemetry: yes ### gen_ai.memory.record.id - Brief: The unique identifier of the memory record. Set when the operation applies to a specific memory record. For 'delete_memory', its absence may indicate the operation intends to delete all memory records in the store. - Type: string - Apply Scrubbing: manual - Examples: - mem_5j66UpCpwteGg4YSxUnt7lPY - OpenTelemetry: yes ### gen_ai.memory.records - Brief: The memory records stored or retrieved in a memory operation. Stringified JSON array; each element follows the OTel MemoryRecord schema: {content (required), id, metadata, score}. Opt-in: instrumentations SHOULD NOT capture this by default and SHOULD gate it behind explicit user opt-in, as it may contain sensitive information including user/PII data. - Type: string - Apply Scrubbing: manual - Examples: - [{"content": "User prefers dark mode", "id": "mem_123", "score": 0.95}, {"content": {"preference": "vegetarian meals", "confidence": 0.9}, "metadata": {"source": "profile"}}] - OpenTelemetry: yes ### gen_ai.memory.store.id - Brief: The unique identifier of the memory store the operation targets. What this maps to is implementation-specific (e.g. a collection, namespace, or vector index) and SHOULD be documented per integration. - Type: string - Apply Scrubbing: manual - Examples: - ms_abc123 - user-preferences-store - seer-knowledge - OpenTelemetry: yes ### gen_ai.operation.name - Brief: The name of the operation being performed. - Type: string - Apply Scrubbing: manual - Example: chat - OpenTelemetry: yes ### gen_ai.operation.type - Brief: The type of AI operation. Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI - Type: string - Apply Scrubbing: manual - Example: tool ### gen_ai.output.messages - Brief: The model's response messages. It has to be a stringified version of an array of message objects, which can include text responses and tool calls. The first example shows this shape. Some operations use a different shape. See the additional context. - Type: string - Apply Scrubbing: manual - Examples: - [{"role": "assistant", "parts": [{"type": "text", "content": "The weather in Paris is currently rainy with a temperature of 57°F."}]}] - [{"answers": {"authIssue": {"type": "noul", "noul": 0.98}, "department": {"type": "choice", "choice": "billing", "confidence": 0.28, "probabilities": {"billing": 0.64, "technical": 0.36}}}}] - [{"answers": {"invoice_number": {"type": "text", "p_null": 3.8e-10, "span": [8, 16], "guess": "INV-2291", "confidence": 1, "value": "INV-2291"}, "due_date": {"type": "date", "p_null": 1.9e-08, "guess": "2026-10-02", "confidence": 0.9999, "value": "2026-10-02"}, "total": {"type": "number", "p_null": 2.3e-08, "guess": 1080, "confidence": 0.9999, "value": 1080}, "contacts": {"type": "list", "value": ["Dana Ruiz", "Priya Shah"], "spans": [[120, 129], [131, 141]], "confidence": 0.9999}, "po_number": {"type": "text", "p_null": 1, "span": [8, 16], "guess": "INV-2291", "confidence": 0.9995, "value": null}, "days_to_pay": {"type": "estimate", "value": 30, "mean": 29.535, "median": 30, "p10": 21, "p90": 38, "p_below": 5.9e-06, "p_above": 1.2e-05}}, "truncated": false}] - Aliases: ai.response.toolCalls, ai.response.text - OpenTelemetry: yes - Additional context: - For `gen_ai.decide` operations, the array holds one object `{answers: {...}}`. `answers` holds the answers keyed by question name, as the provider returned them. The second example shows this shape. - For `gen_ai.extract` operations, the array holds one object `{answers: {: }, truncated: boolean, state_text?: string}`. This object is the response body as the provider returned it, without `model` and `usage`. Do not change the values. `answers` holds one answer for each field in the input, keyed by field name. A field that the model cannot determine has a `value` of `null`. `span` and `spans` are `[start, end]` character offsets into `state` (or into `state_text`, if the provider returns it), and `end` is exclusive. Set the model in `gen_ai.response.model` and the token counts in `gen_ai.usage.input_tokens` and `gen_ai.usage.output_tokens`. The third example shows this shape. ### gen_ai.pipeline.name - Brief: Name of the AI pipeline or chain being executed. - Type: string - Apply Scrubbing: manual - Example: Autofix Pipeline - Aliases: ai.pipeline.name, langchain.chain.name ### gen_ai.prompt - Brief: The input messages sent to the model - Type: string - Apply Scrubbing: manual - Example: [{"role": "user", "message": "hello"}] - Aliases: gen_ai.input.messages, ai.texts, ai.prompt.messages, ai.prompt - OpenTelemetry: yes - Deprecated: yes (use gen_ai.input.messages) ### gen_ai.prompt.name - Brief: The name of the prompt that uniquely identifies it. - Type: string - Apply Scrubbing: manual (Prompt names may reveal user behavior patterns or sensitive operations) - Example: summarize_text - Aliases: mcp.prompt.name - OpenTelemetry: yes ### gen_ai.prompt.variable. - Brief: Variables supplied to the prompt template. The is the variable name, and the value is the variable value serialized as a string. - Type: string - Apply Scrubbing: auto (Prompt variables contain user input and may include sensitive information) - Examples: - gen_ai.prompt.variable.language='French' - gen_ai.prompt.variable.topic='weather' - Has dynamic suffix: yes - OpenTelemetry: yes - Additional context: - Capture only when the user explicitly opts in to recording prompt inputs. In MCP, these values are the arguments supplied in prompts/get requests. ### gen_ai.provider.name - Brief: The Generative AI provider as identified by the client or server instrumentation. - Type: string - Apply Scrubbing: manual - Example: openai - Aliases: ai.model.provider, gen_ai.system - OpenTelemetry: yes ### gen_ai.request.available_tools - Brief: The available tools for the model. It has to be a stringified version of an array of objects. - Type: string - Apply Scrubbing: manual - Example: [{"name": "get_weather", "description": "Get the weather for a given location"}, {"name": "get_news", "description": "Get the news for a given topic"}] - Aliases: gen_ai.tool.definitions - Deprecated: yes (use gen_ai.tool.definitions) ### gen_ai.request.frequency_penalty - Brief: Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: ai.frequency_penalty - OpenTelemetry: yes ### gen_ai.request.max_tokens - Brief: The maximum number of tokens to generate in the response. - Type: integer - Apply Scrubbing: manual - Example: 2048 - OpenTelemetry: yes ### gen_ai.request.messages - Brief: The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `"user"`, `"assistant"`, `"tool"`, or `"system"`. For messages of the role `"tool"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: "text", text:"..."}`. - Type: string - Apply Scrubbing: manual - Example: [{"role": "system", "content": "Generate a random number."}, {"role": "user", "content": [{"text": "Generate a random number between 0 and 10.", "type": "text"}]}, {"role": "tool", "content": {"toolCallId": "1", "toolName": "Weather", "output": "rainy"}}] - Aliases: ai.input_messages - Deprecated: yes (use gen_ai.input.messages) ### gen_ai.request.model - Brief: The model identifier being used for the request. - Type: string - Apply Scrubbing: manual - Example: gpt-4-turbo-preview - Aliases: ai.model_id, ai.model.id - OpenTelemetry: yes ### gen_ai.request.presence_penalty - Brief: Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: ai.presence_penalty - OpenTelemetry: yes ### gen_ai.request.reasoning.level - Brief: The reasoning or thinking effort level requested for a GenAI model. - Type: string - Apply Scrubbing: manual - Example: high - OpenTelemetry: yes ### gen_ai.request.schema - Brief: The stringified JSON schema the model output must conform to. - Type: string - Apply Scrubbing: manual - Examples: - {"type":"object","properties":{"city":{"type":"string"}}} - Deprecated: yes (This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.) ### gen_ai.request.seed - Brief: The seed, ideally models given the same seed and same other parameters will produce the exact same output. - Type: string - Apply Scrubbing: manual - Example: 1234567890 - Aliases: ai.seed - OpenTelemetry: yes ### gen_ai.request.stop_sequences - Brief: List of sequences that the model will use to stop generating further tokens. - Type: string[] - Apply Scrubbing: manual - Example: ["forest","lived"] - OpenTelemetry: yes ### gen_ai.request.temperature - Brief: For an AI model call, the temperature parameter. Temperature essentially means how random the output will be. - Type: double - Apply Scrubbing: manual - Example: 0.1 - Aliases: ai.temperature - OpenTelemetry: yes ### gen_ai.request.top_k - Brief: Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered). - Type: integer - Apply Scrubbing: manual - Example: 35 - Aliases: ai.top_k - OpenTelemetry: yes ### gen_ai.request.top_p - Brief: Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered). - Type: double - Apply Scrubbing: manual - Example: 0.7 - Aliases: ai.top_p - OpenTelemetry: yes ### gen_ai.response.finish_reason - Brief: The reason why the model stopped generating (singular form). - Type: string - Apply Scrubbing: manual - Example: COMPLETE - Aliases: gen_ai.response.finish_reasons - Deprecated: yes (use gen_ai.response.finish_reasons) ### gen_ai.response.finish_reasons - Brief: The reason why the model stopped generating. - Type: string - Apply Scrubbing: manual - Example: COMPLETE - Aliases: ai.finish_reason, gen_ai.response.finish_reason - OpenTelemetry: yes ### gen_ai.response.id - Brief: Unique identifier for the completion. - Type: string - Apply Scrubbing: manual - Example: gen_123abc - Aliases: ai.generation_id, ai.response.id - OpenTelemetry: yes ### gen_ai.response.model - Brief: The vendor-specific ID of the model used. - Type: string - Apply Scrubbing: manual - Example: gpt-4 - Aliases: ai.response.model - OpenTelemetry: yes ### gen_ai.response.object - Brief: The type of the object returned by the model. - Type: string - Apply Scrubbing: manual - Examples: - chat.completion - Deprecated: yes (This attribute is deprecated. The Sentry conventions have no replacement for the raw response object type.) ### gen_ai.response.streaming - Brief: Whether or not the AI model call's response was streamed back asynchronously - Type: boolean - Apply Scrubbing: manual - Example: true - Aliases: ai.streaming ### gen_ai.response.text - Brief: The model's response text messages. It has to be a stringified version of an array of response text messages. - Type: string - Apply Scrubbing: manual - Example: ["The weather in Paris is rainy and overcast, with temperatures around 57°F", "The weather in London is sunny and warm, with temperatures around 65°F"] - Deprecated: yes (use gen_ai.output.messages) ### gen_ai.response.time_to_first_chunk - Brief: Time in seconds when the first response content chunk arrived in streaming responses. - Type: double - Apply Scrubbing: manual - Example: 0.6853435 - Aliases: gen_ai.response.time_to_first_token - OpenTelemetry: yes ### gen_ai.response.time_to_first_token - Brief: Time in seconds when the first response content chunk arrived in streaming responses. - Type: double - Apply Scrubbing: manual - Example: 0.6853435 - Aliases: gen_ai.response.time_to_first_chunk - Deprecated: yes (use gen_ai.response.time_to_first_chunk) ### gen_ai.response.tokens_per_second - Brief: The total output tokens per seconds throughput - Type: double - Apply Scrubbing: manual - Example: 12345.67 ### gen_ai.response.tool_calls - Brief: The tool calls in the model's response. It has to be a stringified version of an array of objects. - Type: string - Apply Scrubbing: manual - Example: [{"name": "get_weather", "arguments": {"location": "Paris"}}] - Deprecated: yes (use gen_ai.output.messages) ### gen_ai.system - Brief: The provider of the model. - Type: string - Apply Scrubbing: manual - Example: openai - Aliases: ai.model.provider, gen_ai.provider.name - OpenTelemetry: yes - Deprecated: yes (use gen_ai.provider.name) ### gen_ai.system_instructions - Brief: The system instructions passed to the model. - Type: string - Apply Scrubbing: manual - Example: You are a helpful assistant - Aliases: ai.preamble - OpenTelemetry: yes ### gen_ai.system.message - Brief: The system instructions passed to the model. - Type: string - Apply Scrubbing: manual - Example: You are a helpful assistant - Deprecated: yes (use gen_ai.system_instructions) ### gen_ai.tool.call.arguments - Brief: The arguments of the tool call. It has to be a stringified version of the arguments to the tool. - Type: string - Apply Scrubbing: manual - Example: {"location": "Paris"} - Aliases: gen_ai.tool.input, ai.toolCall.args - OpenTelemetry: yes ### gen_ai.tool.call.result - Brief: The result of the tool call. It has to be a stringified version of the result of the tool. - Type: string - Apply Scrubbing: manual - Example: rainy, 57°F - Aliases: gen_ai.tool.output, gen_ai.tool.message, mcp.tool.result.content, ai.toolCall.result, anthropic.tool_result.content - OpenTelemetry: yes ### gen_ai.tool.call.result.size - Brief: The UTF-8 byte length of the serialized tool call result, measured before truncation. - Type: integer - Apply Scrubbing: manual - Examples: - 0 - 1024 - Search alias: gen_ai.tool.call.result.size (byte) - Additional context: - The value is a non-negative byte count, not a token count, character count, or in-memory object size. It excludes span and envelope overhead. - Use 0 for an empty string result. Omit this attribute when the tool result is unavailable; do not treat missing output as zero. ### gen_ai.tool.definitions - Brief: The list of source system tool definitions available to the GenAI agent or model. - Type: string - Apply Scrubbing: manual - Example: [{"type": "function", "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": {"type": "object", "properties": {"location": {"type": "string", "description": "The city and state, e.g. San Francisco, CA"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}}, "required": ["location", "unit"]}}] - Aliases: gen_ai.request.available_tools - OpenTelemetry: yes ### gen_ai.tool.description - Brief: The description of the tool being used. - Type: string - Apply Scrubbing: manual - Example: Searches the web for current information about a topic - OpenTelemetry: yes ### gen_ai.tool.input - Brief: The input of the tool being used. It has to be a stringified version of the input to the tool. - Type: string - Apply Scrubbing: manual - Example: {"location": "Paris"} - Aliases: gen_ai.tool.call.arguments, ai.toolCall.args - Deprecated: yes (use gen_ai.tool.call.arguments) ### gen_ai.tool.message - Brief: The response from a tool or function call passed to the model. - Type: string - Apply Scrubbing: manual - Example: rainy, 57°F - Aliases: gen_ai.tool.call.result, gen_ai.tool.output, mcp.tool.result.content, ai.toolCall.result, anthropic.tool_result.content - Deprecated: yes (use gen_ai.tool.call.result) ### gen_ai.tool.name - Brief: Name of the tool utilized by the agent. - Type: string - Apply Scrubbing: manual - Example: Flights - Aliases: ai.function_call, mcp.tool.name - OpenTelemetry: yes ### gen_ai.tool.output - Brief: The output of the tool being used. It has to be a stringified version of the output of the tool. - Type: string - Apply Scrubbing: manual - Example: rainy, 57°F - Aliases: gen_ai.tool.call.result, gen_ai.tool.message, mcp.tool.result.content, ai.toolCall.result, anthropic.tool_result.content - Deprecated: yes (use gen_ai.tool.call.result) ### gen_ai.tool.type - Brief: The type of tool being used. - Type: string - Apply Scrubbing: manual - Example: function - OpenTelemetry: yes - Deprecated: yes (The gen_ai.tool.type attribute is deprecated and should no longer be set.) ### gen_ai.usage.cache_creation_input_tokens - Brief: The number of tokens written to the cache when processing the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Examples: - 100 - Aliases: gen_ai.usage.cache_creation.input_tokens, gen_ai.usage.input_tokens.cache_write - Deprecated: yes (use gen_ai.usage.cache_creation.input_tokens) ### gen_ai.usage.cache_creation.input_tokens - Brief: The number of tokens written to the cache when processing the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Example: 100 - Aliases: gen_ai.usage.input_tokens.cache_write, gen_ai.usage.cache_creation_input_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. ### gen_ai.usage.cache_read_input_tokens - Brief: The number of cached tokens used to process the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Examples: - 50 - Aliases: gen_ai.usage.cache_read.input_tokens, gen_ai.usage.input_tokens.cached - Deprecated: yes (use gen_ai.usage.cache_read.input_tokens) ### gen_ai.usage.cache_read.input_tokens - Brief: The number of cached tokens used to process the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Example: 50 - Aliases: gen_ai.usage.input_tokens.cached, gen_ai.usage.cache_read_input_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens — it is already included. ### gen_ai.usage.completion_tokens - Brief: The number of tokens used in the GenAI response (completion). - Type: integer - Apply Scrubbing: manual - Example: 10 - Aliases: ai.completion_tokens.used, gen_ai.usage.output_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Deprecated: yes (use gen_ai.usage.output_tokens) ### gen_ai.usage.input_tokens - Brief: The number of tokens used to process the AI input (prompt) including cached input tokens. - Type: integer - Apply Scrubbing: manual - Example: 10 - Aliases: ai.prompt_tokens.used, gen_ai.usage.prompt_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This count includes cached input tokens. gen_ai.usage.cache_read.input_tokens is a subset of this value, not an independent count — do not sum them together. ### gen_ai.usage.input_tokens.cache_write - Brief: The number of tokens written to the cache when processing the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Example: 100 - Aliases: gen_ai.usage.cache_creation.input_tokens, gen_ai.usage.cache_creation_input_tokens - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Deprecated: yes (use gen_ai.usage.cache_creation.input_tokens) ### gen_ai.usage.input_tokens.cached - Brief: The number of cached tokens used to process the AI input (prompt). - Type: integer - Apply Scrubbing: manual - Example: 50 - Aliases: gen_ai.usage.cache_read.input_tokens, gen_ai.usage.cache_read_input_tokens - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens — it is already included. - Deprecated: yes (use gen_ai.usage.cache_read.input_tokens) ### gen_ai.usage.output_tokens - Brief: The number of tokens used for creating the AI output (including reasoning tokens). - Type: integer - Apply Scrubbing: manual - Example: 10 - Aliases: ai.completion_tokens.used, gen_ai.usage.completion_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This count includes reasoning tokens. gen_ai.usage.reasoning.output_tokens is a subset of this value, not an independent count — do not sum them together. ### gen_ai.usage.output_tokens.reasoning - Brief: The number of tokens used for reasoning to create the AI output. - Type: integer - Apply Scrubbing: manual - Example: 75 - Aliases: gen_ai.usage.reasoning.output_tokens - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens — it is already included. - Deprecated: yes (use gen_ai.usage.reasoning.output_tokens) ### gen_ai.usage.prompt_tokens - Brief: The number of tokens used in the GenAI input (prompt). - Type: integer - Apply Scrubbing: manual - Example: 20 - Aliases: ai.prompt_tokens.used, gen_ai.usage.input_tokens - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - Deprecated: yes (use gen_ai.usage.input_tokens) ### gen_ai.usage.reasoning.output_tokens - Brief: The number of tokens used for reasoning to create the AI output. - Type: integer - Apply Scrubbing: manual - Example: 75 - Aliases: gen_ai.usage.output_tokens.reasoning - OpenTelemetry: yes - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens — it is already included. ### gen_ai.usage.total_tokens - Brief: The total number of tokens used to process the prompt. (input tokens plus output todkens) - Type: integer - Apply Scrubbing: manual - Example: 20 - Aliases: ai.total_tokens.used, ai.usage.tokens - Additional context: - This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans. - This is the sum of gen_ai.usage.input_tokens and gen_ai.usage.output_tokens. Do not sum this with either of them — they are already included. --- ## graphql ### graphql.document - Brief: The GraphQL document being executed. - Type: string - Apply Scrubbing: auto (The document may contain sensitive information in arguments or variables. Instrumentation should redact sensitive information when possible.) - Example: query findBookById { bookById(id: ?) { name } } - Aliases: graphql.source - OpenTelemetry: yes ### graphql.operation.name - Brief: The name of the operation being executed. - Type: string - Apply Scrubbing: manual - Example: findBookById - OpenTelemetry: yes ### graphql.operation.type - Brief: The type of the operation being executed. - Type: string - Apply Scrubbing: manual - Example: query - OpenTelemetry: yes ### graphql.processing.type - Brief: The type of processing represented by this span. - Type: string - Apply Scrubbing: manual - Examples: - parse - validate - execute - resolve - Additional context: - Well-known values are request, parse, validate, variable_coercion, plan, execute, subscription_event, step_execute, resolve, dataloader_dispatch, dataloader_batch and _OTHER. Use one of these if it applies, otherwise a custom value. - Not to be confused with graphql.operation.type, which holds the GraphQL operation type (query, mutation, subscription) and only applies to spans that run an operation. ### graphql.source - Brief: The GraphQL document being executed. - Type: string - Apply Scrubbing: auto - Examples: - query findBookById { bookById(id: ?) { name } } - Aliases: graphql.document - Deprecated: yes (use graphql.document) --- ## grpc ### grpc.error.bad_request.field_violations - Brief: The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. - Type: string[] - Apply Scrubbing: manual - Example: ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] ### grpc.error.debug_info.detail - Brief: Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. - Type: string - Apply Scrubbing: auto - Example: at com.example.Service.method(Service.java:42) ### grpc.error.debug_info.stack_entries - Brief: The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. - Type: string[] - Apply Scrubbing: auto - Example: ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] ### grpc.error.error_info.domain - Brief: The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. - Type: string - Apply Scrubbing: manual - Example: example.sentry.io ### grpc.error.error_info.metadata. - Brief: Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. - Type: string - Apply Scrubbing: auto - Example: grpc.error.error_info.metadata.user_id='123' - Has dynamic suffix: yes ### grpc.error.error_info.reason - Brief: The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. - Type: string - Apply Scrubbing: manual - Example: FIELD_INVALID ### grpc.error.precondition_failure.violations - Brief: The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly, since violation subjects may identify specific resources or users. - Type: string[] - Apply Scrubbing: auto - Example: ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] ### grpc.error.quota_failure.violations - Brief: The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly, since violation subjects may identify specific resources or users. - Type: string[] - Apply Scrubbing: auto - Example: ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] ### grpc.error.resource_info.description - Brief: A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. - Type: string - Apply Scrubbing: manual - Example: Instance is not ready for the request. ### grpc.error.resource_info.owner - Brief: The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. - Type: string - Apply Scrubbing: auto - Example: user@example.com ### grpc.error.resource_info.resource_name - Brief: The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. - Type: string - Apply Scrubbing: auto - Example: projects/example/instances/example-instance ### grpc.error.resource_info.resource_type - Brief: The type of resource being accessed, from a google.rpc.ResourceInfo error detail. - Type: string - Apply Scrubbing: manual - Example: database ### grpc.error.retry_info.retry_delay_ms - Brief: How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. - Type: integer - Apply Scrubbing: manual - Example: 5000 --- ## hapi ### hapi.ext.type - Brief: The request lifecycle extension point where the Hapi extension function runs. - Type: string - Apply Scrubbing: manual - Examples: - onRequest - onPreResponse - Aliases: server.ext.type ### hapi.plugin.name - Brief: The name of the Hapi plugin that registered the route. - Type: string - Apply Scrubbing: manual - Examples: - hapi-swagger ### hapi.type - Brief: The type of the Hapi layer that the span describes: `router`, `plugin`, or `server.ext`. - Type: string - Apply Scrubbing: manual - Examples: - router - plugin - server.ext --- ## heroku ### heroku.dyno.name - Brief: Name of the Heroku dyno serving the request or emitting telemetry - Type: string - Apply Scrubbing: manual - Examples: - web.1 - web-12a34bcd56-7efgh - Additional context: - A dyno name is distinct from the dyno ID or service.instance.id. Do not manufacture those identifiers from this value. ### heroku.error.code - Brief: Heroku error code reported by a router or platform log - Type: string - Apply Scrubbing: manual - Examples: - H12 - R14 - L10 - Additional context: - Preserves the provider-specific code from the router code field or a platform error message. ### heroku.error.description - Brief: Description of the Heroku error reported by a router or platform log - Type: string - Apply Scrubbing: manual - Examples: - Request timeout - Memory quota exceeded - Additional context: - A router or platform error description does not imply that an exception was thrown ### heroku.logplex.drain_token - Brief: Identifier of the Heroku log drain that delivered the log, from the Logplex-Drain-Token header - Type: string - Apply Scrubbing: manual - Examples: - d.73ea7440-270a-435a-a0ea-adf50b4e5f5a ### heroku.router.connect - Brief: Time in milliseconds the Heroku router spent establishing a connection to the dyno - Type: double - Apply Scrubbing: manual - Examples: - 0 - 0.5 - 6 ### heroku.router.request_id - Brief: Request identifier reported by the Heroku router - Type: string - Apply Scrubbing: manual - Examples: - 6903a168-b79b-ec27-03c8-b8f64d8d8792 - Additional context: - Heroku generates or accepts this identifier and forwards it to the application in the X-Request-ID header. ### heroku.router.service - Brief: Time in milliseconds spent proxying data between the backend dyno and the client, as reported by the Heroku router - Type: double - Apply Scrubbing: manual - Examples: - 0 - 12.5 - 30001 - Additional context: - This measures the proxying phase, not necessarily the complete HTTP request duration. --- ## http ### http.client_ip - Brief: Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - Type: string - Apply Scrubbing: auto - Example: example.com - Aliases: client.address - OpenTelemetry: yes - Deprecated: yes (use client.address) ### http.decoded_response_content_length - Brief: The decoded body size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.response.body.decoded_size, http.response_content_length_uncompressed - Search alias: http.decoded_response_content_length (byte) - Deprecated: yes (use http.response.body.decoded_size) ### http.flavor - Brief: The actual version of the protocol used for network communication. - Type: string - Apply Scrubbing: manual - Example: 1.1 - Aliases: network.protocol.version, net.protocol.version, messaging.protocol_version - OpenTelemetry: yes - Deprecated: yes (use network.protocol.version) ### http.fragment - Brief: The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not. - Type: string - Apply Scrubbing: auto - Example: #details ### http.host - Brief: The domain name. - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, server.address, client.address, http.server_name, net.host.name, server_name, net.peer.name - OpenTelemetry: yes - Deprecated: yes (use server.address) ### http.method - Brief: The HTTP method used. - Type: string - Apply Scrubbing: manual - Example: GET - Aliases: http.request.method, http.request_method, method - OpenTelemetry: yes - Deprecated: yes (use http.request.method) ### http.query - Brief: The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not. - Type: string - Apply Scrubbing: auto (Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.) - Example: ?foo=bar&bar=baz ### http.request_content_length - Brief: The encoded body size of the request (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 123 - Aliases: http.request.body.size - OpenTelemetry: yes - Deprecated: yes (use http.request.body.size) ### http.request_content_length_uncompressed - Brief: The decoded body size of the request (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.request.body.decoded_size - OpenTelemetry: yes - Deprecated: yes (use http.request.body.decoded_size) ### http.request_method - Brief: The HTTP method used. - Type: string - Apply Scrubbing: manual - Example: GET - Aliases: method, http.method, http.request.method - Deprecated: yes (use http.request.method) ### http.request.body.data - Brief: HTTP request body data. Can be given as string or structural data of any format. - Type: string - Apply Scrubbing: auto - Example: [{"role": "user", "message": "hello"}] ### http.request.body.decoded_size - Brief: The decoded body size of the request (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.request_content_length_uncompressed - Additional context: - This is the size after content decoding. Set it only when the decoded size is actually known, for example by measuring a decompressed request stream. - Do not derive this from the `content-length` header, which always carries the encoded size. Use `http.request.body.size` for that. ### http.request.body.size - Brief: The encoded body size of the request (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 123 - Aliases: http.request_content_length - OpenTelemetry: yes - Additional context: - This is the on-the-wire (encoded) size. The `content-length` header always carries the encoded size, so set this attribute whenever `content-length` is known, regardless of whether `content-encoding` is present. ### http.request.connect_start - Brief: The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource. - Type: double - Apply Scrubbing: manual - Example: 1732829555.111 ### http.request.connection_end - Brief: The UNIX timestamp representing the time immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and SOCKS authentication. - Type: double - Apply Scrubbing: manual - Example: 1732829555.15 ### http.request.domain_lookup_end - Brief: The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource. - Type: double - Apply Scrubbing: manual - Example: 1732829555.201 ### http.request.domain_lookup_start - Brief: The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource. - Type: double - Apply Scrubbing: manual - Example: 1732829555.322 ### http.request.duration - Brief: The duration of a HTTP request, in milliseconds. - Type: integer - Apply Scrubbing: manual - Examples: - 5000 - Additional context: - This attribute is set by Relay. ### http.request.fetch_start - Brief: The UNIX timestamp representing the time immediately before the browser starts to fetch the resource. - Type: double - Apply Scrubbing: manual - Example: 1732829555.389 ### http.request.header. - Brief: HTTP request headers, being the lower-cased, but otherwise unchanged HTTP Header name, the value being the header values. - Type: string[] - Apply Scrubbing: auto - Examples: - http.request.header.custom-header=['foo', 'bar'] - http.request.header.content-length=['123'] - Has dynamic suffix: yes - OpenTelemetry: yes ### http.request.method - Brief: The HTTP method used. - Type: string - Apply Scrubbing: manual - Example: GET - Aliases: method, http.method, http.request_method - OpenTelemetry: yes ### http.request.redirect_end - Brief: The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect - Type: double - Apply Scrubbing: manual - Example: 1732829558.502 ### http.request.redirect_start - Brief: The UNIX timestamp representing the start time of the fetch which that initiates the redirect. - Type: double - Apply Scrubbing: manual - Example: 1732829555.495 ### http.request.request_start - Brief: The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request. - Type: double - Apply Scrubbing: manual - Example: 1732829555.51 ### http.request.resend_count - Brief: The ordinal number of request resending attempt (for any reason, including redirects). - Type: integer - Apply Scrubbing: manual - Example: 2 ### http.request.response_end - Brief: The UNIX timestamp representing the time immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first. - Type: double - Apply Scrubbing: manual - Example: 1732829555.89 ### http.request.response_start - Brief: The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request. - Type: double - Apply Scrubbing: manual - Example: 1732829555.7 ### http.request.same_origin - Brief: Indicates that a URL has the same origin as the current page's origin in the browser. - Type: boolean - Apply Scrubbing: manual - Example: true - Aliases: url.same_origin ### http.request.secure_connection_start - Brief: The UNIX timestamp representing the time immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero. - Type: double - Apply Scrubbing: manual - Example: 1732829555.73 ### http.request.time_to_first_byte - Brief: The time in seconds from the browser's timeorigin to when the first byte of the request's response was received. See https://web.dev/articles/ttfb#measure-resource-requests - Type: double - Apply Scrubbing: manual - Example: 1.032 ### http.request.worker_start - Brief: The UNIX timestamp representing the timestamp immediately before dispatching the FetchEvent if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running. - Type: double - Apply Scrubbing: manual - Example: 1732829553.68 ### http.response_content_length - Brief: The encoded body size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 123 - Aliases: http.response.body.size, http.response.header.content-length - Search alias: http.response_content_length (byte) - OpenTelemetry: yes - Deprecated: yes (use http.response.body.size) ### http.response_content_length_uncompressed - Brief: The decoded body size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.response.body.decoded_size, http.decoded_response_content_length - OpenTelemetry: yes - Deprecated: yes (use http.response.body.decoded_size) ### http.response_transfer_size - Brief: The transfer size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.response.size - Search alias: http.response_transfer_size (byte) - Deprecated: yes (use http.response.size) ### http.response.body.decoded_size - Brief: The decoded body size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.decoded_response_content_length, http.response_content_length_uncompressed - Additional context: - This is the size after content decoding. Set it only when the decoded size is actually known, for example from the browser Resource Timing `decodedBodySize` or by measuring a decompressed response stream. - Do not derive this from the `content-length` header, which always carries the encoded size. Use `http.response.body.size` for that. ### http.response.body.size - Brief: The encoded body size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 123 - Aliases: http.response_content_length, http.response.header.content-length - OpenTelemetry: yes ### http.response.header. - Brief: HTTP response headers, being the lower-cased, but otherwise unchanged HTTP Header name, the value being the header values. - Type: string[] - Apply Scrubbing: auto - Examples: - http.response.header.custom-header=['foo', 'bar'] - http.response.header.content-length=['123'] - Has dynamic suffix: yes - OpenTelemetry: yes ### http.response.header.content-length - Brief: The size of the message body sent to the recipient (in bytes) - Type: string - Apply Scrubbing: manual - Example: http.response.header.custom-header=['foo', 'bar'] - Aliases: http.response_content_length, http.response.body.size - OpenTelemetry: yes ### http.response.size - Brief: The transfer size of the response (in bytes). - Type: integer - Apply Scrubbing: manual - Example: 456 - Aliases: http.response_transfer_size - OpenTelemetry: yes ### http.response.status_code - Brief: The status code of the HTTP response. - Type: integer - Apply Scrubbing: manual - Example: 404 - Aliases: http.status_code - Search alias: http.response_status_code - OpenTelemetry: yes ### http.response.status_text - Brief: The reason phrase of the HTTP response. - Type: string - Apply Scrubbing: manual - Example: NOT FOUND - Aliases: http.status_text - Additional context: - HTTP/2 and HTTP/3 do not carry a reason phrase. Do not set this attribute when the protocol provides none; use `http.response.status_code` instead. ### http.route - Brief: The matched route, that is, the path template in the format used by the respective server framework. - Type: string - Apply Scrubbing: manual - Examples: - /users/:id - my-controller/my-action/{id} - /posts - Aliases: route - OpenTelemetry: yes - Additional context: - This attribute should primarily be set by server-side instrumentation that captures the framework route of an incoming request. - For `http.client` spans and client-side routing, use `url.template` instead. ### http.scheme - Brief: The URI scheme component identifying the used protocol. - Type: string - Apply Scrubbing: manual - Example: https - Aliases: url.scheme - OpenTelemetry: yes - Deprecated: yes (use url.scheme) ### http.server_name - Brief: The server domain name - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, server.address, net.host.name, http.host, server_name, net.peer.name - OpenTelemetry: yes - Deprecated: yes (use server.address) ### http.server.request.time_in_queue - Brief: The time in milliseconds the request spent in the server queue before processing began. Measured from the X-Request-Start header set by reverse proxies (e.g., Nginx, HAProxy, Heroku) to when the application started handling the request. - Type: double - Apply Scrubbing: manual - Example: 50 ### http.status_code - Brief: The status code of the HTTP response. - Type: integer - Apply Scrubbing: manual - Example: 404 - Aliases: http.response.status_code - OpenTelemetry: yes - Deprecated: yes (use http.response.status_code) ### http.status_text - Brief: The reason phrase of the HTTP response - Type: string - Apply Scrubbing: manual - Examples: - NOT FOUND - Aliases: http.response.status_text - Deprecated: yes (use http.response.status_text) ### http.target - Brief: The pathname and query string of the URL. - Type: string - Apply Scrubbing: auto - Example: /test?foo=bar#buzz - OpenTelemetry: yes - Deprecated: yes (This attribute is being deprecated in favor of url.path, url.query and url.fragment. The value holds all three parts at once, so it has no single replacement.) ### http.url - Brief: The URL of the resource that was fetched. - Type: string - Apply Scrubbing: auto - Example: https://example.com/test?foo=bar#buzz - Aliases: url.full, url, aws.request.url, messaging.url - OpenTelemetry: yes - Deprecated: yes (use url.full) ### http.user_agent - Brief: Value of the HTTP User-Agent header sent by the client. - Type: string - Apply Scrubbing: manual - Example: Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1 - Aliases: user_agent.original - OpenTelemetry: yes - Deprecated: yes (use user_agent.original) --- ## integrity ### integrity.blocked_url - Brief: The URL of the resource blocked by the integrity policy. - Type: string - Apply Scrubbing: auto - Example: https://example.com/app.js ### integrity.destination - Brief: The destination type of the resource affected by the integrity policy. - Type: string - Apply Scrubbing: manual - Example: script ### integrity.document_url - Brief: The URL of the document where the integrity violation occurred. - Type: string - Apply Scrubbing: auto - Example: https://example.com/index.html ### integrity.report_only - Brief: Whether the integrity violation was generated by a report-only policy. - Type: boolean - Apply Scrubbing: manual - Example: true --- ## jsonrpc ### jsonrpc.protocol.version - Brief: The version of the JSON-RPC protocol used. - Type: string - Apply Scrubbing: manual - Example: 2.0 - OpenTelemetry: yes ### jsonrpc.request.id - Brief: The JSON-RPC request identifier, used to correlate a request with its response. - Type: string - Apply Scrubbing: manual - Examples: - 1 - Aliases: mcp.request.id - OpenTelemetry: yes --- ## jvm ### jvm.gc.action - Brief: Name of the garbage collector action. - Type: string - Apply Scrubbing: manual - Example: end of minor GC - OpenTelemetry: yes ### jvm.gc.name - Brief: Name of the garbage collector. - Type: string - Apply Scrubbing: manual - Example: G1 Young Generation - OpenTelemetry: yes ### jvm.memory.pool.name - Brief: Name of the memory pool. - Type: string - Apply Scrubbing: manual - Example: G1 Old Gen - OpenTelemetry: yes ### jvm.memory.type - Brief: Name of the memory pool. - Type: string - Apply Scrubbing: manual - Example: G1 Old Gen - OpenTelemetry: yes ### jvm.thread.daemon - Brief: Whether the thread is daemon or not. - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### jvm.thread.state - Brief: State of the thread. - Type: string - Apply Scrubbing: manual - Example: blocked - OpenTelemetry: yes --- ## koa ### koa.name - Brief: The name of the Koa middleware or matched route that handled the request. - Type: string - Apply Scrubbing: manual - Example: /users/:id - Deprecated: yes (No single replacement. SDKs should use http.route for router layers and code.function.name for middleware layers instead.) ### koa.type - Brief: The type of the Koa layer that handled the request. - Type: string - Apply Scrubbing: manual - Example: router --- ## langchain ### langchain.chain.name - Brief: The name of the LangChain chain being executed. - Type: string - Apply Scrubbing: manual - Examples: - format_prompt - RunnableSequence - Aliases: gen_ai.pipeline.name, ai.pipeline.name - Deprecated: yes (use gen_ai.pipeline.name) --- ## lcp ### lcp.element - Brief: The dom element responsible for the largest contentful paint. - Type: string - Apply Scrubbing: manual - Example: img - Aliases: browser.web_vital.lcp.element - Deprecated: yes (use browser.web_vital.lcp.element) ### lcp.id - Brief: The id of the dom element responsible for the largest contentful paint. - Type: string - Apply Scrubbing: manual - Example: #hero - Aliases: browser.web_vital.lcp.id - Deprecated: yes (use browser.web_vital.lcp.id) ### lcp.loadTime - Brief: The time it took for the LCP element to be loaded - Type: integer - Apply Scrubbing: manual - Example: 1402 - Aliases: browser.web_vital.lcp.load_time - Deprecated: yes (use browser.web_vital.lcp.load_time) ### lcp.renderTime - Brief: The time it took for the LCP element to be rendered - Type: integer - Apply Scrubbing: manual - Example: 1685 - Aliases: browser.web_vital.lcp.render_time - Deprecated: yes (use browser.web_vital.lcp.render_time) ### lcp.size - Brief: The size of the largest contentful paint element. - Type: integer - Apply Scrubbing: manual - Example: 1234 - Aliases: browser.web_vital.lcp.size - Deprecated: yes (use browser.web_vital.lcp.size) ### lcp.url - Brief: The url of the dom element responsible for the largest contentful paint. - Type: string - Apply Scrubbing: auto - Example: https://example.com - Aliases: browser.web_vital.lcp.url - Deprecated: yes (use browser.web_vital.lcp.url) --- ## litestar ### litestar.middleware_name - Brief: The name of the Litestar middleware. - Type: string - Apply Scrubbing: manual - Example: AuthenticationMiddleware - Aliases: middleware.name - Deprecated: yes (use middleware.name) --- ## logger ### logger.name - Brief: The name of the logger that generated this event. - Type: string - Apply Scrubbing: manual - Example: myLogger --- ## mcp ### mcp.auth.client.name - Brief: Registered OAuth client application name associated with the authenticated MCP request. Taken from OAuth client registration metadata (client_name) made available by the authentication layer. This is distinct from the MCP implementation name in mcp.client.name; omit it when the OAuth client name is unavailable. - Type: string - Apply Scrubbing: manual - Examples: - Example Desktop - Example CLI ### mcp.cancelled.reason - Brief: Reason for the cancellation of an MCP operation. - Type: string - Apply Scrubbing: manual (Cancellation reasons may contain user-specific or sensitive information) - Example: User cancelled the request ### mcp.cancelled.request_id - Brief: Request ID of the cancelled MCP operation. - Type: string - Apply Scrubbing: manual - Example: 123 ### mcp.client.name - Brief: Name of the MCP client implementation, as declared in clientInfo. This is distinct from the registered OAuth application name in mcp.auth.client.name. - Type: string - Apply Scrubbing: manual - Examples: - example-mcp-client ### mcp.client.title - Brief: Display title of the MCP client implementation, as declared in clientInfo. - Type: string - Apply Scrubbing: manual (Client titles may reveal user-specific application configurations or custom setups) - Examples: - Example MCP Client ### mcp.client.version - Brief: Version of the MCP client implementation, as declared in clientInfo. - Type: string - Apply Scrubbing: manual - Examples: - 1.0.0 ### mcp.lifecycle.phase - Brief: Lifecycle phase indicator for MCP operations. - Type: string - Apply Scrubbing: manual - Example: initialization_complete ### mcp.logging.data_type - Brief: Data type of the logged message content. - Type: string - Apply Scrubbing: manual - Example: string ### mcp.logging.level - Brief: Log level for MCP logging operations. - Type: string - Apply Scrubbing: manual - Example: info ### mcp.logging.logger - Brief: Logger name for MCP logging operations. - Type: string - Apply Scrubbing: manual (Logger names may be user-defined and could contain sensitive information) - Example: mcp_server ### mcp.logging.message - Brief: Log message content from MCP logging operations. - Type: string - Apply Scrubbing: auto (Log messages can contain user data) - Example: Tool execution completed successfully ### mcp.method.name - Brief: The name of the MCP request or notification method being called. - Type: string - Apply Scrubbing: manual - Example: tools/call - OpenTelemetry: yes ### mcp.progress.current - Brief: Current progress value of an MCP operation. - Type: double - Apply Scrubbing: manual - Examples: - 0.2 - 50 ### mcp.progress.message - Brief: Progress message describing the current state of an MCP operation. - Type: string - Apply Scrubbing: manual (Progress messages may contain user-specific or sensitive information) - Example: Processing 50 of 100 items ### mcp.progress.percentage - Brief: Calculated progress percentage of an MCP operation. Computed from current/total * 100. - Type: double - Apply Scrubbing: manual - Example: 50 ### mcp.progress.token - Brief: Token for tracking progress of an MCP operation. - Type: string - Apply Scrubbing: manual - Example: progress-token-123 ### mcp.progress.total - Brief: Total progress target value of an MCP operation. - Type: double - Apply Scrubbing: manual - Examples: - 1 - 100 ### mcp.prompt.name - Brief: Name of the MCP prompt template being used. - Type: string - Apply Scrubbing: manual (Prompt names may reveal user behavior patterns or sensitive operations) - Example: summarize - Aliases: gen_ai.prompt.name - Deprecated: yes (use gen_ai.prompt.name) ### mcp.prompt.result..content - Brief: Legacy text content of an indexed message in a multi-message MCP prompt result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - Summarize the document. - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple messages. is the zero-based position in the original messages array; absent fields do not renumber later messages. - Recorded only when output capture is enabled. ### mcp.prompt.result..role - Brief: Legacy role of an indexed message in a multi-message MCP prompt result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - user - assistant - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple messages. is the zero-based position in the original messages array; absent fields do not renumber later messages. - Recorded only when output capture is enabled. ### mcp.prompt.result.description - Brief: Description of the prompt result. - Type: string - Apply Scrubbing: auto - Example: A summary of the requested information ### mcp.prompt.result.message_content - Brief: Content of the message in the prompt result. Used for single message results only. - Type: string - Apply Scrubbing: auto - Example: Please provide a summary of the document ### mcp.prompt.result.message_count - Brief: Number of messages in the prompt result. - Type: integer - Apply Scrubbing: manual - Example: 3 ### mcp.prompt.result.message_role - Brief: Role of the message in the prompt result. Used for single message results only. - Type: string - Apply Scrubbing: manual - Example: user ### mcp.protocol.ready - Brief: Readiness indicator for the legacy MCP initialization handshake. A non-zero value indicates that notifications/initialized has completed initialization. Omit for protocol versions without this handshake. - Type: integer - Apply Scrubbing: manual - Examples: - 1 ### mcp.protocol.version - Brief: Version of the Model Context Protocol used for the operation. - Type: string - Apply Scrubbing: manual - Examples: - 2024-11-05 - OpenTelemetry: yes ### mcp.request.argument. - Brief: MCP request argument with dynamic key suffix. The is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value. - Type: string - Apply Scrubbing: auto (Arguments contain user input) - Example: mcp.request.argument.query='weather in Paris' - Has dynamic suffix: yes ### mcp.request.argument.name - Brief: Name argument from prompts/get MCP request. - Type: string - Apply Scrubbing: auto (Prompt names can contain user input) - Example: summarize ### mcp.request.argument.uri - Brief: URI argument from resources/read MCP request. - Type: string - Apply Scrubbing: auto (URIs can contain user file paths) - Example: file:///path/to/resource ### mcp.request.id - Brief: JSON-RPC request identifier for the MCP request, used to correlate the request with its response. - Type: string - Apply Scrubbing: manual - Examples: - 1 - Aliases: jsonrpc.request.id - Deprecated: yes (use jsonrpc.request.id) ### mcp.resource.protocol - Brief: URI scheme of the MCP resource being accessed, extracted from its URI. This is distinct from the network protocol used to communicate with the MCP server. - Type: string - Apply Scrubbing: manual - Examples: - file - postgres ### mcp.resource.uri - Brief: The resource URI being accessed in an MCP operation. - Type: string - Apply Scrubbing: auto (URIs can contain sensitive file paths) - Example: file:///path/to/file.txt - OpenTelemetry: yes ### mcp.server.name - Brief: Name of the MCP server implementation, as declared in serverInfo. - Type: string - Apply Scrubbing: manual - Examples: - example-mcp-server ### mcp.server.title - Brief: Display title of the MCP server implementation, as declared in serverInfo. - Type: string - Apply Scrubbing: manual (Server titles may reveal user-specific application configurations or custom setups) - Examples: - Example MCP Server ### mcp.server.version - Brief: Version of the MCP server implementation, as declared in serverInfo. - Type: string - Apply Scrubbing: manual - Examples: - 0.1.0 ### mcp.session.id - Brief: Identifier for an MCP protocol session, when the operation belongs to a session. - Type: string - Apply Scrubbing: manual - Examples: - 550e8400-e29b-41d4-a716-446655440000 - OpenTelemetry: yes - Additional context: - Applies to protocol versions and transports that provide MCP session management, including legacy Streamable HTTP sessions. Omit for operations without a protocol session; do not synthesize a session identifier from a request, connection, or conversation. ### mcp.tool.name - Brief: Name of the MCP tool being called. - Type: string - Apply Scrubbing: manual - Example: calculator - Aliases: gen_ai.tool.name, ai.function_call - Deprecated: yes (use gen_ai.tool.name) ### mcp.tool.result..content - Brief: Legacy text content of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - The operation completed. - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - This is one item's text, not the complete tool result. It must not be aliased or directly backfilled to gen_ai.tool.call.result; reconstructing the complete result requires aggregation. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..content_type - Brief: Legacy content type of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - text - image - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded even when output capture is disabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..data_size - Brief: Legacy length of the data string in UTF-16 code units of an indexed content item in a multi-item MCP tool result. - Type: integer - Apply Scrubbing: manual (The length contains no result content.) - Examples: - 4 - 1024 - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..mime_type - Brief: Legacy MIME type of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - image/png - audio/wav - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..name - Brief: Legacy resource link name of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..resource_mime_type - Brief: Legacy embedded resource MIME type of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - text/plain - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..resource_uri - Brief: Legacy embedded resource URI of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - file:///project/report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result..uri - Brief: Legacy resource link URI of an indexed content item in a multi-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - file:///project/report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted for results with multiple content items. is the zero-based position in the original content array; absent fields do not renumber later items. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.content - Brief: The content of the tool result. - Type: string - Apply Scrubbing: manual (Tool results can contain user data) - Example: {"output": "rainy", "toolCallId": "1"} - Aliases: gen_ai.tool.call.result, gen_ai.tool.message, gen_ai.tool.output, ai.toolCall.result, anthropic.tool_result.content - Deprecated: yes (use gen_ai.tool.call.result) ### mcp.tool.result.content_count - Brief: Number of content items in the tool result. - Type: integer - Apply Scrubbing: manual - Example: 1 - Deprecated: yes (A count can be calculcated from the value of the gen_ai.tool.call.result attribute.) ### mcp.tool.result.content_type - Brief: Legacy content type of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - text - image - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded even when output capture is disabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.data_size - Brief: Legacy length of the data string in UTF-16 code units of the content item in a single-item MCP tool result. - Type: integer - Apply Scrubbing: manual (The length contains no result content.) - Examples: - 4 - 1024 - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.is_error - Brief: Whether a tool execution resulted in an error. - Type: boolean - Apply Scrubbing: manual - Example: false - Deprecated: yes (use error.type) ### mcp.tool.result.mime_type - Brief: Legacy MIME type of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - image/png - audio/wav - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.name - Brief: Legacy resource link name of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.resource_mime_type - Brief: Legacy embedded resource MIME type of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - text/plain - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.resource_uri - Brief: Legacy embedded resource URI of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - file:///project/report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.tool.result.uri - Brief: Legacy resource link URI of the content item in a single-item MCP tool result. - Type: string - Apply Scrubbing: auto (Preserve automatic scrubbing of server-provided result fields.) - Examples: - file:///project/report.txt - Additional context: - Registers an existing Sentry JavaScript SDK attribute for compatibility. - Emitted only when the result contains exactly one content item. - Recorded only when output capture is enabled. - Deprecated: yes (Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.) ### mcp.transport - Brief: MCP transport implementation name, such as the transport class name. This identifies the implementation, not the network transport or application protocol. - Type: string - Apply Scrubbing: manual - Examples: - StdioServerTransport - CustomHTTPTransport --- ## mdc ### mdc. - Brief: Attributes from the Mapped Diagnostic Context (MDC) present at the moment the log record was created. The MDC is supported by all the most popular logging solutions in the Java ecosystem, and it's usually implemented as a thread-local map that stores context for e.g. a specific request. - Type: string - Apply Scrubbing: auto - Example: mdc.some_key='some_value' - Has dynamic suffix: yes --- ## messaging ### messaging.batch.message_count - Brief: The number of messages sent, received, or processed in the scope of the batching operation. - Type: integer - Apply Scrubbing: manual - Example: 10 - OpenTelemetry: yes ### messaging.bullmq.flow.name - Brief: The name of the root job of the BullMQ flow that FlowProducer.add() adds. - Type: string - Apply Scrubbing: manual - Examples: - build-report - Additional context: - The Sentry SDK sets this attribute from the `bullmq.flow.name` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.attempt_finished_timestamp - Brief: The time in milliseconds since the Unix epoch when the current attempt of the BullMQ job finished. - Type: integer - Apply Scrubbing: manual - Examples: - 1791184722406 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.attempt_finished_timestamp` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.bulk.names - Brief: The names of the BullMQ jobs or flows that one bulk operation adds, for example Queue.addBulk(). - Type: string[] - Apply Scrubbing: manual - Examples: - ["send-welcome-email","generate-report"] - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.bulk.names` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.deduplication.key - Brief: The deduplication ID that Queue.removeDeduplicationKey() removes. - Type: string - Apply Scrubbing: auto - Examples: - user-42-sync - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.deduplication.key` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.ids - Brief: The IDs of the BullMQ jobs that Queue.clean() removed. - Type: string[] - Apply Scrubbing: manual - Examples: - ["1","2","3"] - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.ids` attribute of BullMQ's telemetry interface. - BullMQ 5.79.1 sets this attribute. BullMQ 6.3.11 does not. ### messaging.bullmq.job.key - Brief: The key that a BullMQ remove operation for a debounce or repeatable key gets, for example Queue.removeDebounceKey(). - Type: string - Apply Scrubbing: auto - Examples: - user-42-sync - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.key` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.name - Brief: The name of the BullMQ job, which the user passes to Queue.add() to identify the kind of work. - Type: string - Apply Scrubbing: manual - Examples: - send-welcome-email - generate-report - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.name` attribute of BullMQ's telemetry interface. - Also set on the BullMQ job metrics. ### messaging.bullmq.job.processed_timestamp - Brief: The time in milliseconds since the Unix epoch when the Worker started to process the BullMQ job. - Type: integer - Apply Scrubbing: manual - Examples: - 1791184722281 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.processed.timestamp` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.scheduler.id - Brief: The ID of the BullMQ job scheduler that adds the job. - Type: string - Apply Scrubbing: manual - Examples: - daily-report - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.scheduler.id` attribute of BullMQ's telemetry interface. ### messaging.bullmq.job.state - Brief: The state of the BullMQ job that a job metric counts. - Type: string - Apply Scrubbing: manual - Examples: - completed - failed - delayed - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.state` attribute of BullMQ's telemetry interface. BullMQ before 5.81.2 sets `bullmq.job.status` instead, and the SDK then uses that value. ### messaging.bullmq.job.type - Brief: The job state from which Queue.clean() removes BullMQ jobs. - Type: string - Apply Scrubbing: manual - Examples: - completed - failed - Additional context: - The Sentry SDK sets this attribute from the `bullmq.job.type` attribute of BullMQ's telemetry interface. ### messaging.bullmq.queue.clean.count - Brief: The number of BullMQ jobs that Queue.clean() removed. - Type: integer - Apply Scrubbing: manual - Examples: - 25 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.clean.count` attribute of BullMQ's telemetry interface. - BullMQ 6.3.11 sets this attribute. BullMQ 5.79.1 does not. ### messaging.bullmq.queue.clean.limit - Brief: The maximum number of BullMQ jobs that Queue.clean() removes. - Type: integer - Apply Scrubbing: manual - Examples: - 1000 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.clean.limit` attribute of BullMQ's telemetry interface. ### messaging.bullmq.queue.drain.delay - Brief: Whether Queue.drain() also removes the delayed BullMQ jobs. - Type: boolean - Apply Scrubbing: manual - Examples: - true - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.drain.delay` attribute of BullMQ's telemetry interface. ### messaging.bullmq.queue.event.max_length - Brief: The maximum number of events that Queue.trimEvents() keeps in the BullMQ event stream. - Type: integer - Apply Scrubbing: manual - Examples: - 10000 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.event.max.length` attribute of BullMQ's telemetry interface. ### messaging.bullmq.queue.grace - Brief: The grace period in milliseconds that Queue.clean() uses. Only BullMQ jobs that are older are removed. - Type: integer - Apply Scrubbing: manual - Examples: - 60000 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.grace` attribute of BullMQ's telemetry interface. ### messaging.bullmq.queue.jobs.state - Brief: The BullMQ job state that the queue job count metric counts. - Type: string - Apply Scrubbing: manual - Examples: - waiting - active - completed - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.jobs.state` attribute of BullMQ's telemetry interface. - Set on the BullMQ queue job count metric. ### messaging.bullmq.queue.rate_limit - Brief: The time in milliseconds for which Queue.rateLimit() rate-limits the BullMQ queue. - Type: integer - Apply Scrubbing: manual - Examples: - 5000 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.queue.rate.limit` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.do_not_wait_active - Brief: Whether Worker.pause() returns without waiting for the active BullMQ jobs to finish. - Type: boolean - Apply Scrubbing: manual - Examples: - false - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.do.not.wait.active` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.force_close - Brief: Whether Worker.close() closes the Worker without waiting for the active BullMQ jobs to finish. - Type: boolean - Apply Scrubbing: manual - Examples: - false - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.force.close` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.jobs_to_extend_locks - Brief: The IDs of the BullMQ jobs whose locks the Worker extends. - Type: string[] - Apply Scrubbing: manual - Examples: - ["1","2"] - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.jobs.to.extend.locks` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.name - Brief: The name that the user gives to the BullMQ Worker in its options. - Type: string - Apply Scrubbing: manual - Examples: - email-worker - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.name` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.rate_limit - Brief: The time in milliseconds for which Worker.rateLimit() rate-limits the BullMQ Worker. - Type: integer - Apply Scrubbing: manual - Examples: - 5000 - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.rate.limit` attribute of BullMQ's telemetry interface. ### messaging.bullmq.worker.stalled_jobs - Brief: The IDs of the stalled BullMQ jobs that the Worker moved back to the wait state. - Type: string[] - Apply Scrubbing: manual - Examples: - ["1","2"] - Additional context: - The Sentry SDK sets this attribute from the `bullmq.worker.stalled.jobs` attribute of BullMQ's telemetry interface. ### messaging.client.id - Brief: A unique identifier for the client that consumes or produces a message. - Type: string - Apply Scrubbing: manual - Examples: - client-5 - myhost@8742@s8083jm - OpenTelemetry: yes - Additional context: - The Sentry SDK sets this attribute on BullMQ spans from the `bullmq.worker.id` attribute of BullMQ's telemetry interface, which is the ID of the Worker. ### messaging.conversation_id - Brief: The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID". - Type: string - Apply Scrubbing: manual - Examples: - MyConversationId - Aliases: messaging.message.conversation_id - Deprecated: yes (use messaging.message.conversation_id) ### messaging.destination - Brief: The message destination name. - Type: string - Apply Scrubbing: manual - Example: BestTopic - Aliases: messaging.destination.name - Deprecated: yes (use messaging.destination.name) ### messaging.destination_kind - Brief: The kind of message destination. - Type: string - Apply Scrubbing: manual - Example: topic - Deprecated: yes (Deprecated from OTEL, which now models the destination kind via messaging.operation.type and messaging.destination.name.) ### messaging.destination.connection - Brief: The message destination connection. - Type: string - Apply Scrubbing: manual - Example: BestTopic ### messaging.destination.name - Brief: The message destination name. - Type: string - Apply Scrubbing: manual - Example: BestTopic - Aliases: messaging.destination - OpenTelemetry: yes ### messaging.destination.partition.id - Brief: The identifier of the partition messages are sent to or received from, unique within the messaging.destination.name. - Type: string - Apply Scrubbing: manual - Example: 1 - OpenTelemetry: yes ### messaging.kafka.message.key - Brief: Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from messaging.message.id in that they're not unique. If the key is null, the attribute MUST NOT be set. - Type: string - Apply Scrubbing: manual - Example: myKey - OpenTelemetry: yes ### messaging.kafka.message.tombstone - Brief: A boolean that is true if the message is a tombstone. - Type: boolean - Apply Scrubbing: manual - Example: true - OpenTelemetry: yes ### messaging.kafka.offset - Brief: The offset of a record in the corresponding Kafka partition. - Type: integer - Apply Scrubbing: manual - Example: 42 - OpenTelemetry: yes ### messaging.message_id - Brief: A value used by the messaging system as an identifier for the message, represented as a string. - Type: string - Apply Scrubbing: manual - Examples: - 452a7c7c7c7048c2f887f0e7 - Aliases: messaging.message.id - Deprecated: yes (use messaging.message.id) ### messaging.message.body.size - Brief: The size of the message body in bytes. - Type: integer - Apply Scrubbing: manual - Example: 839 - Search alias: messaging.message.body.size (byte) - OpenTelemetry: yes ### messaging.message.conversation_id - Brief: The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID". - Type: string - Apply Scrubbing: manual - Example: MyConversationId - Aliases: messaging.conversation_id - OpenTelemetry: yes ### messaging.message.envelope.size - Brief: The size of the message body and metadata in bytes. - Type: integer - Apply Scrubbing: manual - Example: 1045 - OpenTelemetry: yes ### messaging.message.id - Brief: A value used by the messaging system as an identifier for the message, represented as a string. - Type: string - Apply Scrubbing: manual - Example: f47ac10b58cc4372a5670e02b2c3d479 - Aliases: messaging.message_id - OpenTelemetry: yes ### messaging.message.receive.latency - Brief: The latency between when the message was published and received. - Type: integer - Apply Scrubbing: manual - Example: 1732847252 - Search alias: messaging.message.receive.latency (millisecond) ### messaging.message.retry.count - Brief: The amount of attempts to send the message. - Type: integer - Apply Scrubbing: manual - Example: 2 ### messaging.operation - Brief: The name of the messaging operation being performed. - Type: string - Apply Scrubbing: manual - Examples: - publish - Aliases: messaging.operation.name - Deprecated: yes (use messaging.operation.name) ### messaging.operation.name - Brief: The name of the messaging operation being performed - Type: string - Apply Scrubbing: manual - Example: send - Aliases: messaging.operation - OpenTelemetry: yes ### messaging.operation.type - Brief: A string identifying the type of the messaging operation - Type: string - Apply Scrubbing: manual - Example: create - OpenTelemetry: yes ### messaging.protocol - Brief: OSI application layer or non-OSI equivalent. - Type: string - Apply Scrubbing: manual - Examples: - AMQP - Aliases: network.protocol.name, net.protocol.name - Deprecated: yes (use network.protocol.name) ### messaging.protocol_version - Brief: The actual version of the protocol used for network communication. - Type: string - Apply Scrubbing: manual - Examples: - 0.9.1 - Aliases: network.protocol.version, http.flavor, net.protocol.version - Deprecated: yes (use network.protocol.version) ### messaging.rabbitmq.destination.routing_key - Brief: RabbitMQ message routing key. - Type: string - Apply Scrubbing: manual - Example: myKey - Aliases: messaging.rabbitmq.routing_key - OpenTelemetry: yes ### messaging.rabbitmq.routing_key - Brief: RabbitMQ message routing key. - Type: string - Apply Scrubbing: manual - Examples: - myKey - Aliases: messaging.rabbitmq.destination.routing_key - Deprecated: yes (use messaging.rabbitmq.destination.routing_key) ### messaging.system - Brief: The messaging system as identified by the client instrumentation. - Type: string - Apply Scrubbing: manual - Example: activemq - OpenTelemetry: yes ### messaging.url - Brief: The connection string of the messaging broker. - Type: string - Apply Scrubbing: auto - Examples: - amqp://guest:guest@localhost:5672 - Aliases: url.full, http.url, url, aws.request.url - Deprecated: yes (use url.full) --- ## middleware ### middleware.name - Brief: The name of the middleware. - Type: string - Apply Scrubbing: manual - Example: AuthenticationMiddleware - Aliases: django.middleware_name, starlite.middleware_name, litestar.middleware_name, starlette.middleware_name --- ## navigation ### navigation.origin - Brief: The origin of the navigation (usually client side router navigations). Should preferrably parameterized template (like url.template) or a URL path otherwise. - Type: string - Apply Scrubbing: auto - Example: /users/:id - Aliases: router.navigation.origin, sentry.sveltekit.navigation.from - Deprecated: yes (use router.navigation.origin) ### navigation.route.id - Brief: The identifier of the matched client-side route, as assigned by the routing framework (e.g., vue-router name, react-router id). - Type: string - Apply Scrubbing: auto - Example: AboutView - Aliases: router.navigation.route.id - Deprecated: yes (use router.navigation.route.id) ### navigation.type - Brief: The type of navigation done by a client-side router. - Type: string - Apply Scrubbing: manual - Example: router.push - Aliases: router.navigation.type, sentry.sveltekit.navigation.type - Deprecated: yes (use router.navigation.type) --- ## nel ### nel.elapsed_time - Brief: The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent. - Type: integer - Apply Scrubbing: manual - Example: 100 ### nel.phase - Brief: If request failed, the phase of its network error. If request succeeded, "application". - Type: string - Apply Scrubbing: manual - Example: application ### nel.referrer - Brief: request's referrer, as determined by the referrer policy associated with its client. - Type: string - Apply Scrubbing: auto - Example: https://example.com/foo?bar=baz ### nel.sampling_fraction - Brief: The sampling fraction used to determine if the request should be sampled. - Type: double - Apply Scrubbing: manual - Examples: - 0.5 - Aliases: nel.sampling_function ### nel.sampling_function - Brief: The sampling function used to determine if the request should be sampled. - Type: double - Apply Scrubbing: manual - Example: 0.5 - Aliases: nel.sampling_fraction - Deprecated: yes (use nel.sampling_fraction) ### nel.type - Brief: If request failed, the type of its network error. If request succeeded, "ok". - Type: string - Apply Scrubbing: manual - Example: dns.unreachable --- ## net ### net.host.ip - Brief: Local address of the network connection - IP address or Unix domain socket name. - Type: string - Apply Scrubbing: manual - Example: 192.168.0.1 - Aliases: network.local.address, net.sock.host.addr - OpenTelemetry: yes - Deprecated: yes (use network.local.address) ### net.host.name - Brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, server.address, http.server_name, http.host, server_name, net.peer.name - OpenTelemetry: yes - Deprecated: yes (use server.address) ### net.host.port - Brief: Server port number. - Type: integer - Apply Scrubbing: manual - Example: 1337 - Aliases: server.port, port - OpenTelemetry: yes - Deprecated: yes (use server.port) ### net.peer.ip - Brief: Peer address of the network connection - IP address or Unix domain socket name. - Type: string - Apply Scrubbing: auto - Example: 192.168.0.1 - Aliases: network.peer.address, net.sock.peer.addr - OpenTelemetry: yes - Deprecated: yes (use network.peer.address) ### net.peer.name - Brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, server.address, http.server_name, net.host.name, http.host, server_name - OpenTelemetry: yes - Deprecated: yes (use server.address) ### net.peer.port - Brief: Peer port number. - Type: integer - Apply Scrubbing: manual - Example: 1337 - OpenTelemetry: yes - Deprecated: yes (use server.port) ### net.protocol.name - Brief: OSI application layer or non-OSI equivalent. - Type: string - Apply Scrubbing: manual - Examples: - http - Aliases: network.protocol.name, messaging.protocol - OpenTelemetry: yes - Deprecated: yes (use network.protocol.name) ### net.protocol.version - Brief: The actual version of the protocol used for network communication. - Type: string - Apply Scrubbing: manual - Example: 1.1 - Aliases: network.protocol.version, http.flavor, messaging.protocol_version - OpenTelemetry: yes - Deprecated: yes (use network.protocol.version) ### net.sock.family - Brief: OSI transport and network layer - Type: string - Apply Scrubbing: manual - Example: inet - OpenTelemetry: yes - Deprecated: yes (use network.transport) ### net.sock.host.addr - Brief: Local address of the network connection mapping to Unix domain socket name. - Type: string - Apply Scrubbing: manual - Example: /var/my.sock - Aliases: network.local.address, net.host.ip - OpenTelemetry: yes - Deprecated: yes (use network.local.address) ### net.sock.host.port - Brief: Local port number of the network connection. - Type: integer - Apply Scrubbing: manual - Example: 8080 - Aliases: network.local.port - OpenTelemetry: yes - Deprecated: yes (use network.local.port) ### net.sock.peer.addr - Brief: Peer address of the network connection - IP address - Type: string - Apply Scrubbing: auto - Example: 192.168.0.1 - Aliases: network.peer.address, net.peer.ip - OpenTelemetry: yes - Deprecated: yes (use network.peer.address) ### net.sock.peer.name - Brief: Peer address of the network connection - Unix domain socket name - Type: string - Apply Scrubbing: auto - Example: /var/my.sock - OpenTelemetry: yes - Deprecated: yes (Deprecated from OTEL, no replacement at this time) ### net.sock.peer.port - Brief: Peer port number of the network connection. - Type: integer - Apply Scrubbing: manual - Example: 8080 - Aliases: network.peer.port - OpenTelemetry: yes - Deprecated: yes (use network.peer.port) ### net.transport - Brief: OSI transport layer or inter-process communication method. - Type: string - Apply Scrubbing: manual - Examples: - tcp - Aliases: network.transport - OpenTelemetry: yes - Deprecated: yes (use network.transport) --- ## network ### network.connection.effective_type - Brief: Specifies the effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g). - Type: string - Apply Scrubbing: manual - Example: 4g - Aliases: effectiveConnectionType ### network.connection.rtt - Brief: Specifies the estimated effective round-trip time of the current connection, in milliseconds. - Type: integer - Apply Scrubbing: manual - Example: 100 - Aliases: connection.rtt ### network.connection.type - Brief: Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc). - Type: string - Apply Scrubbing: manual - Example: wifi - Aliases: device.connection_type, connectionType - OpenTelemetry: yes ### network.local.address - Brief: Local address of the network connection - IP address or Unix domain socket name. - Type: string - Apply Scrubbing: manual - Examples: - 10.1.2.80 - /var/run/my.sock - Aliases: net.host.ip, net.sock.host.addr - OpenTelemetry: yes ### network.local.port - Brief: Local port number of the network connection. - Type: integer - Apply Scrubbing: manual - Example: 65400 - Aliases: net.sock.host.port - OpenTelemetry: yes ### network.peer.address - Brief: Peer address of the network connection - IP address or Unix domain socket name. - Type: string - Apply Scrubbing: auto - Example: 10.1.2.80 - Aliases: net.peer.ip, net.sock.peer.addr - OpenTelemetry: yes ### network.peer.port - Brief: Peer port number of the network connection. - Type: integer - Apply Scrubbing: manual - Example: 65400 - Aliases: net.sock.peer.port - OpenTelemetry: yes ### network.protocol.name - Brief: OSI application layer or non-OSI equivalent. - Type: string - Apply Scrubbing: manual - Examples: - http - Aliases: net.protocol.name, messaging.protocol - OpenTelemetry: yes ### network.protocol.version - Brief: The actual version of the protocol used for network communication. - Type: string - Apply Scrubbing: manual - Example: 1.1 - Aliases: http.flavor, net.protocol.version, messaging.protocol_version - OpenTelemetry: yes ### network.transport - Brief: OSI transport layer or inter-process communication method. - Type: string - Apply Scrubbing: manual - Examples: - tcp - Aliases: net.transport - OpenTelemetry: yes ### network.type - Brief: OSI network layer or non-OSI equivalent. - Type: string - Apply Scrubbing: manual - Example: ipv4 - OpenTelemetry: yes --- ## os ### os.build - Brief: The build ID of the operating system. - Type: string - Apply Scrubbing: manual - Example: 1234567890 - Aliases: os.build_id - Deprecated: yes (use os.build_id) ### os.build_id - Brief: The build ID of the operating system. - Type: string - Apply Scrubbing: manual - Example: 1234567890 - Aliases: os.build - OpenTelemetry: yes ### os.description - Brief: Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands. - Type: string - Apply Scrubbing: manual - Example: Ubuntu 18.04.1 LTS - OpenTelemetry: yes ### os.kernel_version - Brief: An independent kernel version string. Typically the entire output of the `uname` syscall. - Type: string - Apply Scrubbing: manual - Example: 20.2.0 ### os.name - Brief: Human readable operating system name. - Type: string - Apply Scrubbing: manual - Example: Ubuntu - OpenTelemetry: yes ### os.raw_description - Brief: An unprocessed description string obtained by the operating system. For some well-known runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are not explicitly given. - Type: string - Apply Scrubbing: manual - Example: Ubuntu 22.04.4 LTS (Jammy Jellyfish) ### os.rooted - Brief: Whether the operating system has been jailbroken or rooted. - Type: boolean - Apply Scrubbing: manual - Example: true ### os.theme - Brief: Whether the OS runs in dark mode or light mode. - Type: string - Apply Scrubbing: manual - Example: dark ### os.type - Brief: The operating system type. - Type: string - Apply Scrubbing: manual - Example: linux - OpenTelemetry: yes ### os.version - Brief: The version of the operating system. - Type: string - Apply Scrubbing: manual - Example: 18.04.2 - OpenTelemetry: yes --- ## otel ### otel.kind - Brief: The span kind (https://opentelemetry.io/docs/concepts/signals/traces/#span-kind). Deprecated, use `sentry.kind` instead. - Type: string - Apply Scrubbing: manual - Example: SERVER - Aliases: sentry.kind - Deprecated: yes (use sentry.kind) ### otel.scope.name - Brief: The name of the instrumentation scope - (InstrumentationScope.Name in OTLP). - Type: string - Apply Scrubbing: manual - Example: io.opentelemetry.contrib.mongodb - OpenTelemetry: yes ### otel.scope.version - Brief: The version of the instrumentation scope - (InstrumentationScope.Version in OTLP). - Type: string - Apply Scrubbing: manual - Example: 2.4.5 - OpenTelemetry: yes ### otel.status_code - Brief: Name of the code, either “OK” or “ERROR”. MUST NOT be set if the status code is UNSET. - Type: string - Apply Scrubbing: manual - Example: OK - OpenTelemetry: yes ### otel.status_description - Brief: Description of the Status if it has a value, otherwise not set. - Type: string - Apply Scrubbing: auto - Example: resource not found - OpenTelemetry: yes --- ## page ### page.server_rendering.type - Brief: Set on a pageload span. Describes how the server rendered the content of the page: to reuse it for other requests, only for this request, or a mix of both. - Type: string - Apply Scrubbing: manual - Examples: - static - partially_static - dynamic - Additional context: - Set only by an SDK that controls the server render, and only when the SDK knows the value. - More values can be added later. - Not set when the browser renders the content of the page (client-side rendering), or when the SDK does not know the value. - With `static` and `partially_static`, the server spans that rendered the reused part are not in the trace of the pageload span. If Sentry recorded them, they are in a different trace. - Describes how the server rendered the page, not how the page was delivered. A CDN or the browser cache can reuse a response with any value. For the browser's own [prerendering](https://developer.mozilla.org/en-US/docs/Web/API/Document/prerendering), see `browser.navigation.type`. --- ## params ### params. - Brief: Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router. - Type: string - Apply Scrubbing: auto - Example: params.id='123' - Aliases: url.path.parameter., url.path.params. - Has dynamic suffix: yes --- ## performance ### performance.activationStart - Brief: The time between initiating a navigation to a page and the browser activating the page - Type: double - Apply Scrubbing: manual - Example: 1.983 - Aliases: browser.performance.navigation.activation_start - Deprecated: yes (use browser.performance.navigation.activation_start) ### performance.timeOrigin - Brief: The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated - Type: double - Apply Scrubbing: manual - Example: 1776185678.886 - Aliases: browser.performance.time_origin - Deprecated: yes (use browser.performance.time_origin) --- ## process ### process.command_args - Brief: All the command arguments (including the command/executable itself) as received by the process. - Type: string[] - Apply Scrubbing: auto - Example: ["cmd/otecol","--config=config.yaml"] - OpenTelemetry: yes ### process.executable.name - Brief: The name of the executable that started the process. - Type: string - Apply Scrubbing: manual - Example: getsentry - OpenTelemetry: yes ### process.pid - Brief: The process ID of the running process. - Type: integer - Apply Scrubbing: manual - Example: 12345 - Aliases: subprocess.pid - OpenTelemetry: yes ### process.runtime.description - Brief: An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. Equivalent to `raw_description` in the Sentry runtime context. - Type: string - Apply Scrubbing: manual - Example: Eclipse OpenJ9 VM openj9-0.21.0 - Aliases: runtime.raw_description - OpenTelemetry: yes ### process.runtime.engine.name - Brief: The name of the runtime engine. - Type: string - Apply Scrubbing: manual - Example: v8 ### process.runtime.engine.version - Brief: The version of the runtime engine. - Type: string - Apply Scrubbing: manual - Example: 12.9.202.13-rusty ### process.runtime.name - Brief: The name of the runtime. Equivalent to `name` in the Sentry runtime context. - Type: string - Apply Scrubbing: manual - Example: node - Aliases: runtime.name - OpenTelemetry: yes ### process.runtime.version - Brief: The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context. - Type: string - Apply Scrubbing: manual - Example: 18.04.2 - Aliases: runtime.version - OpenTelemetry: yes --- ## query ### query. - Brief: An item in a query string. Usually added by client-side routing frameworks like vue-router. - Type: string - Apply Scrubbing: auto - Example: query.id='123' - Has dynamic suffix: yes - Deprecated: yes (use url.query) --- ## react ### react.version - Brief: The version of the React framework - Type: string - Apply Scrubbing: manual - Example: 18.2.0 --- ## react_native ### react_native.architecture - Brief: The React Native architecture the app is running on. `new` for the New Architecture, where native modules are resolved as TurboModules through `TurboModuleRegistry`, `legacy` for the Old Architecture bridge. - Type: string - Apply Scrubbing: manual - Examples: - new - legacy - Aliases: turbo_module.arch ### react_native.module.call.count - Brief: The number of native module calls observed during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Examples: - 42 - Aliases: turbo_module.total_call_count, turbo_modules.total_call_count ### react_native.module.call.distinct_count - Brief: The number of distinct native module and method pairs called during the lifetime of the span. Useful as a cardinality signal when the per-method breakdown has been truncated. - Type: integer - Apply Scrubbing: manual - Examples: - 7 - Aliases: turbo_module.unique_methods, turbo_modules.unique_methods ### react_native.module.duration.max - Brief: The duration of the slowest single native module call observed during the lifetime of the span, in milliseconds. - Type: double - Apply Scrubbing: manual - Examples: - 512.5 ### react_native.module.duration.total - Brief: The combined wall-clock duration of all native module calls observed during the lifetime of the span, in milliseconds. Calls overlap, so this can exceed the span duration. - Type: double - Apply Scrubbing: manual - Examples: - 128.45 - Aliases: turbo_module.total_duration_ms, turbo_modules.total_duration_ms ### react_native.module.error.count - Brief: The number of native module calls that failed during the lifetime of the span. A call counts as failed when it threw, rejected, or — on the Old Architecture bridge only — invoked its failure callback. - Type: integer - Apply Scrubbing: manual - Examples: - 2 - Aliases: turbo_module.total_error_count, turbo_modules.total_error_count ### react_native.module.kind - Brief: Whether the native module call completed synchronously or reported completion later through a Promise or a callback. One of `sync` or `async`. - Type: string - Apply Scrubbing: manual - Examples: - sync - async ### react_native.module.method - Brief: The name of the native module method that was called. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - getUniqueId - Aliases: turbo_module.method ### react_native.module.name - Brief: The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - RNDeviceInfo - Aliases: turbo_module.name ### react_native.module.top.duration - Brief: The total duration attributed to `react_native.module.top.name`, in milliseconds. - Type: double - Apply Scrubbing: manual - Examples: - 87.25 - Aliases: turbo_module.top_module_duration_ms ### react_native.module.top.name - Brief: The native module and method that accounted for the most total duration during the lifetime of the span, formatted as `.`. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - RNDeviceInfo.getUniqueId - Aliases: turbo_module.top_module --- ## redis ### redis.command - Brief: The name of the Redis operation being executed. - Type: string - Apply Scrubbing: manual - Examples: - SELECT - Aliases: cloudflare.d1.query_type, db.operation.name, db.operation - Deprecated: yes (use db.operation.name) ### redis.key - Brief: The key the Redis command is operating on. - Type: string - Apply Scrubbing: manual - Example: user:2047:city - Aliases: db.redis.key - Deprecated: yes (use db.redis.key) --- ## remix ### remix.action_form_data. - Brief: Remix form data, being the form data key, the value being the form data value. - Type: string - Apply Scrubbing: auto - Example: http.response.header.text='test' - Has dynamic suffix: yes --- ## resource ### resource.deployment.environment - Brief: The software deployment environment name. - Type: string - Apply Scrubbing: never - Example: production - OpenTelemetry: yes - Deprecated: yes (use sentry.environment) ### resource.deployment.environment.name - Brief: The software deployment environment name. - Type: string - Apply Scrubbing: never - Example: production - OpenTelemetry: yes - Deprecated: yes (use sentry.environment) ### resource.render_blocking_status - Brief: The render blocking status of the resource. - Type: string - Apply Scrubbing: manual - Example: non-blocking --- ## router ### router.navigation.origin - Brief: The origin of the navigation (usually client side router navigations). Should preferably be a parameterized template (like url.template) or a URL path otherwise. - Type: string - Apply Scrubbing: auto - Example: /users/:id - Aliases: navigation.origin, sentry.sveltekit.navigation.from ### router.navigation.route.id - Brief: The identifier of the matched client-side route, as assigned by the routing framework (e.g., vue-router name, react-router id). - Type: string - Apply Scrubbing: auto - Example: AboutView - Aliases: navigation.route.id ### router.navigation.type - Brief: The type of navigation done by a client-side router. - Type: string - Apply Scrubbing: manual - Example: router.push - Aliases: navigation.type, sentry.sveltekit.navigation.type --- ## rpc ### rpc.grpc.status_code - Brief: The numeric status code of the gRPC request. - Type: integer - Apply Scrubbing: manual - Example: 2 - Aliases: code, rpc.response.status_code - OpenTelemetry: yes - Deprecated: yes (use rpc.response.status_code) ### rpc.method - Brief: The fully-qualified logical name of the method from the RPC interface perspective. - Type: string - Apply Scrubbing: manual - Examples: - com.example.ExampleService/exampleMethod - GetObject - Aliases: aws.operation_name - OpenTelemetry: yes - Additional context: - For AWS SDK calls, this is the operation name only, as the SDK reports it, e.g. `GetObject`. ### rpc.response.status_code - Brief: Status code of the RPC returned by the RPC server or generated by the client. - Type: string - Apply Scrubbing: manual - Example: DEADLINE_EXCEEDED - Aliases: code, rpc.grpc.status_code - OpenTelemetry: yes ### rpc.service - Brief: The full (logical) name of the service being called, including its package name, if applicable. - Type: string - Apply Scrubbing: manual - Examples: - myService.BestService - S3 - APIGateway - OpenTelemetry: yes - Additional context: - Deprecated in OpenTelemetry for generic RPC spans. The value should be included in `rpc.method`, which is expected to be the fully-qualified name. - Still set on AWS SDK spans, where it holds the AWS service ID with all whitespace removed (e.g. `S3`, `APIGateway` for `API Gateway`) and `rpc.method` is set to the operation (e.g. `GetObject`). ### rpc.system - Brief: A string identifying the remoting system. - Type: string - Apply Scrubbing: manual - Example: aws-api - Aliases: rpc.system.name - OpenTelemetry: yes - Deprecated: yes (use rpc.system.name) ### rpc.system.name - Brief: A string identifying the remoting system. - Type: string - Apply Scrubbing: manual - Example: aws-api - Aliases: rpc.system - OpenTelemetry: yes --- ## runtime ### runtime.build - Brief: The application build string, when it is separate from the version. - Type: string - Apply Scrubbing: manual - Example: stable - Deprecated: yes (The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute.) ### runtime.name - Brief: The name of the runtime. For example node, CPython, or rustc. - Type: string - Apply Scrubbing: manual - Example: node - Aliases: process.runtime.name - Deprecated: yes (use process.runtime.name) ### runtime.raw_description - Brief: Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes. - Type: string - Apply Scrubbing: manual - Example: Eclipse OpenJ9 VM openj9-0.21.0 - Aliases: process.runtime.description - Deprecated: yes (use process.runtime.description) ### runtime.version - Brief: The version of the runtime. - Type: string - Apply Scrubbing: manual - Example: 18.04.2 - Aliases: process.runtime.version - Deprecated: yes (use process.runtime.version) --- ## score ### score. - Brief: The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`. - Type: double - Apply Scrubbing: manual - Example: score.cls=0.1723 - Has dynamic suffix: yes ### score.ratio. - Brief: The score for a web vital, normalized to a number between 0 and 1. - Type: double - Apply Scrubbing: manual - Example: score.ratio.inp=0.7748 - Has dynamic suffix: yes ### score.total - Brief: The total performance score of a span. This is the sum of individual weighted web vital scores (see `score.`). - Type: double - Apply Scrubbing: manual ### score.weight. - Brief: The relative weight of a web vital in a span's performance score. - Type: double - Apply Scrubbing: manual - Example: score.weight.fcp=0.25 - Has dynamic suffix: yes --- ## sentry ### sentry.action - Brief: Used as a generic attribute representing the action depending on the type of span. For instance, this is the database query operation for DB spans, and the request method for HTTP spans. - Type: string - Apply Scrubbing: manual - Example: SELECT - Search alias: span.action ### sentry.browser.name - Brief: The name of the browser. - Type: string - Apply Scrubbing: manual - Example: Chrome - Aliases: browser.name - Search alias: browser.name - Deprecated: yes (use browser.name) ### sentry.browser.version - Brief: The version of the browser. - Type: string - Apply Scrubbing: manual - Example: 120.0.6099.130 - Aliases: browser.version - Deprecated: yes (use browser.version) ### sentry.cancellation_reason - Brief: The reason why a span ended early. - Type: string - Apply Scrubbing: never - Example: document.hidden ### sentry.category - Brief: The high-level category of a span, derived from the span operation or span attributes. This categorizes spans by their general purpose (e.g., database, HTTP, UI). - Type: string - Apply Scrubbing: never - Example: db - Search alias: span.category ### sentry.client_sample_rate - Brief: Rate at which a span was sampled in the SDK. - Type: double - Apply Scrubbing: never - Example: 0.5 - Search alias: client_sample_rate ### sentry.description - Brief: The human-readable description of a span. - Type: string - Apply Scrubbing: manual - Example: index view query ### sentry.dist - Brief: The sentry dist. - Type: string - Apply Scrubbing: never - Example: 1.0 - Aliases: dist ### sentry.domain - Brief: Used as a generic attribute representing the domain depending on the type of span. For instance, this is the collection/table name for database spans, and the server address for HTTP spans. - Type: string - Apply Scrubbing: manual - Example: example.com - Search alias: span.domain ### sentry.dsc.environment - Brief: The environment from the dynamic sampling context. - Type: string - Apply Scrubbing: never - Example: prod ### sentry.dsc.project_id - Brief: The ID of the project where the trace originated (i.e. the project of the SDK that started the trace). Propagated through the dynamic sampling context and set by Relay during ingestion. - Type: string - Apply Scrubbing: never - Example: 12345 ### sentry.dsc.public_key - Brief: The public key from the dynamic sampling context. - Type: string - Apply Scrubbing: manual - Example: c51734c603c4430eb57cb0a5728a479d ### sentry.dsc.release - Brief: The release identifier from the dynamic sampling context. - Type: string - Apply Scrubbing: never - Example: frontend@e8211be71b214afab5b85de4b4c54be3714952bb ### sentry.dsc.sample_rate - Brief: The sample rate from the dynamic sampling context. - Type: string - Apply Scrubbing: never - Example: 1.0 ### sentry.dsc.sampled - Brief: Whether the event was sampled according to the dynamic sampling context. - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.dsc.trace_id - Brief: The trace ID from the dynamic sampling context. - Type: string - Apply Scrubbing: never - Example: 047372980460430cbc78d9779df33a46 ### sentry.dsc.transaction - Brief: The transaction name from the dynamic sampling context. - Type: string - Apply Scrubbing: never - Example: /issues/errors-outages/ ### sentry.environment - Brief: The sentry environment. - Type: string - Apply Scrubbing: never - Example: production - Aliases: environment - Search alias: environment ### sentry.event.serialized_breadcrumbs - Brief: JSON-serialized `breadcrumbs` property from a Sentry event. - Type: string - Apply Scrubbing: never ### sentry.event.serialized_contexts - Brief: JSON-serialized `contexts` property from a Sentry event. - Type: string - Apply Scrubbing: never ### sentry.event.serialized_extra - Brief: JSON-serialized `extra` property from a Sentry event. - Type: string - Apply Scrubbing: never ### sentry.event.serialized_meta - Brief: JSON-serialized `_meta` for the `sentry.event.serialized_*` properties from a Sentry event. - Type: string - Apply Scrubbing: never ### sentry.exclusive_time - Brief: The exclusive time duration of the span in milliseconds. - Type: double - Apply Scrubbing: manual - Example: 1234 ### sentry.frames.frozen - Brief: The number of frozen frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 3 - Aliases: app.vitals.frames.frozen.count, frames.frozen - Deprecated: yes (use app.vitals.frames.frozen.count) ### sentry.frames.slow - Brief: The number of slow frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 1 - Aliases: app.vitals.frames.slow.count, frames.slow - Deprecated: yes (use app.vitals.frames.slow.count) ### sentry.frames.total - Brief: The number of total frames rendered during the lifetime of the span. - Type: integer - Apply Scrubbing: manual - Example: 60 - Aliases: app.vitals.frames.total.count, frames.total - Deprecated: yes (use app.vitals.frames.total.count) ### sentry.graphql.operation - Brief: Indicates the type of graphql operation, emitted by the Javascript SDK. - Type: string - Apply Scrubbing: manual - Example: getUserById ### sentry.group - Brief: Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end. - Type: string - Apply Scrubbing: never - Search alias: span.group ### sentry.http.prefetch - Brief: If an http request was a prefetch request. - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.idle_span_finish_reason - Brief: The reason why an idle span ended early. - Type: string - Apply Scrubbing: never - Example: idleTimeout ### sentry.is_localhost - Brief: Indicates whether a telemetry item was sent on a host, device or browser on a localhost URL or IP address. - Type: boolean - Apply Scrubbing: manual - Examples: - true - false - Additional context: - This attribute is used for the Sentry "Filter telemetry from localhost" inbound filter feature. - SDKs must set this attribute on every span, as well as every other telemetry item supporting attribuztes. ### sentry.is_remote - Brief: Indicates whether a span's parent is remote. - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.kind - Brief: Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name. - Type: string - Apply Scrubbing: manual - Examples: - client - server - producer - consumer - internal - Aliases: otel.kind - Search alias: span.kind - Additional context: - Valid attribute values are: "client", "server", "producer", "consumer" and "internal" ### sentry.link.type - Brief: Set on a span link. Describes the relationship between the span and the linked span. - Type: string - Apply Scrubbing: manual - Examples: - previous_trace - cache_origin - message_origin - server_request - Search alias: link.type - Additional context: - This attribute is exclusively set on span links. - Sentry instrumentation setting span links, sets it to describe the relationship between the span and the linked span. - Add each new link type to `enum_values`, with a brief that says what the linked span is. ### sentry.main_thread - Brief: Whether the span or event occurred on the main thread. Computed by Relay and should not be set by SDKs. - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.message.parameter. - Brief: A parameter used in the message template. can either be the number that represent the parameter's position in the template string (sentry.message.parameter.0, sentry.message.parameter.1, etc) or the parameter's name (sentry.message.parameter.item_id, sentry.message.parameter.user_id, etc) - Type: string - Apply Scrubbing: auto - Example: sentry.message.parameter.0='123' ### sentry.message.template - Brief: The parameterized template string. - Type: string - Apply Scrubbing: manual - Example: Hello, {name}! ### sentry.metric.source - Brief: The provenance of a metric. For example, this can be set to indicate if a metric was generated by Relay from a span. - Type: string - Apply Scrubbing: never - Example: span ### sentry.mobile - Brief: Whether the application is using a mobile SDK. Computed by Relay and should not be set by SDKs. - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.module. - Brief: A module that was loaded in the process. The key is the name of the module. - Type: string - Apply Scrubbing: manual - Example: sentry.module.brianium/paratest='v7.7.0' - Has dynamic suffix: yes ### sentry.nextjs.ssr.function.route - Brief: A parameterized route for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions when the file location of the function is known. - Type: string - Apply Scrubbing: never - Example: /posts/[id]/layout ### sentry.nextjs.ssr.function.type - Brief: A descriptor for a for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions. - Type: string - Apply Scrubbing: never - Example: generateMetadata ### sentry.normalized_db_query - Brief: The normalized version of `db.query.text`. - Type: string - Apply Scrubbing: manual - Example: SELECT .. FROM sentry_project WHERE (project_id = %s) ### sentry.normalized_db_query.hash - Brief: The hash of `sentry.normalized_db_query`. - Type: string - Apply Scrubbing: never ### sentry.normalized_description - Brief: Used as a generic attribute representing the normalized `sentry.description`. This refers to the legacy use case of `sentry.description` where it holds relevant data depending on the type of span (e.g. database query, resource url, http request description, etc). - Type: string - Apply Scrubbing: auto - Example: SELECT .. FROM sentry_project WHERE (project_id = %s) ### sentry.observed_timestamp_nanos - Brief: The timestamp at which an envelope was received by Relay, in nanoseconds. - Type: string - Apply Scrubbing: never - Example: 1544712660300000000 ### sentry.op - Brief: The operation of a span. - Type: string - Apply Scrubbing: never - Example: http.client - Search alias: span.op ### sentry.origin - Brief: The origin of the instrumentation (e.g. span, log, etc.) - Type: string - Apply Scrubbing: never - Example: auto.http.otel.fastify - Search alias: origin ### sentry.pageload.span_id - Brief: The id of the pageload span, set by web vital spans and metrics - Type: string - Apply Scrubbing: manual - Example: bf2c8d3df84524de ### sentry.platform - Brief: The sdk platform that generated the event. - Type: string - Apply Scrubbing: never - Example: php - Search alias: platform ### sentry.profile_id - Brief: The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling. - Type: string - Apply Scrubbing: never - Example: 123e4567e89b12d3a456426614174000 - Aliases: profile_id - Search alias: profile.id ### sentry.profiler_id - Brief: The id of the currently running profiler (continuous profiling) - Type: string - Apply Scrubbing: never - Example: 18779b64dd35d1a538e7ce2dd2d3fad3 - Search alias: profiler.id ### sentry.relay.ingress - Brief: How an item (span, log, &c.) entered Relay. - Type: string - Apply Scrubbing: manual - Example: OTEL ### sentry.relay.pipeline - Brief: An internal descriptor of which processing pipeline an item went through in Relay. - Type: string - Apply Scrubbing: manual - Example: span v2 ### sentry.release - Brief: The sentry release. - Type: string - Apply Scrubbing: never - Example: 7.0.0 - Aliases: service.version, release - Search alias: release ### sentry.replay_id - Brief: The id of the sentry replay. - Type: string - Apply Scrubbing: never - Example: 123e4567e89b12d3a456426614174000 - Aliases: replay_id, replayId - Search alias: replay.id - Deprecated search aliases: replay_id ### sentry.replay_is_buffering - Brief: A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate). - Type: boolean - Apply Scrubbing: never - Example: true ### sentry.report_event - Brief: (Deprecated) The event that caused the SDK to report CLS or LCP (pagehide or navigation) - Type: string - Apply Scrubbing: manual - Example: pagehide - Deprecated: yes (The report event moved to browser.web_vital.lcp.report_event and browser.web_vital.cls.report_event, which are themselves deprecated without a replacement. No backfill required.) ### sentry.sdk.integrations - Brief: A list of names identifying enabled integrations. The list shouldhave all enabled integrations, including default integrations. Defaultintegrations are included because different SDK releases may contain differentdefault integrations. - Type: string[] - Apply Scrubbing: never - Example: ["InboundFilters","FunctionToString","BrowserApiErrors","Breadcrumbs"] ### sentry.sdk.name - Brief: The sentry sdk name. - Type: string - Apply Scrubbing: never - Example: @sentry/react - Search alias: sdk.name ### sentry.sdk.version - Brief: The sentry sdk version. - Type: string - Apply Scrubbing: never - Example: 7.0.0 - Search alias: sdk.version ### sentry.segment_id - Brief: The segment ID of a span - Type: string - Apply Scrubbing: never - Example: 051581bf3cb55c13 - Aliases: sentry.segment.id - Search alias: transaction.span_id - Deprecated: yes (use sentry.segment.id) ### sentry.segment.id - Brief: The segment ID of a span - Type: string - Apply Scrubbing: never - Example: 051581bf3cb55c13 - Aliases: sentry.segment_id ### sentry.segment.name - Brief: The segment name of a span - Type: string - Apply Scrubbing: manual - Example: GET /user - Aliases: sentry.transaction, transaction - Search alias: transaction ### sentry.segment.name.source - Brief: The source of the segment span name. Should only be set on segment spans. - Type: string - Apply Scrubbing: manual - Examples: - route - component - view - task - custom - url - Additional context: - This attribute is the replacement for `transaction_info.source` on transactions. - Should we bring back clustering for segment names (like we do for transaction names), this attribute will be used to determine if a segment name should be clustered. ### sentry.server_sample_rate - Brief: Rate at which a span was sampled in Relay. - Type: double - Apply Scrubbing: never - Example: 0.5 - Search alias: server_sample_rate ### sentry.source - Brief: The source of a span, also referred to as transaction source. - Type: string - Apply Scrubbing: never - Example: route - Deprecated: yes (This attribute is superseded by sentry.segment.name.source, which only needs to be set on segment spans.) ### sentry.span.source - Brief: The source of a span, also referred to as transaction source. - Type: string - Apply Scrubbing: never - Example: route - Deprecated: yes (This attribute is superseded by sentry.segment.name.source, which only needs to be set on segment spans.) ### sentry.status - Brief: The span's status (either "ok" or "error"). Older SDKs may set this to a more specific error, but this behaviour is deprecated. - Type: string - Apply Scrubbing: never - Example: ok - Search alias: span.status ### sentry.status_code - Brief: The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients. - Type: integer - Apply Scrubbing: manual - Example: 200 - Search alias: span.status_code ### sentry.status.message - Brief: The from OTLP extracted status message. - Type: string - Apply Scrubbing: manual - Example: foobar - Search alias: span.status.message ### sentry.sveltekit.navigation.from - Brief: the navigation origin (sveltekit router) - Type: string - Apply Scrubbing: auto - Example: /home - Aliases: navigation.origin, router.navigation.origin - Deprecated: yes (use router.navigation.origin) ### sentry.sveltekit.navigation.to - Brief: the navigation destination - Type: string - Apply Scrubbing: auto - Example: /users/:id - Deprecated: yes (the navigation destination is already covered by url.* attributes) ### sentry.sveltekit.navigation.type - Brief: The type of navigation event emitted from the sveltekit client router - Type: string - Apply Scrubbing: manual - Example: link - Aliases: navigation.type, router.navigation.type - Deprecated: yes (use router.navigation.type) ### sentry.thread.id - Brief: Current "managed" thread ID. - Type: integer - Apply Scrubbing: manual - Example: 56 - Search alias: thread.id - Deprecated: yes (use thread.id) ### sentry.timestamp.sequence - Brief: A sequencing counter for deterministic ordering of logs or metrics when timestamps share the same integer millisecond. Starts at 0 on SDK initialization, increments by 1 for each captured item, and resets to 0 when the integer millisecond of the current item differs from the previous one. - Type: integer - Apply Scrubbing: never - Example: 0 ### sentry.trace_lifecycle - Brief: Indicates the chosen trace lifecycle mode of the SDK (stream or static) - Type: string - Apply Scrubbing: manual - Example: stream - Search alias: trace_lifecycle ### sentry.trace.parent_span_id - Brief: The span id of the span that was active when the log was collected. This should not be set if there was no active span. - Type: string - Apply Scrubbing: never - Example: b0e6f15b45c36b12 - Deprecated: yes ### sentry.trace.status - Brief: The segment's status (either "ok" or "error"). Older SDKs may set this to a more specific error, but this behaviour is deprecated. - Type: string - Apply Scrubbing: never - Example: ok - Search alias: trace.status ### sentry.transaction - Brief: The sentry transaction (segment name). - Type: string - Apply Scrubbing: manual - Example: GET / - Aliases: sentry.segment.name, transaction - Deprecated: yes (use sentry.segment.name) ### sentry.user.email - Brief: User email address. - Type: string - Apply Scrubbing: auto - Aliases: user.email - Search alias: user.email - Deprecated: yes (use user.email) ### sentry.user.geo.city - Brief: Human readable city name. - Type: string - Apply Scrubbing: manual - Aliases: user.geo.city - Search alias: user.geo.city - Deprecated: yes (use user.geo.city) ### sentry.user.geo.country_code - Brief: Two-letter country code (ISO 3166-1 alpha-2). - Type: string - Apply Scrubbing: manual - Aliases: user.geo.country_code - Search alias: user.geo.country_code - Deprecated: yes (use user.geo.country_code) ### sentry.user.geo.region - Brief: Human readable region name or code. - Type: string - Apply Scrubbing: manual - Aliases: user.geo.region - Search alias: user.geo.region - Deprecated: yes (use user.geo.region) ### sentry.user.geo.subdivision - Brief: Human readable subdivision name. - Type: string - Apply Scrubbing: manual - Aliases: user.geo.subdivision - Search alias: user.geo.subdivision - Deprecated: yes (use user.geo.subdivision) ### sentry.user.geo.subregion - Brief: UN M49 subregion code of the user's location, derived from user.geo.country_code. Sub-Saharan Africa and Latin America and the Caribbean are split into their M49 intermediate regions. - Type: string - Apply Scrubbing: manual - Examples: - 155 - 21 - Aliases: user.geo.subregion - Search alias: user.geo.subregion - Deprecated: yes (use user.geo.subregion) ### sentry.user.id - Brief: Unique identifier of the user. - Type: string - Apply Scrubbing: auto - Aliases: user.id - Search alias: user.id - Deprecated: yes (use user.id) ### sentry.user.ip - Brief: The IP address of the user. - Type: string - Apply Scrubbing: auto - Aliases: user.ip_address - Search alias: user.ip - Deprecated: yes (use user.ip_address) ### sentry.user.username - Brief: Short name or login/username of the user. - Type: string - Apply Scrubbing: auto - Aliases: user.name - Search alias: user.username - Deprecated: yes (use user.name) --- ## server ### server.address - Brief: Preferably the server domain name if available without reverse DNS lookup, or an IP address or Unix domain socket name. For compatibility, it may contain what the hostname command returns on UNIX systems, the fully qualified hostname, or another name specified by the user. - Type: string - Apply Scrubbing: manual - Example: example.com - Aliases: address, http.server_name, net.host.name, http.host, server_name, net.peer.name - OpenTelemetry: yes ### server.ext.type - Brief: The request lifecycle extension point where the Hapi extension function runs. - Type: string - Apply Scrubbing: manual - Examples: - onRequest - onPreResponse - Aliases: hapi.ext.type - Deprecated: yes (use hapi.ext.type) ### server.port - Brief: Server port number. - Type: integer - Apply Scrubbing: manual - Example: 1337 - Aliases: net.host.port, port - OpenTelemetry: yes --- ## service ### service.name - Brief: Logical name of the service. - Type: string - Apply Scrubbing: manual - Example: omegastar - OpenTelemetry: yes ### service.version - Brief: The version string of the service API or implementation. The format is not defined by these conventions. - Type: string - Apply Scrubbing: manual - Example: 5.0.0 - Aliases: sentry.release - OpenTelemetry: yes --- ## session ### session.id - Brief: A unique id identifying the active session at the time of setting this attribute - Type: string - Apply Scrubbing: manual - Example: 00112233-4455-6677-8899-aabbccddeeff - OpenTelemetry: yes --- ## starlette ### starlette.middleware_name - Brief: The name of the Starlette middleware. - Type: string - Apply Scrubbing: manual - Example: AuthenticationMiddleware - Aliases: middleware.name - Deprecated: yes (use middleware.name) --- ## starlite ### starlite.middleware_name - Brief: The name of the Starlite middleware. - Type: string - Apply Scrubbing: manual - Examples: - AuthenticationMiddleware - Aliases: middleware.name - Deprecated: yes (use middleware.name) --- ## state ### state.type - Brief: The type of state management library - Type: string - Apply Scrubbing: manual - Example: redux --- ## subprocess ### subprocess.pid - Brief: The process ID of a subprocess. - Type: integer - Apply Scrubbing: manual - Example: 12345 - Aliases: process.pid - Deprecated: yes (use process.pid) --- ## sveltekit ### sveltekit.load.environment - Brief: The runtime environment in which the SvelteKit load function was executed. Known values are `'server'` and `'client'`. - Type: string - Apply Scrubbing: manual - Examples: - server - client - Additional context: - Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry. ### sveltekit.load.node_id - Brief: The path to the SvelteKit load function. - Type: string - Apply Scrubbing: manual - Examples: - src/routes/users/:id/+page.server.ts - Aliases: code.file.path, code.filepath - Additional context: - Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry. ### sveltekit.load.node_type - Brief: The kind of SvelteKit load function that was executed, distinguishing page from layout and universal from server load functions. - Type: string - Apply Scrubbing: manual - Examples: - +page.server - +layout - +layout.server - Additional context: - Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry. ### sveltekit.tracing.original_name - Brief: The original span name as emitted by SvelteKit. - Type: string - Apply Scrubbing: manual - Examples: - sveltekit.handle.root - Additional context: - The Sentry SDK renames SvelteKit-emitted spans to match Sentry's span name semantics, and preserves the name SvelteKit originally set in this attribute. --- ## thread ### thread.id - Brief: Current “managed” thread ID. - Type: integer - Apply Scrubbing: manual - Example: 56 - OpenTelemetry: yes ### thread.name - Brief: Current thread name. - Type: string - Apply Scrubbing: manual - Example: main - OpenTelemetry: yes --- ## timber ### timber.tag - Brief: The log tag provided by the timber logging framework. - Type: string - Apply Scrubbing: manual - Example: MyTag --- ## tls ### tls.protocol.name - Brief: Normalized lowercase protocol name parsed from the negotiated SSL/TLS protocol version - Type: string - Apply Scrubbing: manual - Examples: - tls - ssl - OpenTelemetry: yes - Additional context: - Extract the protocol name from the negotiated SSL/TLS version string and normalize it to lowercase, without the version. For example, TLSv1.3 becomes tls and SSLv3 becomes ssl. ### tls.protocol.version - Brief: Numeric part of the version parsed from the negotiated SSL/TLS protocol version - Type: string - Apply Scrubbing: manual - Examples: - 1.2 - 1.3 - 3 - OpenTelemetry: yes - Additional context: - Extract only the numeric version from the negotiated SSL/TLS version string. For example, TLSv1.3 becomes 1.3 and SSLv3 becomes 3. Do not include the protocol name or the v prefix. --- ## trpc ### trpc.procedure_path - Brief: The path of the tRPC procedure being called - Type: string - Apply Scrubbing: manual - Example: user.getById ### trpc.procedure_type - Brief: The type of the tRPC procedure - Type: string - Apply Scrubbing: manual - Example: query --- ## ttfb ### ttfb.requestTime - Brief: The time it takes for the server to process the initial request and send the first byte of a response to the user's browser - Type: double - Apply Scrubbing: manual - Example: 1554.5814 - Aliases: browser.web_vital.ttfb.request_time - Deprecated: yes (use browser.web_vital.ttfb.request_time) --- ## turbo_module ### turbo_module.arch - Brief: The React Native architecture the call was observed on. `new` for a TurboModule resolved through `TurboModuleRegistry`, `legacy` for a module reached over the Old Architecture bridge. Only applies to React Native. - Type: string - Apply Scrubbing: manual - Examples: - new - legacy - Aliases: react_native.architecture - Deprecated: yes (use react_native.architecture) ### turbo_module.method - Brief: The name of the native module method that was called. Only applies to React Native. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - getUniqueId - Aliases: react_native.module.method - Deprecated: yes (use react_native.module.method) ### turbo_module.name - Brief: The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key. Only applies to React Native. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - RNDeviceInfo - Aliases: react_native.module.name - Deprecated: yes (use react_native.module.name) ### turbo_module.top_module - Brief: The native module and method that accounted for the most total duration during the lifetime of the span. Only applies to React Native. - Type: string - Apply Scrubbing: manual (Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable) - Examples: - RNDeviceInfo.getUniqueId - Aliases: react_native.module.top.name - Deprecated: yes (use react_native.module.top.name) ### turbo_module.top_module_duration_ms - Brief: The total duration attributed to the top native module method, in milliseconds. Only applies to React Native. - Type: double - Apply Scrubbing: manual - Examples: - 87.25 - Aliases: react_native.module.top.duration - Deprecated: yes (use react_native.module.top.duration) ### turbo_module.total_call_count - Brief: The number of native module calls observed during the lifetime of the span. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 42 - Aliases: react_native.module.call.count, turbo_modules.total_call_count - Deprecated: yes (use react_native.module.call.count) ### turbo_module.total_duration_ms - Brief: The combined duration of all native module calls observed during the lifetime of the span, in milliseconds. Only applies to React Native. - Type: double - Apply Scrubbing: manual - Examples: - 128.45 - Aliases: react_native.module.duration.total, turbo_modules.total_duration_ms - Deprecated: yes (use react_native.module.duration.total) ### turbo_module.total_error_count - Brief: The number of native module calls that failed during the lifetime of the span. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 2 - Aliases: react_native.module.error.count, turbo_modules.total_error_count - Deprecated: yes (use react_native.module.error.count) ### turbo_module.unique_methods - Brief: The number of distinct native module and method pairs called during the lifetime of the span. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 7 - Aliases: react_native.module.call.distinct_count, turbo_modules.unique_methods - Deprecated: yes (use react_native.module.call.distinct_count) --- ## turbo_modules ### turbo_modules.total_call_count - Brief: The number of native module calls in the flushed call aggregate. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 42 - Aliases: react_native.module.call.count, turbo_module.total_call_count - Deprecated: yes (use react_native.module.call.count) ### turbo_modules.total_duration_ms - Brief: The combined duration of all native module calls in the flushed call aggregate, in milliseconds. Only applies to React Native. - Type: double - Apply Scrubbing: manual - Examples: - 128.45 - Aliases: react_native.module.duration.total, turbo_module.total_duration_ms - Deprecated: yes (use react_native.module.duration.total) ### turbo_modules.total_error_count - Brief: The number of failed native module calls in the flushed call aggregate. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 2 - Aliases: react_native.module.error.count, turbo_module.total_error_count - Deprecated: yes (use react_native.module.error.count) ### turbo_modules.unique_methods - Brief: The number of distinct native module and method pairs in the flushed call aggregate. Only applies to React Native. - Type: integer - Apply Scrubbing: manual - Examples: - 7 - Aliases: react_native.module.call.distinct_count, turbo_module.unique_methods - Deprecated: yes (use react_native.module.call.distinct_count) --- ## ui ### ui.component_name - Brief: The name of the associated component. - Type: string - Apply Scrubbing: manual - Example: HomeButton ### ui.contributes_to_ttfd - Brief: Whether the span execution contributed to the TTFD (time to fully drawn) metric. - Type: boolean - Apply Scrubbing: manual - Example: true ### ui.contributes_to_ttid - Brief: Whether the span execution contributed to the TTID (time to initial display) metric. - Type: boolean - Apply Scrubbing: manual - Example: true ### ui.element.height - Brief: The height of the UI element (for Html in pixels) - Type: integer - Apply Scrubbing: manual - Example: 256 ### ui.element.id - Brief: The id of the UI element - Type: string - Apply Scrubbing: manual - Example: btn-login ### ui.element.identifier - Brief: The identifier used to measure the UI element timing - Type: string - Apply Scrubbing: manual - Example: heroImage ### ui.element.load_time - Brief: The loading time of a UI element (from time origin to finished loading) - Type: double - Apply Scrubbing: manual - Example: 998.2234 ### ui.element.paint_type - Brief: The type of element paint. Can either be 'image-paint' or 'text-paint' - Type: string - Apply Scrubbing: manual - Example: image-paint ### ui.element.render_time - Brief: The rendering time of the UI element (from time origin to finished rendering) - Type: double - Apply Scrubbing: manual - Example: 1023.1124 ### ui.element.type - Brief: type of the UI element - Type: string - Apply Scrubbing: manual - Example: img ### ui.element.url - Brief: The URL of the UI element (e.g. an img src) - Type: string - Apply Scrubbing: auto - Example: https://assets.myapp.com/hero.png ### ui.element.width - Brief: The width of the UI element (for HTML in pixels) - Type: integer - Apply Scrubbing: manual - Example: 512 --- ## url ### url.domain - Brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. - Type: string - Apply Scrubbing: manual - Example: example.com - OpenTelemetry: yes ### url.fragment - Brief: The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does. - Type: string - Apply Scrubbing: auto - Example: details - OpenTelemetry: yes ### url.full - Brief: The URL of the resource that was fetched. - Type: string - Apply Scrubbing: auto - Example: https://example.com/test?foo=bar#buzz - Aliases: http.url, url, aws.request.url, messaging.url - OpenTelemetry: yes ### url.path - Brief: The URI path component. - Type: string - Apply Scrubbing: auto - Example: /foo - OpenTelemetry: yes ### url.path.parameter. - Brief: Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router. - Type: string - Apply Scrubbing: auto - Example: url.path.parameter.id='123' - Aliases: params., url.path.params. - Has dynamic suffix: yes ### url.path.params. - Brief: Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router. - Type: string - Apply Scrubbing: auto - Examples: - url.path.params.id='123' - Aliases: url.path.parameter., params. - Has dynamic suffix: yes - Deprecated: yes (use url.path.parameter.) ### url.port - Brief: Server port number. - Type: integer - Apply Scrubbing: manual - Example: 1337 - OpenTelemetry: yes ### url.query - Brief: The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does. - Type: string - Apply Scrubbing: auto (Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.) - Example: foo=bar&bar=baz - OpenTelemetry: yes ### url.same_origin - Brief: Indicates that a URL has the same origin as the current page's origin in the browser. - Type: boolean - Apply Scrubbing: manual - Example: true - Aliases: http.request.same_origin - Deprecated: yes (use http.request.same_origin) ### url.scheme - Brief: The URI scheme component identifying the used protocol. - Type: string - Apply Scrubbing: manual - Example: https - Aliases: http.scheme - OpenTelemetry: yes ### url.template - Brief: The low-cardinality template of an absolute URL path reference. - Type: string - Apply Scrubbing: manual - Examples: - /users/{id} - /users/:id - /about - OpenTelemetry: yes - Additional context: - This attribute should primarily be set by client-side routing instrumentation, or `http.client` spans (if applicable). - Use `http.route` for server-side instrumentation that captures the framework route of an incoming request. --- ## user ### user.email - Brief: User email address. - Type: string - Apply Scrubbing: auto - Example: test@example.com - Aliases: sentry.user.email - OpenTelemetry: yes ### user.full_name - Brief: User's full name. - Type: string - Apply Scrubbing: auto - Example: John Smith - OpenTelemetry: yes ### user.geo.city - Brief: Human readable city name. - Type: string - Apply Scrubbing: manual - Example: Toronto - Aliases: sentry.user.geo.city ### user.geo.country_code - Brief: Two-letter country code (ISO 3166-1 alpha-2). - Type: string - Apply Scrubbing: manual - Example: CA - Aliases: sentry.user.geo.country_code ### user.geo.region - Brief: Human readable region name or code. - Type: string - Apply Scrubbing: manual - Example: Canada - Aliases: sentry.user.geo.region ### user.geo.subdivision - Brief: Human readable subdivision name. - Type: string - Apply Scrubbing: manual - Example: Ontario - Aliases: sentry.user.geo.subdivision ### user.geo.subregion - Brief: UN M49 subregion code of the user's location, derived from user.geo.country_code. Sub-Saharan Africa and Latin America and the Caribbean are split into their M49 intermediate regions. - Type: string - Apply Scrubbing: manual - Examples: - 155 - 21 - Aliases: sentry.user.geo.subregion ### user.hash - Brief: Unique user hash to correlate information for a user in anonymized form. - Type: string - Apply Scrubbing: auto - Example: 8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d - OpenTelemetry: yes ### user.id - Brief: Unique identifier of the user. - Type: string - Apply Scrubbing: auto - Example: S-1-5-21-202424912787-2692429404-2351956786-1000 - Aliases: sentry.user.id - OpenTelemetry: yes ### user.ip_address - Brief: The IP address of the user. - Type: string - Apply Scrubbing: auto - Example: 192.168.1.1 - Aliases: sentry.user.ip ### user.name - Brief: Short name or login/username of the user. - Type: string - Apply Scrubbing: auto - Example: j.smith - Aliases: sentry.user.username - OpenTelemetry: yes ### user.roles - Brief: Array of user roles at the time of the event. - Type: string[] - Apply Scrubbing: auto - Example: ["admin","editor"] - OpenTelemetry: yes --- ## user_agent ### user_agent.original - Brief: Value of the HTTP User-Agent header sent by the client. - Type: string - Apply Scrubbing: manual - Example: Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1 - Aliases: http.user_agent - OpenTelemetry: yes --- ## vercel ### vercel.ai.settings.context. - Brief: A runtime context property of a Vercel AI SDK call that the app included in telemetry through `telemetry.includeRuntimeContext`, with being the top-level context property name. - Type: string - Apply Scrubbing: auto (Runtime context is user-defined and can contain user data) - Examples: - vercel.ai.settings.context.tenantId='acme' - Has dynamic suffix: yes - Additional context: - Set on `gen_ai` spans for `invoke_agent`, `generate_content`, `execute_tool`, `embeddings`, `rerank` and `decide` operations. Spans for model calls and tool calls inside an operation copy the attributes of that operation. - SDKs MUST only record the properties that the app included through `telemetry.includeRuntimeContext`. Some Vercel AI SDK versions expose the full runtime context to instrumentation. If an SDK cannot confirm that the Vercel AI SDK filtered the runtime context, it MUST NOT record it. - The Vercel AI SDK's own OpenTelemetry integration (`@ai-sdk/otel`) emits the same data as `ai.settings.context.`. - Runtime context values can have any type. SDKs MUST convert them to strings, and SHOULD serialize objects and arrays as JSON. - This attribute is open-ended on purpose. The Vercel AI SDK does not define the runtime context keys. ### vercel.ai.telemetry.metadata. - Brief: Metadata passed to a Vercel AI SDK call through `experimental_telemetry.metadata`, with being the metadata key name. - Type: string - Apply Scrubbing: auto (Metadata is user-defined and can contain user data) - Examples: - vercel.ai.telemetry.metadata.tenantId='acme' - Has dynamic suffix: yes - Additional context: - Set on `gen_ai` spans for `invoke_agent`, `generate_content` and `embeddings` operations. Not set on `execute_tool` spans. - The Vercel AI SDK's own OpenTelemetry spans emit the same data as `ai.telemetry.metadata.`. - The Vercel AI SDK also allows numbers, booleans and arrays as metadata values. SDKs MUST convert these values to strings. - This attribute is open-ended on purpose. The Vercel AI SDK does not define the metadata keys. If Vercel defines a stricter spec for this metadata, consider moving it into `gen_ai.*` attributes. ### vercel.ai.tool_call.context. - Brief: A tool context property of a Vercel AI SDK tool call that the app included in telemetry through `telemetry.includeToolsContext`, with being the top-level context property name. - Type: string - Apply Scrubbing: auto (Tool context is user-defined and can contain user data) - Examples: - vercel.ai.tool_call.context.units='metric' - Has dynamic suffix: yes - Additional context: - Set on `gen_ai` spans for `execute_tool` operations. - SDKs MUST only record the properties that the app included for the tool through `telemetry.includeToolsContext`. Some Vercel AI SDK versions expose the full tool context to instrumentation. If an SDK cannot confirm that the Vercel AI SDK filtered the tool context, it MUST NOT record it. - The Vercel AI SDK's own OpenTelemetry integration (`@ai-sdk/otel`) does not record tool context. - Tool context values can have any type. SDKs MUST convert them to strings, and SHOULD serialize objects and arrays as JSON. - This attribute is open-ended on purpose. The Vercel AI SDK does not define the tool context keys. ### vercel.branch - Brief: Git branch name for Vercel project - Type: string - Apply Scrubbing: manual - Example: main ### vercel.build_id - Brief: Identifier for the Vercel build (only present on build logs) - Type: string - Apply Scrubbing: manual - Example: bld_cotnkcr76 ### vercel.deployment_id - Brief: Identifier for the Vercel deployment - Type: string - Apply Scrubbing: manual - Example: dpl_233NRGRjVZX1caZrXWtz5g1TAksD ### vercel.destination - Brief: Origin of the external content in Vercel (only on external logs) - Type: string - Apply Scrubbing: manual - Example: https://vitals.vercel-insights.com/v1 ### vercel.edge_type - Brief: Type of edge runtime in Vercel - Type: string - Apply Scrubbing: manual - Example: edge-function ### vercel.entrypoint - Brief: Entrypoint for the request in Vercel - Type: string - Apply Scrubbing: manual - Example: api/index.js ### vercel.execution_region - Brief: Region where the request is executed - Type: string - Apply Scrubbing: manual - Example: sfo1 ### vercel.id - Brief: Unique identifier for the log entry in Vercel - Type: string - Apply Scrubbing: manual - Example: 1573817187330377061717300000 ### vercel.ja3_digest - Brief: JA3 fingerprint digest of Vercel request - Type: string - Apply Scrubbing: auto - Example: 769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0 ### vercel.ja4_digest - Brief: JA4 fingerprint digest - Type: string - Apply Scrubbing: auto - Example: t13d1516h2_8daaf6152771_02713d6af862 ### vercel.log_type - Brief: Vercel log output type - Type: string - Apply Scrubbing: manual - Example: stdout ### vercel.path - Brief: Function or dynamic path of the request in Vercel. - Type: string - Apply Scrubbing: manual - Example: /dynamic/[route].json ### vercel.project_id - Brief: Identifier for the Vercel project - Type: string - Apply Scrubbing: manual - Example: gdufoJxB6b9b1fEqr1jUtFkyavUU ### vercel.project_name - Brief: Name of the Vercel project - Type: string - Apply Scrubbing: manual - Example: my-app ### vercel.proxy.cache_id - Brief: Original request ID when request is served from cache - Type: string - Apply Scrubbing: manual - Example: pdx1::v8g4b-1744143786684-93dafbc0f70d ### vercel.proxy.client_ip - Brief: Client IP address - Type: string - Apply Scrubbing: auto - Example: 120.75.16.101 ### vercel.proxy.host - Brief: Hostname of the request - Type: string - Apply Scrubbing: manual - Example: test.vercel.app ### vercel.proxy.lambda_region - Brief: Region where lambda function executed - Type: string - Apply Scrubbing: manual - Example: sfo1 ### vercel.proxy.method - Brief: HTTP method of the request - Type: string - Apply Scrubbing: manual - Example: GET ### vercel.proxy.path - Brief: Request path with query parameters - Type: string - Apply Scrubbing: auto - Example: /dynamic/some-value.json?route=some-value ### vercel.proxy.path_type - Brief: How the request was served based on its path and project configuration - Type: string - Apply Scrubbing: manual - Example: func ### vercel.proxy.path_type_variant - Brief: Variant of the path type - Type: string - Apply Scrubbing: manual - Example: api ### vercel.proxy.referer - Brief: Referer of the request - Type: string - Apply Scrubbing: auto - Example: *.vercel.app ### vercel.proxy.region - Brief: Region where the request is processed - Type: string - Apply Scrubbing: manual - Example: sfo1 ### vercel.proxy.response_byte_size - Brief: Size of the response in bytes - Type: integer - Apply Scrubbing: manual - Example: 1024 ### vercel.proxy.scheme - Brief: Protocol of the request - Type: string - Apply Scrubbing: manual - Example: https ### vercel.proxy.status_code - Brief: HTTP status code of the proxy request - Type: integer - Apply Scrubbing: manual - Example: 200 ### vercel.proxy.timestamp - Brief: Unix timestamp when the proxy request was made - Type: integer - Apply Scrubbing: manual - Example: 1573817250172 ### vercel.proxy.user_agent - Brief: User agent strings of the request - Type: string[] - Apply Scrubbing: manual - Example: ["Mozilla/5.0..."] ### vercel.proxy.vercel_cache - Brief: Cache status sent to the browser - Type: string - Apply Scrubbing: manual - Example: REVALIDATED ### vercel.proxy.vercel_id - Brief: Vercel-specific identifier - Type: string - Apply Scrubbing: manual - Example: sfo1::abc123 ### vercel.proxy.waf_action - Brief: Action taken by firewall rules - Type: string - Apply Scrubbing: manual - Example: deny ### vercel.proxy.waf_rule_id - Brief: ID of the firewall rule that matched - Type: string - Apply Scrubbing: manual - Example: rule_gAHz8jtSB1Gy ### vercel.request_id - Brief: Identifier of the Vercel request - Type: string - Apply Scrubbing: manual - Example: 643af4e3-975a-4cc7-9e7a-1eda11539d90 ### vercel.source - Brief: Origin of the Vercel log (build, edge, lambda, static, external, or firewall) - Type: string - Apply Scrubbing: manual - Example: build ### vercel.status_code - Brief: HTTP status code of the request (-1 means no response returned and the lambda crashed) - Type: integer - Apply Scrubbing: manual - Example: 200