diff --git a/docs/src/components/AttributeCard.astro b/docs/src/components/AttributeCard.astro index d8b62923..125f1241 100644 --- a/docs/src/components/AttributeCard.astro +++ b/docs/src/components/AttributeCard.astro @@ -114,6 +114,30 @@ const rawJson = JSON.stringify(attribute, null, 2); )} + {attribute.changelog && attribute.changelog.length > 0 && ( + + + + + + Changelog + + + {attribute.changelog.map((entry) => ( + + {entry.version === 'next' ? 'next' : `v${entry.version}`} + {entry.prs && entry.prs.length > 0 && entry.prs.map((pr) => ( + #{pr} + ))} + {entry.description && ( + {entry.description} + )} + + ))} + + + )} + diff --git a/docs/src/content.config.ts b/docs/src/content.config.ts index 6ec18845..7e14f3cb 100644 --- a/docs/src/content.config.ts +++ b/docs/src/content.config.ts @@ -24,6 +24,15 @@ const attributeSchema = z.object({ .optional(), alias: z.array(z.string()).optional(), sdks: z.array(z.string()).optional(), + changelog: z + .array( + z.object({ + version: z.string(), + prs: z.array(z.number().int().positive()).optional(), + description: z.string().optional(), + }), + ) + .optional(), }); // Schema matching schemas/name.schema.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index fd0e8754..22605c93 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -8943,6 +8943,15 @@ export interface DeprecationInfo { reason?: string; } +export interface ChangelogEntry { + /** The sentry-conventions release version */ + version: string; + /** GitHub PR numbers */ + prs?: number[]; + /** Optional description of what changed */ + description?: string; +} + export interface AttributeMetadata { /** A description of the attribute */ brief: string; @@ -8962,6 +8971,8 @@ export interface AttributeMetadata { aliases?: AttributeName[]; /** If an attribute is SDK specific, list the SDKs that use this attribute */ sdks?: string[]; + /** Changelog entries tracking how this attribute has changed across versions */ + changelog?: ChangelogEntry[]; } export const ATTRIBUTE_TYPE: Record = { @@ -9835,6 +9846,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['Citation 1', 'Citation 2'], deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_COMPLETION_TOKENS_USED]: { brief: 'The number of tokens used to respond to the message.', @@ -9849,6 +9864,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_USAGE_OUTPUT_TOKENS, GEN_AI_USAGE_COMPLETION_TOKENS], sdks: ['python'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [57, 61] }, { version: '0.0.0' }], }, [AI_DOCUMENTS]: { brief: 'Documents or content chunks used as context for the AI model.', @@ -9859,6 +9875,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['document1.txt', 'document2.pdf'], deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_FINISH_REASON]: { brief: 'The reason why the model stopped generating.', @@ -9872,6 +9892,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.response.finish_reason', }, aliases: [GEN_AI_RESPONSE_FINISH_REASONS], + changelog: [{ version: '0.1.0', prs: [55, 57, 61, 108, 127] }], }, [AI_FREQUENCY_PENALTY]: { brief: @@ -9886,6 +9907,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.frequency_penalty', }, aliases: [GEN_AI_REQUEST_FREQUENCY_PENALTY], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [55, 57, 61, 108] }, + ], }, [AI_FUNCTION_CALL]: { brief: @@ -9900,6 +9925,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.tool.name', }, aliases: [GEN_AI_TOOL_NAME], + changelog: [{ version: '0.1.0', prs: [55, 57, 61, 108] }], }, [AI_GENERATION_ID]: { brief: 'Unique identifier for the completion.', @@ -9913,6 +9939,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.response.id', }, aliases: [GEN_AI_RESPONSE_ID], + changelog: [{ version: '0.1.0', prs: [55, 57, 61, 108, 127] }], }, [AI_INPUT_MESSAGES]: { brief: 'The input messages sent to the model', @@ -9927,6 +9954,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_REQUEST_MESSAGES], sdks: ['python'], + changelog: [{ version: '0.1.0', prs: [65, 119] }, { version: '0.0.0' }], }, [AI_IS_SEARCH_REQUIRED]: { brief: 'Boolean indicating if the model needs to perform a search.', @@ -9937,6 +9965,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: false, deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_METADATA]: { brief: 'Extra metadata passed to an AI pipeline step.', @@ -9947,6 +9979,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '{"user_id": 123, "session_id": "abc123"}', deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55, 127] }, + ], }, [AI_MODEL_ID]: { brief: 'The vendor-specific ID of the model used.', @@ -9961,6 +9997,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_RESPONSE_MODEL], sdks: ['python'], + changelog: [{ version: '0.1.0', prs: [57, 61, 127] }, { version: '0.0.0' }], }, [AI_MODEL_PROVIDER]: { brief: 'The provider of the model.', @@ -9974,6 +10011,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.provider.name', }, aliases: [GEN_AI_PROVIDER_NAME, GEN_AI_SYSTEM], + changelog: [ + { version: '0.4.0', prs: [253] }, + { version: '0.1.0', prs: [57, 61, 108, 127] }, + ], }, [AI_PIPELINE_NAME]: { brief: 'The name of the AI pipeline.', @@ -9987,6 +10028,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.pipeline.name', }, aliases: [GEN_AI_PIPELINE_NAME], + changelog: [{ version: '0.1.0', prs: [53, 76, 108, 127] }], }, [AI_PREAMBLE]: { brief: @@ -10001,6 +10043,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.system_instructions', }, aliases: [GEN_AI_SYSTEM_INSTRUCTIONS], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_PRESENCE_PENALTY]: { brief: @@ -10015,6 +10061,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.presence_penalty', }, aliases: [GEN_AI_REQUEST_PRESENCE_PENALTY], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [55, 57, 61, 108] }, + ], }, [AI_PROMPT_TOKENS_USED]: { brief: 'The number of tokens used to process just the prompt.', @@ -10029,6 +10079,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_USAGE_PROMPT_TOKENS, GEN_AI_USAGE_INPUT_TOKENS], sdks: ['python'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [57, 61] }, { version: '0.0.0' }], }, [AI_RAW_PROMPTING]: { brief: 'When enabled, the user’s prompt will be sent to the model without any pre-processing.', @@ -10039,6 +10090,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: true, deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_RESPONSES]: { brief: 'The response messages sent back by the AI model.', @@ -10052,6 +10107,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.response.text', }, sdks: ['python'], + changelog: [{ version: '0.1.0', prs: [65, 127] }, { version: '0.0.0' }], }, [AI_RESPONSE_FORMAT]: { brief: 'For an AI model call, the format of the response', @@ -10062,6 +10118,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'json_object', deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55, 127] }, + ], }, [AI_SEARCH_QUERIES]: { brief: 'Queries used to search for relevant context or documents.', @@ -10072,6 +10132,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['climate change effects', 'renewable energy'], deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_SEARCH_RESULTS]: { brief: 'Results returned from search queries for context.', @@ -10082,6 +10146,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['search_result_1, search_result_2'], deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_SEED]: { brief: 'The seed, ideally models given the same seed and same other parameters will produce the exact same output.', @@ -10095,6 +10163,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.seed', }, aliases: [GEN_AI_REQUEST_SEED], + changelog: [{ version: '0.1.0', prs: [55, 57, 61, 108, 127] }], }, [AI_STREAMING]: { brief: 'Whether the request was streamed back.', @@ -10109,6 +10178,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_RESPONSE_STREAMING], sdks: ['python'], + changelog: [{ version: '0.1.0', prs: [76, 108] }, { version: '0.0.0' }], }, [AI_TAGS]: { brief: 'Tags that describe an AI pipeline step.', @@ -10119,6 +10189,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '{"executed_function": "add_integers"}', deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55, 127] }, + ], }, [AI_TEMPERATURE]: { brief: @@ -10133,6 +10207,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.temperature', }, aliases: [GEN_AI_REQUEST_TEMPERATURE], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [55, 57, 61, 108] }, + ], }, [AI_TEXTS]: { brief: 'Raw text inputs provided to the model.', @@ -10146,6 +10224,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.input.messages', }, aliases: [GEN_AI_INPUT_MESSAGES], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [AI_TOOLS]: { brief: 'For an AI model call, the functions that are available', @@ -10158,6 +10240,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.request.available_tools', }, + changelog: [{ version: '0.1.0', prs: [55, 65, 127] }], }, [AI_TOOL_CALLS]: { brief: 'For an AI model call, the tool calls that were made.', @@ -10170,6 +10253,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.response.tool_calls', }, + changelog: [{ version: '0.1.0', prs: [55, 65] }], }, [AI_TOP_K]: { brief: @@ -10184,6 +10268,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.top_k', }, aliases: [GEN_AI_REQUEST_TOP_K], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [55, 57, 61, 108] }, + ], }, [AI_TOP_P]: { brief: @@ -10198,6 +10286,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.request.top_p', }, aliases: [GEN_AI_REQUEST_TOP_P], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [55, 57, 61, 108] }, + ], }, [AI_TOTAL_COST]: { brief: 'The total cost for the tokens used.', @@ -10211,6 +10303,11 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.cost.total_tokens', }, aliases: [GEN_AI_COST_TOTAL_TOKENS], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [53] }, + ], }, [AI_TOTAL_TOKENS_USED]: { brief: 'The total number of tokens used to process the prompt.', @@ -10225,6 +10322,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [GEN_AI_USAGE_TOTAL_TOKENS], sdks: ['python'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [57, 61, 108] }, { version: '0.0.0' }], }, [AI_WARNINGS]: { brief: 'Warning messages generated during model execution.', @@ -10235,6 +10333,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['Token limit exceeded'], deprecation: {}, + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.1.0', prs: [55] }, + ], }, [APP_START_TYPE]: { brief: 'Mobile app start variant. Either cold or warm.', @@ -10244,6 +10346,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'cold', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [BLOCKED_MAIN_THREAD]: { brief: 'Whether the main thread was blocked by the span.', @@ -10253,6 +10356,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.0.0' }], }, [BROWSER_NAME]: { brief: 'The name of the browser.', @@ -10263,6 +10367,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'Chrome', aliases: [SENTRY_BROWSER_NAME], + changelog: [{ version: '0.1.0', prs: [127, 139] }, { version: '0.0.0' }], }, [BROWSER_REPORT_TYPE]: { brief: 'A browser report sent via reporting API..', @@ -10272,6 +10377,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'network-error', + changelog: [{ version: '0.1.0', prs: [68, 127] }], }, [BROWSER_SCRIPT_INVOKER]: { brief: 'How a script was called in the browser.', @@ -10282,6 +10388,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'Window.requestAnimationFrame', sdks: ['browser'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [BROWSER_SCRIPT_INVOKER_TYPE]: { brief: 'Browser script entry point type.', @@ -10292,6 +10399,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'event-listener', sdks: ['browser'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [BROWSER_SCRIPT_SOURCE_CHAR_POSITION]: { brief: 'A number representing the script character position of the script.', @@ -10302,6 +10410,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 678, sdks: ['browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [BROWSER_VERSION]: { brief: 'The version of the browser.', @@ -10312,6 +10421,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '120.0.6099.130', aliases: [SENTRY_BROWSER_VERSION], + changelog: [{ version: '0.1.0', prs: [59, 127, 139] }], }, [CACHE_HIT]: { brief: 'If the cache was hit during this span.', @@ -10322,6 +10432,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: true, sdks: ['php-laravel'], + changelog: [{ version: '0.0.0' }], }, [CACHE_ITEM_SIZE]: { brief: 'The size of the requested item in the cache. In bytes.', @@ -10331,6 +10442,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 58, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CACHE_KEY]: { brief: 'The key of the cache accessed.', @@ -10341,6 +10453,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['my-cache-key', 'my-other-cache-key'], sdks: ['php-laravel'], + changelog: [{ version: '0.0.0' }], }, [CACHE_OPERATION]: { brief: 'The operation being performed on the cache.', @@ -10351,6 +10464,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'get', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [CACHE_TTL]: { brief: 'The ttl of the cache in seconds', @@ -10361,6 +10475,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 120, sdks: ['php-laravel'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CHANNEL]: { brief: 'The channel name that is being used.', @@ -10371,6 +10486,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'mail', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [CLIENT_ADDRESS]: { brief: @@ -10382,6 +10498,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'example.com', aliases: [HTTP_CLIENT_IP], + changelog: [{ version: '0.1.0', prs: [106, 127] }, { version: '0.0.0' }], }, [CLIENT_PORT]: { brief: 'Client port number.', @@ -10391,6 +10508,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 5432, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CLOUDFLARE_D1_DURATION]: { brief: 'The duration of a Cloudflare D1 operation.', @@ -10401,6 +10519,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 543, sdks: ['javascript-cloudflare'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CLOUDFLARE_D1_ROWS_READ]: { brief: 'The number of rows read in a Cloudflare D1 operation.', @@ -10411,6 +10530,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 12, sdks: ['javascript-cloudflare'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CLOUDFLARE_D1_ROWS_WRITTEN]: { brief: 'The number of rows written in a Cloudflare D1 operation.', @@ -10421,6 +10541,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 12, sdks: ['javascript-cloudflare'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CODE_FILEPATH]: { brief: @@ -10435,6 +10556,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'code.file.path', }, aliases: [CODE_FILE_PATH], + changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [CODE_FILE_PATH]: { brief: @@ -10446,6 +10568,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '/app/myapplication/http/handler/server.py', aliases: [CODE_FILEPATH], + changelog: [{ version: '0.0.0' }], }, [CODE_FUNCTION]: { brief: "The method or function name, or equivalent (usually rightmost part of the code unit's name).", @@ -10459,6 +10582,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'code.function.name', }, aliases: [CODE_FUNCTION_NAME], + changelog: [{ version: '0.1.0', prs: [61, 74] }, { version: '0.0.0' }], }, [CODE_FUNCTION_NAME]: { brief: "The method or function name, or equivalent (usually rightmost part of the code unit's name).", @@ -10469,6 +10593,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'server_request', aliases: [CODE_FUNCTION], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [CODE_LINENO]: { brief: @@ -10483,6 +10608,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'code.line.number', }, aliases: [CODE_LINE_NUMBER], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61, 108] }, { version: '0.0.0' }], }, [CODE_LINE_NUMBER]: { brief: @@ -10494,6 +10620,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 42, aliases: [CODE_LINENO], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [CODE_NAMESPACE]: { brief: @@ -10508,6 +10635,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'code.function.name', reason: 'code.function.name should include the namespace.', }, + changelog: [{ version: '0.1.0', prs: [61, 74] }, { version: '0.0.0' }], }, [CULTURE_CALENDAR]: { brief: 'The calendar system used by the culture.', @@ -10517,6 +10645,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'GregorianCalendar', + changelog: [{ version: '0.4.0', prs: [243] }], }, [CULTURE_DISPLAY_NAME]: { brief: 'Human readable name of the culture.', @@ -10526,6 +10655,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'English (United States)', + changelog: [{ version: '0.4.0', prs: [243] }], }, [CULTURE_IS_24_HOUR_FORMAT]: { brief: 'Whether the culture uses 24-hour time format.', @@ -10535,6 +10665,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.4.0', prs: [243] }], }, [CULTURE_LOCALE]: { brief: 'The locale identifier following RFC 4646.', @@ -10544,6 +10675,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'en-US', + changelog: [{ version: '0.4.0', prs: [243] }], }, [CULTURE_TIMEZONE]: { brief: 'The timezone of the culture, as a geographic timezone identifier.', @@ -10553,6 +10685,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Europe/Vienna', + changelog: [{ version: '0.4.0', prs: [243] }], }, [DB_COLLECTION_NAME]: { brief: 'The name of a collection (table, container) within the database.', @@ -10562,6 +10695,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'users', + changelog: [{ version: '0.1.0', prs: [106, 127] }, { version: '0.0.0' }], }, [DB_NAME]: { brief: 'The name of the database being accessed.', @@ -10575,6 +10709,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'db.namespace', }, aliases: [DB_NAMESPACE], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [DB_NAMESPACE]: { brief: 'The name of the database being accessed.', @@ -10585,6 +10720,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'customers', aliases: [DB_NAME], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_OPERATION]: { brief: 'The name of the operation being executed.', @@ -10598,6 +10734,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'db.operation.name', }, aliases: [DB_OPERATION_NAME], + changelog: [{ version: '0.4.0', prs: [199] }, { version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [DB_OPERATION_NAME]: { brief: 'The name of the operation being executed.', @@ -10608,6 +10745,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'SELECT', aliases: [DB_OPERATION], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_QUERY_PARAMETER_KEY]: { brief: @@ -10619,6 +10757,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, hasDynamicSuffix: true, example: "db.query.parameter.foo='123'", + changelog: [{ version: '0.1.0', prs: [103, 127] }], }, [DB_QUERY_SUMMARY]: { brief: @@ -10629,6 +10768,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'SELECT users;', + changelog: [{ version: '0.4.0', prs: [208] }, { version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_QUERY_TEXT]: { brief: @@ -10640,6 +10780,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'SELECT * FROM users WHERE id = $1', aliases: [DB_STATEMENT], + changelog: [{ version: '0.4.0', prs: [208] }, { version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_REDIS_CONNECTION]: { brief: 'The redis connection name.', @@ -10650,6 +10791,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'my-redis-instance', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_REDIS_PARAMETERS]: { brief: 'The array of command parameters given to a redis command.', @@ -10660,6 +10802,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: ['test', '*'], sdks: ['php-laravel'], + changelog: [{ version: '0.0.0' }], }, [DB_SQL_BINDINGS]: { brief: 'The array of query bindings.', @@ -10675,6 +10818,7 @@ export const ATTRIBUTE_METADATA: Record = { 'Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter..', }, sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [DB_STATEMENT]: { brief: 'The database statement being executed.', @@ -10688,6 +10832,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'db.query.text', }, aliases: [DB_QUERY_TEXT], + changelog: [{ version: '0.4.0', prs: [199] }, { version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [DB_SYSTEM]: { brief: @@ -10702,6 +10847,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'db.system.name', }, aliases: [DB_SYSTEM_NAME], + changelog: [{ version: '0.4.0', prs: [199, 224] }, { version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [DB_SYSTEM_NAME]: { brief: @@ -10713,6 +10859,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'postgresql', aliases: [DB_SYSTEM], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [DB_USER]: { brief: 'The database user.', @@ -10722,6 +10869,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'fancy_user', + changelog: [{ version: '0.0.0' }], }, [DEVICE_BRAND]: { brief: 'The brand of the device.', @@ -10731,6 +10879,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Apple', + changelog: [{ version: '0.1.0', prs: [116, 127] }], }, [DEVICE_FAMILY]: { brief: 'The family of the device.', @@ -10740,6 +10889,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'iPhone', + changelog: [{ version: '0.1.0', prs: [116, 127] }], }, [DEVICE_MODEL]: { brief: 'The model of the device.', @@ -10749,6 +10899,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'iPhone 15 Pro Max', + changelog: [{ version: '0.1.0', prs: [116, 127] }], }, [ENVIRONMENT]: { brief: 'The sentry environment.', @@ -10762,6 +10913,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'sentry.environment', }, aliases: [SENTRY_ENVIRONMENT], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [ERROR_TYPE]: { brief: 'Describes a class of error the operation ended with.', @@ -10771,6 +10923,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'timeout', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [EVENT_ID]: { brief: 'The unique identifier for this event (log record)', @@ -10780,6 +10933,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1234567890, + changelog: [{ version: '0.1.0', prs: [101] }], }, [EVENT_NAME]: { brief: 'The name that uniquely identifies this event (log record)', @@ -10789,6 +10943,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Process Payload', + changelog: [{ version: '0.1.0', prs: [101, 127] }], }, [EXCEPTION_ESCAPED]: { brief: @@ -10799,6 +10954,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: true, + changelog: [{ version: '0.0.0' }], }, [EXCEPTION_MESSAGE]: { brief: 'The error message.', @@ -10808,6 +10964,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'ENOENT: no such file or directory', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [EXCEPTION_STACKTRACE]: { brief: @@ -10819,6 +10976,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [EXCEPTION_TYPE]: { brief: @@ -10829,6 +10987,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'OSError', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [FAAS_COLDSTART]: { brief: 'A boolean that is true if the serverless function is executed for the first time (aka cold-start).', @@ -10838,6 +10997,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: true, + changelog: [{ version: '0.0.0' }], }, [FAAS_CRON]: { brief: 'A string containing the schedule period as Cron Expression.', @@ -10847,6 +11007,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '0/5 * * * ? *', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [FAAS_TIME]: { brief: 'A string containing the function invocation time in the ISO 8601 format expressed in UTC.', @@ -10856,6 +11017,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '2020-01-23T13:47:06Z', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [FAAS_TRIGGER]: { brief: 'Type of the trigger which caused this function invocation.', @@ -10865,6 +11027,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'timer', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [FLAG_EVALUATION_KEY]: { brief: @@ -10876,6 +11039,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, hasDynamicSuffix: true, example: 'flag.evaluation.is_new_ui=true', + changelog: [{ version: '0.1.0', prs: [103] }], }, [FRAMES_DELAY]: { brief: @@ -10886,6 +11050,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 5, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [FRAMES_FROZEN]: { brief: 'The number of frozen frames rendered during the lifetime of the span.', @@ -10895,6 +11060,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 3, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [FRAMES_SLOW]: { brief: 'The number of slow frames rendered during the lifetime of the span.', @@ -10904,6 +11070,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [FRAMES_TOTAL]: { brief: 'The number of total frames rendered during the lifetime of the span.', @@ -10913,6 +11080,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 60, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [FS_ERROR]: { brief: 'The error message of a file system error.', @@ -10927,6 +11095,7 @@ export const ATTRIBUTE_METADATA: Record = { reason: 'This attribute is not part of the OpenTelemetry specification and error.type fits much better.', }, sdks: ['javascript-node'], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [GEN_AI_AGENT_NAME]: { brief: 'The name of the agent being used.', @@ -10936,6 +11105,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'ResearchAssistant', + changelog: [{ version: '0.1.0', prs: [62, 127] }], }, [GEN_AI_CONVERSATION_ID]: { brief: @@ -10946,6 +11116,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'conv_5j66UpCpwteGg4YSxUnt7lPY', + changelog: [{ version: '0.4.0', prs: [250] }], }, [GEN_AI_COST_INPUT_TOKENS]: { brief: 'The cost of tokens used to process the AI input (prompt) in USD (without cached input tokens).', @@ -10955,6 +11126,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 123.45, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [112] }, + ], }, [GEN_AI_COST_OUTPUT_TOKENS]: { brief: 'The cost of tokens used for creating the AI output in USD (without reasoning tokens).', @@ -10964,6 +11139,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 123.45, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [112] }, + ], }, [GEN_AI_COST_TOTAL_TOKENS]: { brief: 'The total cost for the tokens used.', @@ -10974,6 +11153,11 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 12.34, aliases: [AI_TOTAL_COST], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [126] }, + ], }, [GEN_AI_EMBEDDINGS_INPUT]: { brief: 'The input to the embeddings model.', @@ -10983,6 +11167,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: "What's the weather in Paris?", + changelog: [{ version: '0.3.1', prs: [195] }], }, [GEN_AI_INPUT_MESSAGES]: { brief: @@ -10995,6 +11180,10 @@ export const ATTRIBUTE_METADATA: Record = { example: '[{"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", "result": "rainy, 57°F"}]}]', aliases: [AI_TEXTS], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.4.0', prs: [221] }, + ], }, [GEN_AI_OPERATION_NAME]: { brief: @@ -11005,6 +11194,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'chat', + changelog: [ + { version: '0.4.0', prs: [225] }, + { version: '0.1.0', prs: [62, 127] }, + ], }, [GEN_AI_OPERATION_TYPE]: { brief: @@ -11015,6 +11208,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'tool', + changelog: [ + { version: '0.4.0', prs: [257] }, + { version: '0.1.0', prs: [113, 127] }, + ], }, [GEN_AI_OUTPUT_MESSAGES]: { brief: @@ -11026,6 +11223,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '[{"role": "assistant", "parts": [{"type": "text", "content": "The weather in Paris is currently rainy with a temperature of 57°F."}], "finish_reason": "stop"}]', + changelog: [{ version: '0.4.0', prs: [221] }], }, [GEN_AI_PIPELINE_NAME]: { brief: 'Name of the AI pipeline or chain being executed.', @@ -11036,6 +11234,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'Autofix Pipeline', aliases: [AI_PIPELINE_NAME], + changelog: [{ version: '0.1.0', prs: [76, 127] }], }, [GEN_AI_PROMPT]: { brief: 'The input messages sent to the model', @@ -11048,6 +11247,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { reason: 'Deprecated from OTEL, use gen_ai.input.messages with the new format instead.', }, + changelog: [{ version: '0.1.0', prs: [74, 108, 119] }, { version: '0.0.0' }], }, [GEN_AI_PROVIDER_NAME]: { brief: 'The Generative AI provider as identified by the client or server instrumentation.', @@ -11058,6 +11258,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'openai', aliases: [AI_MODEL_PROVIDER, GEN_AI_SYSTEM], + changelog: [{ version: '0.4.0', prs: [253] }], }, [GEN_AI_REQUEST_AVAILABLE_TOOLS]: { brief: 'The available tools for the model. It has to be a stringified version of an array of objects.', @@ -11071,6 +11272,10 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.tool.definitions', }, + changelog: [ + { version: '0.4.0', prs: [221] }, + { version: '0.1.0', prs: [63, 127] }, + ], }, [GEN_AI_REQUEST_FREQUENCY_PENALTY]: { brief: @@ -11082,6 +11287,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 0.5, aliases: [AI_FREQUENCY_PENALTY], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GEN_AI_REQUEST_MAX_TOKENS]: { brief: 'The maximum number of tokens to generate in the response.', @@ -11091,6 +11300,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 2048, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [62] }, + ], }, [GEN_AI_REQUEST_MESSAGES]: { brief: @@ -11106,6 +11319,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.input.messages', }, aliases: [AI_INPUT_MESSAGES], + changelog: [ + { version: '0.4.0', prs: [221] }, + { version: '0.1.0', prs: [63, 74, 108, 119, 122] }, + ], }, [GEN_AI_REQUEST_MODEL]: { brief: 'The model identifier being used for the request.', @@ -11115,6 +11332,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'gpt-4-turbo-preview', + changelog: [{ version: '0.1.0', prs: [62, 127] }], }, [GEN_AI_REQUEST_PRESENCE_PENALTY]: { brief: @@ -11126,6 +11344,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 0.5, aliases: [AI_PRESENCE_PENALTY], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GEN_AI_REQUEST_SEED]: { brief: 'The seed, ideally models given the same seed and same other parameters will produce the exact same output.', @@ -11136,6 +11358,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '1234567890', aliases: [AI_SEED], + changelog: [{ version: '0.1.0', prs: [57, 127] }], }, [GEN_AI_REQUEST_TEMPERATURE]: { brief: @@ -11147,6 +11370,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 0.1, aliases: [AI_TEMPERATURE], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GEN_AI_REQUEST_TOP_K]: { brief: @@ -11158,6 +11385,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 35, aliases: [AI_TOP_K], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GEN_AI_REQUEST_TOP_P]: { brief: @@ -11169,6 +11400,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 0.7, aliases: [AI_TOP_P], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GEN_AI_RESPONSE_FINISH_REASONS]: { brief: 'The reason why the model stopped generating.', @@ -11179,6 +11414,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'COMPLETE', aliases: [AI_FINISH_REASON], + changelog: [{ version: '0.1.0', prs: [57, 127] }], }, [GEN_AI_RESPONSE_ID]: { brief: 'Unique identifier for the completion.', @@ -11189,6 +11425,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'gen_123abc', aliases: [AI_GENERATION_ID], + changelog: [{ version: '0.1.0', prs: [57, 127] }], }, [GEN_AI_RESPONSE_MODEL]: { brief: 'The vendor-specific ID of the model used.', @@ -11199,6 +11436,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'gpt-4', aliases: [AI_MODEL_ID], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [GEN_AI_RESPONSE_STREAMING]: { brief: "Whether or not the AI model call's response was streamed back asynchronously", @@ -11209,6 +11447,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: true, aliases: [AI_STREAMING], + changelog: [{ version: '0.1.0', prs: [76] }], }, [GEN_AI_RESPONSE_TEXT]: { brief: @@ -11223,6 +11462,10 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.output.messages', }, + changelog: [ + { version: '0.4.0', prs: [221] }, + { version: '0.1.0', prs: [63, 74] }, + ], }, [GEN_AI_RESPONSE_TIME_TO_FIRST_TOKEN]: { brief: 'Time in seconds when the first response content chunk arrived in streaming responses.', @@ -11232,6 +11475,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 0.6853435, + changelog: [{ version: '0.4.0', prs: [227] }], }, [GEN_AI_RESPONSE_TOKENS_PER_SECOND]: { brief: 'The total output tokens per seconds throughput', @@ -11241,6 +11485,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 12345.67, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [66] }, + ], }, [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.", @@ -11253,6 +11501,10 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.output.messages', }, + changelog: [ + { version: '0.4.0', prs: [221] }, + { version: '0.1.0', prs: [63, 74] }, + ], }, [GEN_AI_SYSTEM]: { brief: 'The provider of the model.', @@ -11266,6 +11518,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.provider.name', }, aliases: [AI_MODEL_PROVIDER, GEN_AI_PROVIDER_NAME], + changelog: [ + { version: '0.4.0', prs: [253] }, + { version: '0.1.0', prs: [57, 127] }, + ], }, [GEN_AI_SYSTEM_INSTRUCTIONS]: { brief: 'The system instructions passed to the model.', @@ -11276,6 +11532,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'You are a helpful assistant', aliases: [AI_PREAMBLE], + changelog: [ + { version: 'next', prs: [264] }, + { version: '0.4.0', prs: [221] }, + ], }, [GEN_AI_SYSTEM_MESSAGE]: { brief: 'The system instructions passed to the model.', @@ -11288,6 +11548,10 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'gen_ai.system_instructions', }, + changelog: [ + { version: '0.4.0', prs: [221] }, + { version: '0.1.0', prs: [62] }, + ], }, [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.', @@ -11298,6 +11562,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '{"location": "Paris"}', aliases: [GEN_AI_TOOL_INPUT], + changelog: [ + { version: 'next', prs: [265] }, + { version: '0.4.0', prs: [221] }, + ], }, [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.', @@ -11308,6 +11576,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'rainy, 57°F', aliases: [GEN_AI_TOOL_OUTPUT, GEN_AI_TOOL_MESSAGE], + changelog: [ + { version: 'next', prs: [265] }, + { version: '0.4.0', prs: [221] }, + ], }, [GEN_AI_TOOL_DEFINITIONS]: { brief: 'The list of source system tool definitions available to the GenAI agent or model.', @@ -11318,6 +11590,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, 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"]}}]', + changelog: [{ version: '0.4.0', prs: [221] }], }, [GEN_AI_TOOL_DESCRIPTION]: { brief: 'The description of the tool being used.', @@ -11327,6 +11600,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'Searches the web for current information about a topic', + changelog: [{ version: '0.1.0', prs: [62, 127] }], }, [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.', @@ -11340,6 +11614,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.tool.call.arguments', }, aliases: [GEN_AI_TOOL_CALL_ARGUMENTS], + changelog: [ + { version: 'next', prs: [265] }, + { version: '0.1.0', prs: [63, 74] }, + ], }, [GEN_AI_TOOL_MESSAGE]: { brief: 'The response from a tool or function call passed to the model.', @@ -11353,6 +11631,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.tool.call.result', }, aliases: [GEN_AI_TOOL_CALL_RESULT, GEN_AI_TOOL_OUTPUT], + changelog: [ + { version: 'next', prs: [265] }, + { version: '0.1.0', prs: [62] }, + ], }, [GEN_AI_TOOL_NAME]: { brief: 'Name of the tool utilized by the agent.', @@ -11363,6 +11645,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'Flights', aliases: [AI_FUNCTION_CALL], + changelog: [{ version: '0.1.0', prs: [57, 127] }], }, [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.', @@ -11376,6 +11659,10 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.tool.call.result', }, aliases: [GEN_AI_TOOL_CALL_RESULT, GEN_AI_TOOL_MESSAGE], + changelog: [ + { version: 'next', prs: [265] }, + { version: '0.1.0', prs: [63, 74] }, + ], }, [GEN_AI_TOOL_TYPE]: { brief: 'The type of tool being used.', @@ -11385,6 +11672,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'function', + changelog: [{ version: '0.1.0', prs: [62, 127] }], }, [GEN_AI_USAGE_COMPLETION_TOKENS]: { brief: 'The number of tokens used in the GenAI response (completion).', @@ -11398,6 +11686,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.usage.output_tokens', }, aliases: [AI_COMPLETION_TOKENS_USED, GEN_AI_USAGE_OUTPUT_TOKENS], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [GEN_AI_USAGE_INPUT_TOKENS]: { brief: 'The number of tokens used to process the AI input (prompt) including cached input tokens.', @@ -11408,6 +11697,12 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 10, aliases: [AI_PROMPT_TOKENS_USED, GEN_AI_USAGE_PROMPT_TOKENS], + changelog: [ + { version: 'next', prs: [261] }, + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [112] }, + { version: '0.0.0' }, + ], }, [GEN_AI_USAGE_INPUT_TOKENS_CACHED]: { brief: 'The number of cached tokens used to process the AI input (prompt).', @@ -11417,6 +11712,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 50, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [62, 112] }, + ], }, [GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE]: { brief: 'The number of tokens written to the cache when processing the AI input (prompt).', @@ -11426,6 +11725,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 100, + changelog: [{ version: '0.4.0', prs: [217, 228] }], }, [GEN_AI_USAGE_OUTPUT_TOKENS]: { brief: 'The number of tokens used for creating the AI output (including reasoning tokens).', @@ -11436,6 +11736,12 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 10, aliases: [AI_COMPLETION_TOKENS_USED, GEN_AI_USAGE_COMPLETION_TOKENS], + changelog: [ + { version: 'next', prs: [261] }, + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [112] }, + { version: '0.0.0' }, + ], }, [GEN_AI_USAGE_OUTPUT_TOKENS_REASONING]: { brief: 'The number of tokens used for reasoning to create the AI output.', @@ -11445,6 +11751,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 75, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [62, 112] }, + ], }, [GEN_AI_USAGE_PROMPT_TOKENS]: { brief: 'The number of tokens used in the GenAI input (prompt).', @@ -11458,6 +11768,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'gen_ai.usage.input_tokens', }, aliases: [AI_PROMPT_TOKENS_USED, GEN_AI_USAGE_INPUT_TOKENS], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [GEN_AI_USAGE_TOTAL_TOKENS]: { brief: 'The total number of tokens used to process the prompt. (input tokens plus output todkens)', @@ -11468,6 +11779,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 20, aliases: [AI_TOTAL_TOKENS_USED], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [57] }, + ], }, [GRAPHQL_OPERATION_NAME]: { brief: 'The name of the operation being executed.', @@ -11477,6 +11792,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'findBookById', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [GRAPHQL_OPERATION_TYPE]: { brief: 'The type of the operation being executed.', @@ -11486,6 +11802,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'query', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [HTTP_CLIENT_IP]: { brief: @@ -11500,6 +11817,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'client.address', }, aliases: [CLIENT_ADDRESS], + changelog: [{ version: '0.1.0', prs: [61, 106, 127] }, { version: '0.0.0' }], }, [HTTP_DECODED_RESPONSE_CONTENT_LENGTH]: { brief: 'The decoded body size of the response (in bytes).', @@ -11510,6 +11828,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 456, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [HTTP_FLAVOR]: { brief: 'The actual version of the protocol used for network communication.', @@ -11523,6 +11842,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.protocol.version', }, aliases: [NETWORK_PROTOCOL_VERSION, NET_PROTOCOL_VERSION], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [HTTP_FRAGMENT]: { brief: @@ -11533,6 +11853,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '#details', + changelog: [{ version: '0.0.0' }], }, [HTTP_HOST]: { brief: 'The domain name.', @@ -11547,6 +11868,7 @@ export const ATTRIBUTE_METADATA: Record = { reason: 'Deprecated, use one of `server.address` or `client.address`, depending on the usage', }, aliases: [SERVER_ADDRESS, CLIENT_ADDRESS, HTTP_SERVER_NAME, NET_HOST_NAME], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [HTTP_METHOD]: { brief: 'The HTTP method used.', @@ -11560,6 +11882,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'http.request.method', }, aliases: [HTTP_REQUEST_METHOD], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [HTTP_QUERY]: { brief: @@ -11572,6 +11895,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '?foo=bar&bar=baz', + changelog: [{ version: '0.0.0' }], }, [HTTP_REQUEST_CONNECTION_END]: { brief: @@ -11583,6 +11907,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.15, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_CONNECT_START]: { brief: @@ -11594,6 +11919,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.111, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_DOMAIN_LOOKUP_END]: { brief: @@ -11605,6 +11931,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.201, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_DOMAIN_LOOKUP_START]: { brief: @@ -11616,6 +11943,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.322, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_FETCH_START]: { brief: 'The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.', @@ -11626,6 +11954,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.389, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_HEADER_KEY]: { brief: @@ -11637,6 +11966,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, hasDynamicSuffix: true, example: "http.request.header.custom-header=['foo', 'bar']", + changelog: [ + { version: '0.4.0', prs: [201, 204] }, + { version: '0.1.0', prs: [103] }, + ], }, [HTTP_REQUEST_METHOD]: { brief: 'The HTTP method used.', @@ -11647,6 +11980,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'GET', aliases: [METHOD, HTTP_METHOD], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [HTTP_REQUEST_REDIRECT_END]: { brief: @@ -11658,6 +11992,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829558.502, sdks: ['javascript-browser'], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [130, 134] }, + ], }, [HTTP_REQUEST_REDIRECT_START]: { brief: 'The UNIX timestamp representing the start time of the fetch which that initiates the redirect.', @@ -11668,6 +12006,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.495, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_REQUEST_START]: { brief: @@ -11679,6 +12018,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.51, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_RESEND_COUNT]: { brief: 'The ordinal number of request resending attempt (for any reason, including redirects).', @@ -11688,6 +12028,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 2, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [HTTP_REQUEST_RESPONSE_END]: { brief: @@ -11699,6 +12040,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.89, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_RESPONSE_START]: { brief: @@ -11710,6 +12052,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.7, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_SECURE_CONNECTION_START]: { brief: @@ -11721,6 +12064,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829555.73, sdks: ['javascript-browser'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [134] }, { version: '0.0.0' }], }, [HTTP_REQUEST_TIME_TO_FIRST_BYTE]: { brief: @@ -11732,6 +12076,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1.032, sdks: ['javascript-browser'], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [131] }, + ], }, [HTTP_REQUEST_WORKER_START]: { brief: @@ -11743,6 +12091,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732829553.68, sdks: ['javascript-browser'], + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [130, 134] }, + ], }, [HTTP_RESPONSE_BODY_SIZE]: { brief: 'The encoded body size of the response (in bytes).', @@ -11753,6 +12105,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 123, aliases: [HTTP_RESPONSE_CONTENT_LENGTH, HTTP_RESPONSE_HEADER_CONTENT_LENGTH], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [106] }, { version: '0.0.0' }], }, [HTTP_RESPONSE_CONTENT_LENGTH]: { brief: 'The encoded body size of the response (in bytes).', @@ -11766,6 +12119,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'http.response.body.size', }, aliases: [HTTP_RESPONSE_BODY_SIZE, HTTP_RESPONSE_HEADER_CONTENT_LENGTH], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61, 106] }, { version: '0.0.0' }], }, [HTTP_RESPONSE_HEADER_CONTENT_LENGTH]: { brief: 'The size of the message body sent to the recipient (in bytes)', @@ -11776,6 +12130,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: "http.response.header.custom-header=['foo', 'bar']", aliases: [HTTP_RESPONSE_CONTENT_LENGTH, HTTP_RESPONSE_BODY_SIZE], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [HTTP_RESPONSE_HEADER_KEY]: { brief: @@ -11787,6 +12142,10 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, hasDynamicSuffix: true, example: "http.response.header.custom-header=['foo', 'bar']", + changelog: [ + { version: '0.4.0', prs: [201, 204] }, + { version: '0.1.0', prs: [103] }, + ], }, [HTTP_RESPONSE_SIZE]: { brief: 'The transfer size of the response (in bytes).', @@ -11797,6 +12156,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 456, aliases: [HTTP_RESPONSE_TRANSFER_SIZE], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [HTTP_RESPONSE_STATUS_CODE]: { brief: 'The status code of the HTTP response.', @@ -11807,6 +12167,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 404, aliases: [HTTP_STATUS_CODE], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [HTTP_RESPONSE_TRANSFER_SIZE]: { brief: 'The transfer size of the response (in bytes).', @@ -11820,6 +12181,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'http.response.size', }, aliases: [HTTP_RESPONSE_SIZE], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [HTTP_ROUTE]: { brief: 'The matched route, that is, the path template in the format used by the respective server framework.', @@ -11830,6 +12192,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '/users/:id', aliases: [URL_TEMPLATE], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [HTTP_SCHEME]: { brief: 'The URI scheme component identifying the used protocol.', @@ -11843,6 +12206,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'url.scheme', }, aliases: [URL_SCHEME], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [HTTP_SERVER_NAME]: { brief: 'The server domain name', @@ -11856,6 +12220,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'server.address', }, aliases: [SERVER_ADDRESS, NET_HOST_NAME, HTTP_HOST], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [HTTP_SERVER_REQUEST_TIME_IN_QUEUE]: { brief: @@ -11867,6 +12232,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 50, sdks: ['ruby'], + changelog: [{ version: 'next', prs: [267] }], }, [HTTP_STATUS_CODE]: { brief: 'The status code of the HTTP response.', @@ -11880,6 +12246,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'http.response.status_code', }, aliases: [HTTP_RESPONSE_STATUS_CODE], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [HTTP_TARGET]: { brief: 'The pathname and query string of the URL.', @@ -11893,6 +12260,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'url.path', reason: 'This attribute is being deprecated in favor of url.path and url.query', }, + changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [HTTP_URL]: { brief: 'The URL of the resource that was fetched.', @@ -11906,6 +12274,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'url.full', }, aliases: [URL_FULL, URL], + changelog: [{ version: '0.1.0', prs: [61, 108] }, { version: '0.0.0' }], }, [HTTP_USER_AGENT]: { brief: 'Value of the HTTP User-Agent header sent by the client.', @@ -11920,6 +12289,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'user_agent.original', }, aliases: [USER_AGENT_ORIGINAL], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [ID]: { brief: 'A unique identifier for the span.', @@ -11930,6 +12300,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'f47ac10b58cc4372a5670e02b2c3d479', sdks: ['php-laravel'], + changelog: [{ version: '0.0.0' }], }, [JVM_GC_ACTION]: { brief: 'Name of the garbage collector action.', @@ -11939,6 +12310,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'end of minor GC', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [JVM_GC_NAME]: { brief: 'Name of the garbage collector.', @@ -11948,6 +12320,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'G1 Young Generation', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [JVM_MEMORY_POOL_NAME]: { brief: 'Name of the memory pool.', @@ -11957,6 +12330,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'G1 Old Gen', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [JVM_MEMORY_TYPE]: { brief: 'Name of the memory pool.', @@ -11966,6 +12340,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'G1 Old Gen', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [JVM_THREAD_DAEMON]: { brief: 'Whether the thread is daemon or not.', @@ -11975,6 +12350,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: true, + changelog: [{ version: '0.0.0' }], }, [JVM_THREAD_STATE]: { brief: 'State of the thread.', @@ -11984,6 +12360,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'blocked', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [LCP_ELEMENT]: { brief: 'The dom element responsible for the largest contentful paint.', @@ -11993,6 +12370,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'img', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [LCP_ID]: { brief: 'The id of the dom element responsible for the largest contentful paint.', @@ -12002,6 +12380,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '#hero', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [LCP_SIZE]: { brief: 'The size of the largest contentful paint element.', @@ -12011,6 +12390,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1234, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [LCP_URL]: { brief: 'The url of the dom element responsible for the largest contentful paint.', @@ -12020,6 +12400,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'https://example.com', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [LOGGER_NAME]: { brief: 'The name of the logger that generated this event.', @@ -12029,6 +12410,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'myLogger', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [MCP_CANCELLED_REASON]: { brief: 'Reason for the cancellation of an MCP operation.', @@ -12039,6 +12421,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'User cancelled the request', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_CANCELLED_REQUEST_ID]: { brief: 'Request ID of the cancelled MCP operation.', @@ -12048,6 +12431,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '123', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_CLIENT_NAME]: { brief: 'Name of the MCP client application.', @@ -12057,6 +12441,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'claude-desktop', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_CLIENT_TITLE]: { brief: 'Display title of the MCP client application.', @@ -12067,6 +12452,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Claude Desktop', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_CLIENT_VERSION]: { brief: 'Version of the MCP client application.', @@ -12076,6 +12462,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1.0.0', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_LIFECYCLE_PHASE]: { brief: 'Lifecycle phase indicator for MCP operations.', @@ -12085,6 +12472,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'initialization_complete', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_LOGGING_DATA_TYPE]: { brief: 'Data type of the logged message content.', @@ -12094,6 +12482,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'string', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_LOGGING_LEVEL]: { brief: 'Log level for MCP logging operations.', @@ -12103,6 +12492,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'info', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_LOGGING_LOGGER]: { brief: 'Logger name for MCP logging operations.', @@ -12113,6 +12503,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'mcp_server', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_LOGGING_MESSAGE]: { brief: 'Log message content from MCP logging operations.', @@ -12123,6 +12514,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Tool execution completed successfully', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_METHOD_NAME]: { brief: 'The name of the MCP request or notification method being called.', @@ -12132,6 +12524,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'tools/call', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROGRESS_CURRENT]: { brief: 'Current progress value of an MCP operation.', @@ -12141,6 +12534,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 50, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_PROGRESS_MESSAGE]: { brief: 'Progress message describing the current state of an MCP operation.', @@ -12151,6 +12548,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Processing 50 of 100 items', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROGRESS_PERCENTAGE]: { brief: 'Calculated progress percentage of an MCP operation. Computed from current/total * 100.', @@ -12160,6 +12558,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 50, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_PROGRESS_TOKEN]: { brief: 'Token for tracking progress of an MCP operation.', @@ -12169,6 +12571,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'progress-token-123', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROGRESS_TOTAL]: { brief: 'Total progress target value of an MCP operation.', @@ -12178,6 +12581,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 100, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_PROMPT_NAME]: { brief: 'Name of the MCP prompt template being used.', @@ -12188,6 +12595,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'summarize', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROMPT_RESULT_DESCRIPTION]: { brief: 'Description of the prompt result.', @@ -12197,6 +12605,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'A summary of the requested information', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROMPT_RESULT_MESSAGE_CONTENT]: { brief: 'Content of the message in the prompt result. Used for single message results only.', @@ -12206,6 +12615,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Please provide a summary of the document', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROMPT_RESULT_MESSAGE_COUNT]: { brief: 'Number of messages in the prompt result.', @@ -12215,6 +12625,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 3, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_PROMPT_RESULT_MESSAGE_ROLE]: { brief: 'Role of the message in the prompt result. Used for single message results only.', @@ -12224,6 +12638,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'user', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_PROTOCOL_READY]: { brief: 'Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.', @@ -12233,6 +12648,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_PROTOCOL_VERSION]: { brief: 'MCP protocol version used in the session.', @@ -12242,6 +12661,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '2024-11-05', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_REQUEST_ARGUMENT_KEY]: { brief: @@ -12254,6 +12674,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, hasDynamicSuffix: true, example: "mcp.request.argument.query='weather in Paris'", + changelog: [{ version: '0.3.0', prs: [176] }], }, [MCP_REQUEST_ARGUMENT_NAME]: { brief: 'Name argument from prompts/get MCP request.', @@ -12264,6 +12685,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'summarize', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_REQUEST_ARGUMENT_URI]: { brief: 'URI argument from resources/read MCP request.', @@ -12274,6 +12696,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'file:///path/to/resource', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_REQUEST_ID]: { brief: 'JSON-RPC request identifier for the MCP request. Unique within the MCP session.', @@ -12283,6 +12706,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_RESOURCE_PROTOCOL]: { brief: 'Protocol of the resource URI being accessed, extracted from the URI.', @@ -12292,6 +12716,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'file', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_RESOURCE_URI]: { brief: 'The resource URI being accessed in an MCP operation.', @@ -12302,6 +12727,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'file:///path/to/file.txt', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_SERVER_NAME]: { brief: 'Name of the MCP server application.', @@ -12311,6 +12737,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'sentry-mcp-server', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_SERVER_TITLE]: { brief: 'Display title of the MCP server application.', @@ -12321,6 +12748,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Sentry MCP Server', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_SERVER_VERSION]: { brief: 'Version of the MCP server application.', @@ -12330,6 +12758,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '0.1.0', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_SESSION_ID]: { brief: 'Identifier for the MCP session.', @@ -12339,6 +12768,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '550e8400-e29b-41d4-a716-446655440000', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_TOOL_NAME]: { brief: 'Name of the MCP tool being called.', @@ -12348,6 +12778,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'calculator', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_TOOL_RESULT_CONTENT]: { brief: 'The content of the tool result.', @@ -12358,6 +12789,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '{"output": "rainy", "toolCallId": "1"}', + changelog: [ + { version: '0.3.0', prs: [171] }, + { version: '0.2.0', prs: [164] }, + ], }, [MCP_TOOL_RESULT_CONTENT_COUNT]: { brief: 'Number of content items in the tool result.', @@ -12367,6 +12802,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.3.0', prs: [171] }, + ], }, [MCP_TOOL_RESULT_IS_ERROR]: { brief: 'Whether a tool execution resulted in an error.', @@ -12376,6 +12815,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: false, + changelog: [{ version: '0.3.0', prs: [171] }], }, [MCP_TRANSPORT]: { brief: 'Transport method used for MCP communication.', @@ -12385,6 +12825,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'stdio', + changelog: [{ version: '0.3.0', prs: [171] }], }, [MDC_KEY]: { brief: @@ -12397,6 +12838,7 @@ export const ATTRIBUTE_METADATA: Record = { hasDynamicSuffix: true, example: "mdc.some_key='some_value'", sdks: ['java', 'java.logback', 'java.jul', 'java.log4j2'], + changelog: [{ version: '0.3.0', prs: [176] }], }, [MESSAGING_DESTINATION_CONNECTION]: { brief: 'The message destination connection.', @@ -12407,6 +12849,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'BestTopic', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [MESSAGING_DESTINATION_NAME]: { brief: 'The message destination name.', @@ -12417,6 +12860,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'BestTopic', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [MESSAGING_MESSAGE_BODY_SIZE]: { brief: 'The size of the message body in bytes.', @@ -12427,6 +12871,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 839, sdks: ['php-laravel'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [MESSAGING_MESSAGE_ENVELOPE_SIZE]: { brief: 'The size of the message body and metadata in bytes.', @@ -12437,6 +12882,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 1045, sdks: ['php-laravel'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [MESSAGING_MESSAGE_ID]: { brief: 'A value used by the messaging system as an identifier for the message, represented as a string.', @@ -12447,6 +12893,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'f47ac10b58cc4372a5670e02b2c3d479', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [MESSAGING_MESSAGE_RECEIVE_LATENCY]: { brief: 'The latency between when the message was published and received.', @@ -12457,6 +12904,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1732847252, sdks: ['php-laravel'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [MESSAGING_MESSAGE_RETRY_COUNT]: { brief: 'The amount of attempts to send the message.', @@ -12467,6 +12915,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 2, sdks: ['php-laravel'], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [MESSAGING_OPERATION_TYPE]: { brief: 'A string identifying the type of the messaging operation', @@ -12476,6 +12925,7 @@ export const ATTRIBUTE_METADATA: Record