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 = { }, isInOtel: true, example: 'create', + changelog: [{ version: '0.1.0', prs: [51, 127] }], }, [MESSAGING_SYSTEM]: { brief: 'The messaging system as identified by the client instrumentation.', @@ -12486,6 +12936,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'activemq', sdks: ['php-laravel'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [METHOD]: { brief: 'The HTTP method used.', @@ -12500,6 +12951,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [HTTP_REQUEST_METHOD], sdks: ['javascript-browser', 'javascript-node'], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [NAVIGATION_TYPE]: { brief: 'The type of navigation done by a client-side router.', @@ -12509,6 +12961,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'router.push', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NEL_ELAPSED_TIME]: { brief: @@ -12519,6 +12972,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 100, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [68] }, + ], }, [NEL_PHASE]: { brief: 'If request failed, the phase of its network error. If request succeeded, "application".', @@ -12528,6 +12985,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'application', + changelog: [{ version: '0.1.0', prs: [68, 127] }], }, [NEL_REFERRER]: { brief: "request's referrer, as determined by the referrer policy associated with its client.", @@ -12537,6 +12995,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'https://example.com/foo?bar=baz', + changelog: [{ version: '0.1.0', prs: [68, 127] }], }, [NEL_SAMPLING_FUNCTION]: { brief: 'The sampling function used to determine if the request should be sampled.', @@ -12546,6 +13005,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 0.5, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.1.0', prs: [68] }, + ], }, [NEL_TYPE]: { brief: 'If request failed, the type of its network error. If request succeeded, "ok".', @@ -12555,6 +13018,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'dns.unreachable', + changelog: [{ version: '0.1.0', prs: [68, 127] }], }, [NETWORK_LOCAL_ADDRESS]: { brief: 'Local address of the network connection - IP address or Unix domain socket name.', @@ -12565,6 +13029,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '10.1.2.80', aliases: [NET_HOST_IP, NET_SOCK_HOST_ADDR], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NETWORK_LOCAL_PORT]: { brief: 'Local port number of the network connection.', @@ -12575,6 +13040,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 65400, aliases: [NET_SOCK_HOST_PORT], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [NETWORK_PEER_ADDRESS]: { brief: 'Peer address of the network connection - IP address or Unix domain socket name.', @@ -12585,6 +13051,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '10.1.2.80', aliases: [NET_PEER_IP, NET_SOCK_PEER_ADDR], + changelog: [{ version: '0.1.0', prs: [108, 127] }, { version: '0.0.0' }], }, [NETWORK_PEER_PORT]: { brief: 'Peer port number of the network connection.', @@ -12594,6 +13061,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 65400, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [NETWORK_PROTOCOL_NAME]: { brief: 'OSI application layer or non-OSI equivalent.', @@ -12604,6 +13072,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'http', aliases: [NET_PROTOCOL_NAME], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NETWORK_PROTOCOL_VERSION]: { brief: 'The actual version of the protocol used for network communication.', @@ -12614,6 +13083,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '1.1', aliases: [HTTP_FLAVOR, NET_PROTOCOL_VERSION], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NETWORK_TRANSPORT]: { brief: 'OSI transport layer or inter-process communication method.', @@ -12624,6 +13094,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'tcp', aliases: [NET_TRANSPORT], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NETWORK_TYPE]: { brief: 'OSI network layer or non-OSI equivalent.', @@ -12633,6 +13104,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'ipv4', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [NET_HOST_IP]: { brief: 'Local address of the network connection - IP address or Unix domain socket name.', @@ -12646,6 +13118,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.local.address', }, aliases: [NETWORK_LOCAL_ADDRESS, NET_SOCK_HOST_ADDR], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_HOST_NAME]: { brief: @@ -12660,6 +13133,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'server.address', }, aliases: [SERVER_ADDRESS, HTTP_SERVER_NAME, HTTP_HOST], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_HOST_PORT]: { brief: 'Server port number.', @@ -12673,6 +13147,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'server.port', }, aliases: [SERVER_PORT], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [NET_PEER_IP]: { brief: 'Peer address of the network connection - IP address or Unix domain socket name.', @@ -12686,6 +13161,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.peer.address', }, aliases: [NETWORK_PEER_ADDRESS, NET_SOCK_PEER_ADDR], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_PEER_NAME]: { brief: @@ -12700,6 +13176,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'server.address', reason: 'Deprecated, use server.address on client spans and client.address on server spans.', }, + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [NET_PEER_PORT]: { brief: 'Peer port number.', @@ -12713,6 +13190,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'server.port', reason: 'Deprecated, use server.port on client spans and client.port on server spans.', }, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [NET_PROTOCOL_NAME]: { brief: 'OSI application layer or non-OSI equivalent.', @@ -12726,6 +13204,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.protocol.name', }, aliases: [NETWORK_PROTOCOL_NAME], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [NET_PROTOCOL_VERSION]: { brief: 'The actual version of the protocol used for network communication.', @@ -12739,6 +13218,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.protocol.version', }, aliases: [NETWORK_PROTOCOL_VERSION, HTTP_FLAVOR], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_SOCK_FAMILY]: { brief: 'OSI transport and network layer', @@ -12752,6 +13232,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.transport', reason: 'Deprecated, use network.transport and network.type.', }, + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [NET_SOCK_HOST_ADDR]: { brief: 'Local address of the network connection mapping to Unix domain socket name.', @@ -12765,6 +13246,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.local.address', }, aliases: [NETWORK_LOCAL_ADDRESS, NET_HOST_IP], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_SOCK_HOST_PORT]: { brief: 'Local port number of the network connection.', @@ -12778,6 +13260,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.local.port', }, aliases: [NETWORK_LOCAL_PORT], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [NET_SOCK_PEER_ADDR]: { brief: 'Peer address of the network connection - IP address', @@ -12791,6 +13274,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.peer.address', }, aliases: [NETWORK_PEER_ADDRESS, NET_PEER_IP], + changelog: [{ version: '0.1.0', prs: [61, 108, 127] }, { version: '0.0.0' }], }, [NET_SOCK_PEER_NAME]: { brief: 'Peer address of the network connection - Unix domain socket name', @@ -12803,6 +13287,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { reason: 'Deprecated from OTEL, no replacement at this time', }, + changelog: [{ version: '0.1.0', prs: [61, 119, 127] }, { version: '0.0.0' }], }, [NET_SOCK_PEER_PORT]: { brief: 'Peer port number of the network connection.', @@ -12815,6 +13300,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'network.peer.port', }, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [NET_TRANSPORT]: { brief: 'OSI transport layer or inter-process communication method.', @@ -12828,6 +13314,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'network.transport', }, aliases: [NETWORK_TRANSPORT], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [OS_BUILD_ID]: { brief: 'The build ID of the operating system.', @@ -12837,6 +13324,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '1234567890', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OS_DESCRIPTION]: { brief: @@ -12847,6 +13335,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'Ubuntu 18.04.1 LTS', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OS_NAME]: { brief: 'Human readable operating system name.', @@ -12856,6 +13345,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'Ubuntu', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OS_TYPE]: { brief: 'The operating system type.', @@ -12865,6 +13355,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'linux', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OS_VERSION]: { brief: 'The version of the operating system.', @@ -12874,6 +13365,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '18.04.2', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OTEL_SCOPE_NAME]: { brief: 'The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).', @@ -12883,6 +13375,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'io.opentelemetry.contrib.mongodb', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OTEL_SCOPE_VERSION]: { brief: 'The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).', @@ -12892,6 +13385,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '2.4.5', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OTEL_STATUS_CODE]: { brief: 'Name of the code, either “OK” or “ERROR”. MUST NOT be set if the status code is UNSET.', @@ -12901,6 +13395,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'OK', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [OTEL_STATUS_DESCRIPTION]: { brief: 'Description of the Status if it has a value, otherwise not set.', @@ -12910,6 +13405,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'resource not found', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [PARAMS_KEY]: { brief: @@ -12922,6 +13418,7 @@ export const ATTRIBUTE_METADATA: Record = { hasDynamicSuffix: true, example: "params.id='123'", aliases: [URL_PATH_PARAMETER_KEY], + changelog: [{ version: '0.1.0', prs: [103] }], }, [PREVIOUS_ROUTE]: { brief: 'Also used by mobile SDKs to indicate the previous route in the application.', @@ -12932,6 +13429,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'HomeScreen', sdks: ['javascript-reactnative'], + changelog: [{ version: '0.1.0', prs: [74] }, { version: '0.0.0' }], }, [PROCESS_EXECUTABLE_NAME]: { brief: 'The name of the executable that started the process.', @@ -12941,6 +13439,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'getsentry', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [PROCESS_PID]: { brief: 'The process ID of the running process.', @@ -12950,6 +13449,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 12345, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [PROCESS_RUNTIME_DESCRIPTION]: { brief: @@ -12960,6 +13460,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'Eclipse OpenJ9 VM openj9-0.21.0', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [PROCESS_RUNTIME_NAME]: { brief: 'The name of the runtime. Equivalent to `name` in the Sentry runtime context.', @@ -12969,6 +13470,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'node', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [PROCESS_RUNTIME_VERSION]: { brief: @@ -12979,6 +13481,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '18.04.2', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [QUERY_KEY]: { brief: 'An item in a query string. Usually added by client-side routing frameworks like vue-router.', @@ -12993,6 +13496,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'url.query', reason: 'Instead of sending items individually in query., they should be sent all together with url.query.', }, + changelog: [{ version: '0.1.0', prs: [103] }], }, [RELEASE]: { brief: 'The sentry release.', @@ -13006,6 +13510,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'sentry.release', }, aliases: [SENTRY_RELEASE], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [REMIX_ACTION_FORM_DATA_KEY]: { brief: 'Remix form data, being the form data key, the value being the form data value.', @@ -13017,6 +13522,7 @@ export const ATTRIBUTE_METADATA: Record = { hasDynamicSuffix: true, example: "http.response.header.text='test'", sdks: ['javascript-remix'], + changelog: [{ version: '0.1.0', prs: [103] }], }, [REPLAY_ID]: { brief: 'The id of the sentry replay.', @@ -13030,6 +13536,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'sentry.replay_id', }, aliases: [SENTRY_REPLAY_ID], + changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [RESOURCE_DEPLOYMENT_ENVIRONMENT]: { brief: 'The software deployment environment name.', @@ -13042,6 +13549,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'sentry.environment', }, + changelog: [{ version: 'next', prs: [266] }], }, [RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME]: { brief: 'The software deployment environment name.', @@ -13054,6 +13562,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'sentry.environment', }, + changelog: [{ version: '0.3.1', prs: [196] }], }, [RESOURCE_RENDER_BLOCKING_STATUS]: { brief: 'The render blocking status of the resource.', @@ -13064,6 +13573,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'non-blocking', sdks: ['javascript-browser'], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [ROUTE]: { brief: @@ -13079,6 +13589,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [HTTP_ROUTE], sdks: ['php-laravel', 'javascript-reactnative'], + changelog: [{ version: '0.1.0', prs: [61, 74] }, { version: '0.0.0' }], }, [RPC_GRPC_STATUS_CODE]: { brief: 'The numeric status code of the gRPC request.', @@ -13088,6 +13599,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 2, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [RPC_SERVICE]: { brief: 'The full (logical) name of the service being called, including its package name, if applicable.', @@ -13097,6 +13609,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'myService.BestService', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [SENTRY_ACTION]: { brief: @@ -13107,6 +13620,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'SELECT', + changelog: [{ version: '0.4.0', prs: [212] }], }, [SENTRY_BROWSER_NAME]: { brief: 'The name of the browser.', @@ -13120,6 +13634,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'browser.name', }, aliases: [BROWSER_NAME], + changelog: [{ version: '0.1.0', prs: [139] }], }, [SENTRY_BROWSER_VERSION]: { brief: 'The version of the browser.', @@ -13133,6 +13648,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'browser.version', }, aliases: [BROWSER_VERSION], + changelog: [{ version: '0.1.0', prs: [139] }], }, [SENTRY_CANCELLATION_REASON]: { brief: 'The reason why a span ended early.', @@ -13142,6 +13658,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'document.hidden', + changelog: [{ version: '0.0.0' }], }, [SENTRY_CATEGORY]: { brief: @@ -13152,6 +13669,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'db', + changelog: [{ version: '0.4.0', prs: [218] }], }, [SENTRY_CLIENT_SAMPLE_RATE]: { brief: 'Rate at which a span was sampled in the SDK.', @@ -13161,6 +13679,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 0.5, + changelog: [{ version: '0.1.0', prs: [102] }], }, [SENTRY_DESCRIPTION]: { brief: 'The human-readable description of a span.', @@ -13170,6 +13689,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'index view query', + changelog: [{ version: '0.1.0', prs: [135] }], }, [SENTRY_DIST]: { brief: 'The sentry dist.', @@ -13179,6 +13699,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1.0', + changelog: [{ version: '0.0.0' }], }, [SENTRY_DOMAIN]: { brief: @@ -13189,6 +13710,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'example.com', + changelog: [{ version: '0.4.0', prs: [212] }], }, [SENTRY_DSC_ENVIRONMENT]: { brief: 'The environment from the dynamic sampling context.', @@ -13198,6 +13720,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'prod', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_PUBLIC_KEY]: { brief: 'The public key from the dynamic sampling context.', @@ -13207,6 +13730,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'c51734c603c4430eb57cb0a5728a479d', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_RELEASE]: { brief: 'The release identifier from the dynamic sampling context.', @@ -13216,6 +13740,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'frontend@e8211be71b214afab5b85de4b4c54be3714952bb', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_SAMPLED]: { brief: 'Whether the event was sampled according to the dynamic sampling context.', @@ -13225,6 +13750,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_SAMPLE_RATE]: { brief: 'The sample rate from the dynamic sampling context.', @@ -13234,6 +13760,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1.0', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_TRACE_ID]: { brief: 'The trace ID from the dynamic sampling context.', @@ -13243,6 +13770,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '047372980460430cbc78d9779df33a46', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_DSC_TRANSACTION]: { brief: 'The transaction name from the dynamic sampling context.', @@ -13252,6 +13780,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '/issues/errors-outages/', + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_ENVIRONMENT]: { brief: 'The sentry environment.', @@ -13262,6 +13791,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'production', aliases: [ENVIRONMENT], + changelog: [{ version: '0.0.0' }], }, [SENTRY_EXCLUSIVE_TIME]: { brief: 'The exclusive time duration of the span in milliseconds.', @@ -13271,6 +13801,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1234, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.3.0', prs: [160] }, { version: '0.0.0' }], }, [SENTRY_GRAPHQL_OPERATION]: { brief: 'Indicates the type of graphql operation, emitted by the Javascript SDK.', @@ -13280,6 +13811,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'getUserById', + changelog: [{ version: '0.3.1', prs: [190] }], }, [SENTRY_GROUP]: { brief: @@ -13289,6 +13821,7 @@ export const ATTRIBUTE_METADATA: Record = { isPii: 'false', }, isInOtel: false, + changelog: [{ version: '0.4.0', prs: [212] }], }, [SENTRY_HTTP_PREFETCH]: { brief: 'If an http request was a prefetch request.', @@ -13298,6 +13831,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.0.0' }], }, [SENTRY_IDLE_SPAN_FINISH_REASON]: { brief: 'The reason why an idle span ended early.', @@ -13307,6 +13841,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'idleTimeout', + changelog: [{ version: '0.0.0' }], }, [SENTRY_IS_REMOTE]: { brief: "Indicates whether a span's parent is remote.", @@ -13316,6 +13851,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.3.1', prs: [190] }], }, [SENTRY_KIND]: { brief: @@ -13326,6 +13862,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'server', + changelog: [{ version: '0.3.1', prs: [190] }], }, [SENTRY_MESSAGE_PARAMETER_KEY]: { brief: @@ -13336,6 +13873,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: "sentry.message.parameter.0='123'", + changelog: [{ version: '0.1.0', prs: [116] }], }, [SENTRY_MESSAGE_TEMPLATE]: { brief: 'The parameterized template string.', @@ -13345,6 +13883,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Hello, {name}!', + changelog: [{ version: '0.1.0', prs: [116] }], }, [SENTRY_MODULE_KEY]: { brief: 'A module that was loaded in the process. The key is the name of the module.', @@ -13355,6 +13894,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, hasDynamicSuffix: true, example: "sentry.module.brianium/paratest='v7.7.0'", + changelog: [{ version: '0.1.0', prs: [103] }], }, [SENTRY_NEXTJS_SSR_FUNCTION_ROUTE]: { brief: @@ -13366,6 +13906,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '/posts/[id]/layout', sdks: ['javascript'], + changelog: [{ version: '0.1.0', prs: [54, 106] }], }, [SENTRY_NEXTJS_SSR_FUNCTION_TYPE]: { brief: @@ -13377,6 +13918,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'generateMetadata', sdks: ['javascript'], + changelog: [{ version: '0.1.0', prs: [54, 106] }], }, [SENTRY_NORMALIZED_DB_QUERY]: { brief: 'The normalized version of `db.query.text`.', @@ -13386,6 +13928,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'SELECT .. FROM sentry_project WHERE (project_id = %s)', + changelog: [{ version: '0.3.1', prs: [194] }], }, [SENTRY_NORMALIZED_DB_QUERY_HASH]: { brief: 'The hash of `sentry.normalized_db_query`.', @@ -13394,6 +13937,7 @@ export const ATTRIBUTE_METADATA: Record = { isPii: 'false', }, isInOtel: false, + changelog: [{ version: '0.4.0', prs: [200] }], }, [SENTRY_NORMALIZED_DESCRIPTION]: { brief: @@ -13404,6 +13948,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'SELECT .. FROM sentry_project WHERE (project_id = %s)', + changelog: [{ version: '0.4.0', prs: [212] }], }, [SENTRY_OBSERVED_TIMESTAMP_NANOS]: { brief: 'The timestamp at which an envelope was received by Relay, in nanoseconds.', @@ -13413,6 +13958,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1544712660300000000', + changelog: [ + { version: '0.3.0', prs: [174] }, + { version: '0.2.0', prs: [137] }, + ], }, [SENTRY_OP]: { brief: 'The operation of a span.', @@ -13422,6 +13971,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'http.client', + changelog: [{ version: '0.0.0' }], }, [SENTRY_ORIGIN]: { brief: 'The origin of the instrumentation (e.g. span, log, etc.)', @@ -13431,6 +13981,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'auto.http.otel.fastify', + changelog: [{ version: '0.1.0', prs: [68] }, { version: '0.0.0' }], }, [SENTRY_PLATFORM]: { brief: 'The sdk platform that generated the event.', @@ -13440,6 +13991,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'php', + changelog: [{ version: '0.0.0' }], }, [SENTRY_PROFILER_ID]: { brief: 'The id of the currently running profiler (continuous profiling)', @@ -13449,6 +14001,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '18779b64dd35d1a538e7ce2dd2d3fad3', + changelog: [{ version: '0.4.0', prs: [242] }], }, [SENTRY_RELEASE]: { brief: 'The sentry release.', @@ -13459,6 +14012,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '7.0.0', aliases: [SERVICE_VERSION, RELEASE], + changelog: [{ version: '0.0.0' }], }, [SENTRY_REPLAY_ID]: { brief: 'The id of the sentry replay.', @@ -13469,6 +14023,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '123e4567e89b12d3a456426614174000', aliases: [REPLAY_ID], + changelog: [{ version: '0.0.0' }], }, [SENTRY_REPLAY_IS_BUFFERING]: { brief: @@ -13479,6 +14034,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.3.0', prs: [185] }], }, [SENTRY_SDK_INTEGRATIONS]: { brief: @@ -13489,6 +14045,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: ['InboundFilters', 'FunctionToString', 'BrowserApiErrors', 'Breadcrumbs'], + changelog: [{ version: '0.0.0', prs: [42] }], }, [SENTRY_SDK_NAME]: { brief: 'The sentry sdk name.', @@ -13498,6 +14055,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '@sentry/react', + changelog: [{ version: '0.0.0' }], }, [SENTRY_SDK_VERSION]: { brief: 'The sentry sdk version.', @@ -13507,6 +14065,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '7.0.0', + changelog: [{ version: '0.0.0' }], }, [SENTRY_SEGMENT_ID]: { brief: 'The segment ID of a span', @@ -13517,6 +14076,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: '051581bf3cb55c13', aliases: [_SENTRY_SEGMENT_ID], + changelog: [{ version: '0.1.0', prs: [107, 124] }], }, [_SENTRY_SEGMENT_ID]: { brief: 'The segment ID of a span', @@ -13530,6 +14090,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'sentry.segment.id', }, aliases: [SENTRY_SEGMENT_ID], + changelog: [{ version: '0.1.0', prs: [124] }], }, [SENTRY_SEGMENT_NAME]: { brief: 'The segment name of a span', @@ -13539,6 +14100,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'GET /user', + changelog: [{ version: '0.1.0', prs: [104] }], }, [SENTRY_SERVER_SAMPLE_RATE]: { brief: 'Rate at which a span was sampled in Relay.', @@ -13548,6 +14110,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 0.5, + changelog: [{ version: '0.1.0', prs: [102] }], }, [SENTRY_SPAN_SOURCE]: { brief: @@ -13558,6 +14121,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'route', + changelog: [{ version: '0.4.0', prs: [214] }, { version: '0.0.0' }], }, [SENTRY_STATUS_CODE]: { brief: @@ -13568,6 +14132,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 200, + changelog: [{ version: '0.4.0', prs: [223, 228] }], }, [SENTRY_STATUS_MESSAGE]: { brief: 'The from OTLP extracted status message.', @@ -13577,6 +14142,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'foobar', + changelog: [{ version: '0.3.1', prs: [190] }], }, [SENTRY_TRACE_PARENT_SPAN_ID]: { brief: @@ -13587,6 +14153,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'b0e6f15b45c36b12', + changelog: [{ version: '0.1.0', prs: [116] }], }, [SENTRY_TRANSACTION]: { brief: 'The sentry transaction (segment name).', @@ -13597,6 +14164,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'GET /', aliases: [TRANSACTION], + changelog: [{ version: '0.0.0' }], }, [SERVER_ADDRESS]: { brief: @@ -13608,6 +14176,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'example.com', aliases: [HTTP_SERVER_NAME, NET_HOST_NAME, HTTP_HOST], + changelog: [{ version: '0.1.0', prs: [108, 127] }, { version: '0.0.0' }], }, [SERVER_PORT]: { brief: 'Server port number.', @@ -13618,6 +14187,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 1337, aliases: [NET_HOST_PORT], + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [SERVICE_NAME]: { brief: 'Logical name of the service.', @@ -13627,6 +14197,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'omegastar', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [SERVICE_VERSION]: { brief: 'The version string of the service API or implementation. The format is not defined by these conventions.', @@ -13637,6 +14208,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '5.0.0', aliases: [SENTRY_RELEASE], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [THREAD_ID]: { brief: 'Current “managed” thread ID.', @@ -13646,6 +14218,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 56, + changelog: [{ version: '0.0.0' }], }, [THREAD_NAME]: { brief: 'Current thread name.', @@ -13655,6 +14228,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'main', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [TIMBER_TAG]: { brief: 'The log tag provided by the timber logging framework.', @@ -13665,6 +14239,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'MyTag', sdks: ['sentry.java.android'], + changelog: [{ version: '0.3.0', prs: [183] }], }, [TRANSACTION]: { brief: 'The sentry transaction (segment name).', @@ -13678,6 +14253,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'sentry.transaction', }, aliases: [SENTRY_TRANSACTION], + changelog: [{ version: '0.1.0', prs: [61, 127] }, { version: '0.0.0' }], }, [TYPE]: { brief: 'More granular type of the operation happening.', @@ -13688,6 +14264,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 'fetch', sdks: ['javascript-browser', 'javascript-node'], + changelog: [{ version: '0.0.0' }], }, [UI_COMPONENT_NAME]: { brief: 'The name of the associated component.', @@ -13697,6 +14274,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'HomeButton', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [UI_CONTRIBUTES_TO_TTFD]: { brief: 'Whether the span execution contributed to the TTFD (time to fully drawn) metric.', @@ -13706,6 +14284,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.0.0' }], }, [UI_CONTRIBUTES_TO_TTID]: { brief: 'Whether the span execution contributed to the TTID (time to initial display) metric.', @@ -13715,6 +14294,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: true, + changelog: [{ version: '0.0.0' }], }, [URL]: { brief: 'The URL of the resource that was fetched.', @@ -13729,6 +14309,7 @@ export const ATTRIBUTE_METADATA: Record = { }, aliases: [URL_FULL, HTTP_URL], sdks: ['javascript-browser', 'javascript-node'], + changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, [URL_DOMAIN]: { brief: @@ -13739,6 +14320,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'example.com', + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [URL_FRAGMENT]: { brief: @@ -13749,6 +14331,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'details', + changelog: [{ version: '0.0.0' }], }, [URL_FULL]: { brief: 'The URL of the resource that was fetched.', @@ -13759,6 +14342,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'https://example.com/test?foo=bar#buzz', aliases: [HTTP_URL, URL], + changelog: [{ version: '0.1.0', prs: [108] }, { version: '0.0.0' }], }, [URL_PATH]: { brief: 'The URI path component.', @@ -13768,6 +14352,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '/foo', + changelog: [{ version: '0.0.0' }], }, [URL_PATH_PARAMETER_KEY]: { brief: @@ -13780,6 +14365,7 @@ export const ATTRIBUTE_METADATA: Record = { hasDynamicSuffix: true, example: "url.path.parameter.id='123'", aliases: [PARAMS_KEY], + changelog: [{ version: '0.1.0', prs: [103] }], }, [URL_PORT]: { brief: 'Server port number.', @@ -13789,6 +14375,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 1337, + changelog: [{ version: '0.4.0', prs: [228] }, { version: '0.0.0' }], }, [URL_QUERY]: { brief: @@ -13801,6 +14388,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'foo=bar&bar=baz', + changelog: [{ version: '0.0.0' }], }, [URL_SCHEME]: { brief: 'The URI scheme component identifying the used protocol.', @@ -13811,6 +14399,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'https', aliases: [HTTP_SCHEME], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [URL_TEMPLATE]: { brief: 'The low-cardinality template of an absolute path reference.', @@ -13821,6 +14410,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: '/users/:id', aliases: [HTTP_ROUTE], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [USER_AGENT_ORIGINAL]: { brief: 'Value of the HTTP User-Agent header sent by the client.', @@ -13832,6 +14422,7 @@ export const ATTRIBUTE_METADATA: Record = { 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], + changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, [USER_EMAIL]: { brief: 'User email address.', @@ -13841,6 +14432,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'test@example.com', + changelog: [{ version: '0.0.0' }], }, [USER_FULL_NAME]: { brief: "User's full name.", @@ -13850,6 +14442,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'John Smith', + changelog: [{ version: '0.0.0' }], }, [USER_GEO_CITY]: { brief: 'Human readable city name.', @@ -13859,6 +14452,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Toronto', + changelog: [{ version: '0.0.0' }], }, [USER_GEO_COUNTRY_CODE]: { brief: 'Two-letter country code (ISO 3166-1 alpha-2).', @@ -13868,6 +14462,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'CA', + changelog: [{ version: '0.0.0' }], }, [USER_GEO_REGION]: { brief: 'Human readable region name or code.', @@ -13877,6 +14472,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Canada', + changelog: [{ version: '0.0.0' }], }, [USER_GEO_SUBDIVISION]: { brief: 'Human readable subdivision name.', @@ -13886,6 +14482,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'Ontario', + changelog: [{ version: '0.0.0' }], }, [USER_HASH]: { brief: 'Unique user hash to correlate information for a user in anonymized form.', @@ -13895,6 +14492,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: '8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d', + changelog: [{ version: '0.0.0' }], }, [USER_ID]: { brief: 'Unique identifier of the user.', @@ -13904,6 +14502,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'S-1-5-21-202424912787-2692429404-2351956786-1000', + changelog: [{ version: '0.0.0' }], }, [USER_IP_ADDRESS]: { brief: 'The IP address of the user.', @@ -13913,6 +14512,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '192.168.1.1', + changelog: [{ version: '0.1.0', prs: [75] }], }, [USER_NAME]: { brief: 'Short name or login/username of the user.', @@ -13922,6 +14522,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: 'j.smith', + changelog: [{ version: '0.0.0' }], }, [USER_ROLES]: { brief: 'Array of user roles at the time of the event.', @@ -13931,6 +14532,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: true, example: ['admin', 'editor'], + changelog: [{ version: '0.0.0' }], }, [VERCEL_BRANCH]: { brief: 'Git branch name for Vercel project', @@ -13940,6 +14542,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'main', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_BUILD_ID]: { brief: 'Identifier for the Vercel build (only present on build logs)', @@ -13949,6 +14552,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'bld_cotnkcr76', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_DEPLOYMENT_ID]: { brief: 'Identifier for the Vercel deployment', @@ -13958,6 +14562,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'dpl_233NRGRjVZX1caZrXWtz5g1TAksD', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_DESTINATION]: { brief: 'Origin of the external content in Vercel (only on external logs)', @@ -13967,6 +14572,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'https://vitals.vercel-insights.com/v1', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_EDGE_TYPE]: { brief: 'Type of edge runtime in Vercel', @@ -13976,6 +14582,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'edge-function', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_ENTRYPOINT]: { brief: 'Entrypoint for the request in Vercel', @@ -13985,6 +14592,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'api/index.js', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_EXECUTION_REGION]: { brief: 'Region where the request is executed', @@ -13994,6 +14602,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'sfo1', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_ID]: { brief: 'Unique identifier for the log entry in Vercel', @@ -14003,6 +14612,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '1573817187330377061717300000', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_JA3_DIGEST]: { brief: 'JA3 fingerprint digest of Vercel request', @@ -14012,6 +14622,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_JA4_DIGEST]: { brief: 'JA4 fingerprint digest', @@ -14021,6 +14632,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 't13d1516h2_8daaf6152771_02713d6af862', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_LOG_TYPE]: { brief: 'Vercel log output type', @@ -14030,6 +14642,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'stdout', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROJECT_ID]: { brief: 'Identifier for the Vercel project', @@ -14039,6 +14652,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'gdufoJxB6b9b1fEqr1jUtFkyavUU', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROJECT_NAME]: { brief: 'Name of the Vercel project', @@ -14048,6 +14662,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'my-app', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_CACHE_ID]: { brief: 'Original request ID when request is served from cache', @@ -14057,6 +14672,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'pdx1::v8g4b-1744143786684-93dafbc0f70d', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_CLIENT_IP]: { brief: 'Client IP address', @@ -14066,6 +14682,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '120.75.16.101', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_HOST]: { brief: 'Hostname of the request', @@ -14075,6 +14692,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'test.vercel.app', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_LAMBDA_REGION]: { brief: 'Region where lambda function executed', @@ -14084,6 +14702,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'sfo1', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_METHOD]: { brief: 'HTTP method of the request', @@ -14093,6 +14712,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'GET', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_PATH]: { brief: 'Request path with query parameters', @@ -14102,6 +14722,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '/dynamic/some-value.json?route=some-value', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_PATH_TYPE]: { brief: 'How the request was served based on its path and project configuration', @@ -14111,6 +14732,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'func', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_PATH_TYPE_VARIANT]: { brief: 'Variant of the path type', @@ -14120,6 +14742,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'api', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_REFERER]: { brief: 'Referer of the request', @@ -14129,6 +14752,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '*.vercel.app', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_REGION]: { brief: 'Region where the request is processed', @@ -14138,6 +14762,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'sfo1', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_RESPONSE_BYTE_SIZE]: { brief: 'Size of the response in bytes', @@ -14147,6 +14772,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1024, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.2.0', prs: [163] }, + ], }, [VERCEL_PROXY_SCHEME]: { brief: 'Protocol of the request', @@ -14156,6 +14785,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'https', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_STATUS_CODE]: { brief: 'HTTP status code of the proxy request', @@ -14165,6 +14795,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 200, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.2.0', prs: [163] }, + ], }, [VERCEL_PROXY_TIMESTAMP]: { brief: 'Unix timestamp when the proxy request was made', @@ -14174,6 +14808,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 1573817250172, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.2.0', prs: [163] }, + ], }, [VERCEL_PROXY_USER_AGENT]: { brief: 'User agent strings of the request', @@ -14183,6 +14821,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: ['Mozilla/5.0...'], + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_VERCEL_CACHE]: { brief: 'Cache status sent to the browser', @@ -14192,6 +14831,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'REVALIDATED', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_VERCEL_ID]: { brief: 'Vercel-specific identifier', @@ -14201,6 +14841,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'sfo1::abc123', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_WAF_ACTION]: { brief: 'Action taken by firewall rules', @@ -14210,6 +14851,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'deny', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_PROXY_WAF_RULE_ID]: { brief: 'ID of the firewall rule that matched', @@ -14219,6 +14861,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'rule_gAHz8jtSB1Gy', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_REQUEST_ID]: { brief: 'Identifier of the Vercel request', @@ -14228,6 +14871,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: '643af4e3-975a-4cc7-9e7a-1eda11539d90', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_SOURCE]: { brief: 'Origin of the Vercel log (build, edge, lambda, static, external, or firewall)', @@ -14237,6 +14881,7 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 'build', + changelog: [{ version: '0.2.0', prs: [163] }], }, [VERCEL_STATUS_CODE]: { brief: 'HTTP status code of the request (-1 means no response returned and the lambda crashed)', @@ -14246,6 +14891,10 @@ export const ATTRIBUTE_METADATA: Record = { }, isInOtel: false, example: 200, + changelog: [ + { version: '0.4.0', prs: [228] }, + { version: '0.2.0', prs: [163] }, + ], }, }; diff --git a/model/attributes/ai/ai__citations.json b/model/attributes/ai/ai__citations.json index 84947b97..8c9f0501 100644 --- a/model/attributes/ai/ai__citations.json +++ b/model/attributes/ai/ai__citations.json @@ -9,5 +9,15 @@ "example": ["Citation 1", "Citation 2"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__completion_tokens__used.json b/model/attributes/ai/ai__completion_tokens__used.json index 04dc514e..b576bac6 100644 --- a/model/attributes/ai/ai__completion_tokens__used.json +++ b/model/attributes/ai/ai__completion_tokens__used.json @@ -12,5 +12,18 @@ "deprecation": { "_status": null, "replacement": "gen_ai.usage.output_tokens" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__documents.json b/model/attributes/ai/ai__documents.json index a49a741a..1dc25189 100644 --- a/model/attributes/ai/ai__documents.json +++ b/model/attributes/ai/ai__documents.json @@ -9,5 +9,15 @@ "example": ["document1.txt", "document2.pdf"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__finish_reason.json b/model/attributes/ai/ai__finish_reason.json index 4d7730f2..67b35b6a 100644 --- a/model/attributes/ai/ai__finish_reason.json +++ b/model/attributes/ai/ai__finish_reason.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "gen_ai.response.finish_reason" }, - "alias": ["gen_ai.response.finish_reasons"] + "alias": ["gen_ai.response.finish_reasons"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] } diff --git a/model/attributes/ai/ai__frequency_penalty.json b/model/attributes/ai/ai__frequency_penalty.json index 9ff31202..449092c8 100644 --- a/model/attributes/ai/ai__frequency_penalty.json +++ b/model/attributes/ai/ai__frequency_penalty.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.request.frequency_penalty" }, - "alias": ["gen_ai.request.frequency_penalty"] + "alias": ["gen_ai.request.frequency_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__function_call.json b/model/attributes/ai/ai__function_call.json index 6d8eb366..68c9c2f9 100644 --- a/model/attributes/ai/ai__function_call.json +++ b/model/attributes/ai/ai__function_call.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "gen_ai.tool.name" }, - "alias": ["gen_ai.tool.name"] + "alias": ["gen_ai.tool.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__generation_id.json b/model/attributes/ai/ai__generation_id.json index e32e7cf4..78474c8a 100644 --- a/model/attributes/ai/ai__generation_id.json +++ b/model/attributes/ai/ai__generation_id.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "gen_ai.response.id" }, - "alias": ["gen_ai.response.id"] + "alias": ["gen_ai.response.id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] } diff --git a/model/attributes/ai/ai__input_messages.json b/model/attributes/ai/ai__input_messages.json index 0a9a3304..eaf43add 100644 --- a/model/attributes/ai/ai__input_messages.json +++ b/model/attributes/ai/ai__input_messages.json @@ -12,5 +12,14 @@ "deprecation": { "_status": null, "replacement": "gen_ai.request.messages" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [65, 119] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__is_search_required.json b/model/attributes/ai/ai__is_search_required.json index fa71ca3b..57334139 100644 --- a/model/attributes/ai/ai__is_search_required.json +++ b/model/attributes/ai/ai__is_search_required.json @@ -9,5 +9,15 @@ "example": false, "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__metadata.json b/model/attributes/ai/ai__metadata.json index e6da5be4..113e82c3 100644 --- a/model/attributes/ai/ai__metadata.json +++ b/model/attributes/ai/ai__metadata.json @@ -9,5 +9,15 @@ "example": "{\"user_id\": 123, \"session_id\": \"abc123\"}", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] } diff --git a/model/attributes/ai/ai__model__provider.json b/model/attributes/ai/ai__model__provider.json index 89e5f051..632297ae 100644 --- a/model/attributes/ai/ai__model__provider.json +++ b/model/attributes/ai/ai__model__provider.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.provider.name" }, - "alias": ["gen_ai.provider.name", "gen_ai.system"] + "alias": ["gen_ai.provider.name", "gen_ai.system"], + "changelog": [ + { + "version": "0.4.0", + "prs": [253] + }, + { + "version": "0.1.0", + "prs": [57, 61, 108, 127] + } + ] } diff --git a/model/attributes/ai/ai__model_id.json b/model/attributes/ai/ai__model_id.json index ce2afa08..2d1c463d 100644 --- a/model/attributes/ai/ai__model_id.json +++ b/model/attributes/ai/ai__model_id.json @@ -12,5 +12,14 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.model" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__pipeline__name.json b/model/attributes/ai/ai__pipeline__name.json index 4d9c9777..384af716 100644 --- a/model/attributes/ai/ai__pipeline__name.json +++ b/model/attributes/ai/ai__pipeline__name.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "gen_ai.pipeline.name" }, - "alias": ["gen_ai.pipeline.name"] + "alias": ["gen_ai.pipeline.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [53, 76, 108, 127] + } + ] } diff --git a/model/attributes/ai/ai__preamble.json b/model/attributes/ai/ai__preamble.json index 0b110c8e..6c06fb5e 100644 --- a/model/attributes/ai/ai__preamble.json +++ b/model/attributes/ai/ai__preamble.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.system_instructions" }, - "alias": ["gen_ai.system_instructions"] + "alias": ["gen_ai.system_instructions"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__presence_penalty.json b/model/attributes/ai/ai__presence_penalty.json index 78e187f7..e9eebb38 100644 --- a/model/attributes/ai/ai__presence_penalty.json +++ b/model/attributes/ai/ai__presence_penalty.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.request.presence_penalty" }, - "alias": ["gen_ai.request.presence_penalty"] + "alias": ["gen_ai.request.presence_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__prompt_tokens__used.json b/model/attributes/ai/ai__prompt_tokens__used.json index e33ef45f..06cdb154 100644 --- a/model/attributes/ai/ai__prompt_tokens__used.json +++ b/model/attributes/ai/ai__prompt_tokens__used.json @@ -12,5 +12,18 @@ "deprecation": { "_status": null, "replacement": "gen_ai.usage.input_tokens" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__raw_prompting.json b/model/attributes/ai/ai__raw_prompting.json index 5ff56539..1d45951e 100644 --- a/model/attributes/ai/ai__raw_prompting.json +++ b/model/attributes/ai/ai__raw_prompting.json @@ -9,5 +9,15 @@ "example": true, "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__response_format.json b/model/attributes/ai/ai__response_format.json index 86529268..746ab085 100644 --- a/model/attributes/ai/ai__response_format.json +++ b/model/attributes/ai/ai__response_format.json @@ -9,5 +9,15 @@ "example": "json_object", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] } diff --git a/model/attributes/ai/ai__responses.json b/model/attributes/ai/ai__responses.json index 276c79d9..7ee72897 100644 --- a/model/attributes/ai/ai__responses.json +++ b/model/attributes/ai/ai__responses.json @@ -11,5 +11,14 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.text" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [65, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__search_queries.json b/model/attributes/ai/ai__search_queries.json index 77468b9e..aa0e3a86 100644 --- a/model/attributes/ai/ai__search_queries.json +++ b/model/attributes/ai/ai__search_queries.json @@ -9,5 +9,15 @@ "example": ["climate change effects", "renewable energy"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__search_results.json b/model/attributes/ai/ai__search_results.json index 4b668e39..ca65bf9e 100644 --- a/model/attributes/ai/ai__search_results.json +++ b/model/attributes/ai/ai__search_results.json @@ -9,5 +9,15 @@ "example": ["search_result_1, search_result_2"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__seed.json b/model/attributes/ai/ai__seed.json index 4e26c21d..a14a75f6 100644 --- a/model/attributes/ai/ai__seed.json +++ b/model/attributes/ai/ai__seed.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "gen_ai.request.seed" }, - "alias": ["gen_ai.request.seed"] + "alias": ["gen_ai.request.seed"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] } diff --git a/model/attributes/ai/ai__streaming.json b/model/attributes/ai/ai__streaming.json index f20b5a8e..6d5eda59 100644 --- a/model/attributes/ai/ai__streaming.json +++ b/model/attributes/ai/ai__streaming.json @@ -12,5 +12,14 @@ "_status": null, "replacement": "gen_ai.response.streaming" }, - "alias": ["gen_ai.response.streaming"] + "alias": ["gen_ai.response.streaming"], + "changelog": [ + { + "version": "0.1.0", + "prs": [76, 108] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__tags.json b/model/attributes/ai/ai__tags.json index 583de564..28487e1b 100644 --- a/model/attributes/ai/ai__tags.json +++ b/model/attributes/ai/ai__tags.json @@ -9,5 +9,15 @@ "example": "{\"executed_function\": \"add_integers\"}", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] } diff --git a/model/attributes/ai/ai__temperature.json b/model/attributes/ai/ai__temperature.json index 1df0c482..1b0d72e7 100644 --- a/model/attributes/ai/ai__temperature.json +++ b/model/attributes/ai/ai__temperature.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.request.temperature" }, - "alias": ["gen_ai.request.temperature"] + "alias": ["gen_ai.request.temperature"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__texts.json b/model/attributes/ai/ai__texts.json index 4ce4fce8..8c36f4c6 100644 --- a/model/attributes/ai/ai__texts.json +++ b/model/attributes/ai/ai__texts.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.input.messages" }, - "alias": ["gen_ai.input.messages"] + "alias": ["gen_ai.input.messages"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/ai/ai__tool_calls.json b/model/attributes/ai/ai__tool_calls.json index 0a3faf98..d769f419 100644 --- a/model/attributes/ai/ai__tool_calls.json +++ b/model/attributes/ai/ai__tool_calls.json @@ -10,5 +10,11 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.tool_calls" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 65] + } + ] } diff --git a/model/attributes/ai/ai__tools.json b/model/attributes/ai/ai__tools.json index c511aaf0..11e7be1b 100644 --- a/model/attributes/ai/ai__tools.json +++ b/model/attributes/ai/ai__tools.json @@ -10,5 +10,11 @@ "deprecation": { "_status": null, "replacement": "gen_ai.request.available_tools" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 65, 127] + } + ] } diff --git a/model/attributes/ai/ai__top_k.json b/model/attributes/ai/ai__top_k.json index 15580fa9..5135394c 100644 --- a/model/attributes/ai/ai__top_k.json +++ b/model/attributes/ai/ai__top_k.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.request.top_k" }, - "alias": ["gen_ai.request.top_k"] + "alias": ["gen_ai.request.top_k"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__top_p.json b/model/attributes/ai/ai__top_p.json index ff978904..990ad95d 100644 --- a/model/attributes/ai/ai__top_p.json +++ b/model/attributes/ai/ai__top_p.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.request.top_p" }, - "alias": ["gen_ai.request.top_p"] + "alias": ["gen_ai.request.top_p"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] } diff --git a/model/attributes/ai/ai__total_cost.json b/model/attributes/ai/ai__total_cost.json index 28950cca..f491f3fd 100644 --- a/model/attributes/ai/ai__total_cost.json +++ b/model/attributes/ai/ai__total_cost.json @@ -11,5 +11,19 @@ "_status": null, "replacement": "gen_ai.cost.total_tokens" }, - "alias": ["gen_ai.cost.total_tokens"] + "alias": ["gen_ai.cost.total_tokens"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [53] + } + ] } diff --git a/model/attributes/ai/ai__total_tokens__used.json b/model/attributes/ai/ai__total_tokens__used.json index 6dd7f1b4..65c6217a 100644 --- a/model/attributes/ai/ai__total_tokens__used.json +++ b/model/attributes/ai/ai__total_tokens__used.json @@ -12,5 +12,18 @@ "_status": null, "replacement": "gen_ai.usage.total_tokens" }, - "alias": ["gen_ai.usage.total_tokens"] + "alias": ["gen_ai.usage.total_tokens"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61, 108] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ai/ai__warnings.json b/model/attributes/ai/ai__warnings.json index a00899b6..a3b39441 100644 --- a/model/attributes/ai/ai__warnings.json +++ b/model/attributes/ai/ai__warnings.json @@ -9,5 +9,15 @@ "example": ["Token limit exceeded"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] } diff --git a/model/attributes/app_start_type.json b/model/attributes/app_start_type.json index 80674bca..a55e2192 100644 --- a/model/attributes/app_start_type.json +++ b/model/attributes/app_start_type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "cold" + "example": "cold", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/blocked_main_thread.json b/model/attributes/blocked_main_thread.json index 0c319b88..177539e9 100644 --- a/model/attributes/blocked_main_thread.json +++ b/model/attributes/blocked_main_thread.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/browser/browser__name.json b/model/attributes/browser/browser__name.json index 7dd7e15d..ecd4feaf 100644 --- a/model/attributes/browser/browser__name.json +++ b/model/attributes/browser/browser__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "Chrome", - "alias": ["sentry.browser.name"] + "alias": ["sentry.browser.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127, 139] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/browser/browser__report__type.json b/model/attributes/browser/browser__report__type.json index ffc1e243..fe08150e 100644 --- a/model/attributes/browser/browser__report__type.json +++ b/model/attributes/browser/browser__report__type.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "network-error" + "example": "network-error", + "changelog": [ + { + "version": "0.1.0", + "prs": [68, 127] + } + ] } diff --git a/model/attributes/browser/browser__script__invoker.json b/model/attributes/browser/browser__script__invoker.json index e745b991..d7b563f7 100644 --- a/model/attributes/browser/browser__script__invoker.json +++ b/model/attributes/browser/browser__script__invoker.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "Window.requestAnimationFrame", - "sdks": ["browser"] + "sdks": ["browser"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/browser/browser__script__invoker_type.json b/model/attributes/browser/browser__script__invoker_type.json index 51923801..a30804a4 100644 --- a/model/attributes/browser/browser__script__invoker_type.json +++ b/model/attributes/browser/browser__script__invoker_type.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "event-listener", - "sdks": ["browser"] + "sdks": ["browser"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/browser/browser__script__source_char_position.json b/model/attributes/browser/browser__script__source_char_position.json index bafd92f1..1b6facb4 100644 --- a/model/attributes/browser/browser__script__source_char_position.json +++ b/model/attributes/browser/browser__script__source_char_position.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 678, - "sdks": ["browser"] + "sdks": ["browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/browser/browser__version.json b/model/attributes/browser/browser__version.json index 003a0830..a363891a 100644 --- a/model/attributes/browser/browser__version.json +++ b/model/attributes/browser/browser__version.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "120.0.6099.130", - "alias": ["sentry.browser.version"] + "alias": ["sentry.browser.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [59, 127, 139] + } + ] } diff --git a/model/attributes/cache/cache__hit.json b/model/attributes/cache/cache__hit.json index 1ef443cd..9d9e9eb0 100644 --- a/model/attributes/cache/cache__hit.json +++ b/model/attributes/cache/cache__hit.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": true, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cache/cache__item_size.json b/model/attributes/cache/cache__item_size.json index 6ac7b258..1f6cd339 100644 --- a/model/attributes/cache/cache__item_size.json +++ b/model/attributes/cache/cache__item_size.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 58 + "example": 58, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cache/cache__key.json b/model/attributes/cache/cache__key.json index 6fef6301..a9e75095 100644 --- a/model/attributes/cache/cache__key.json +++ b/model/attributes/cache/cache__key.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": ["my-cache-key", "my-other-cache-key"], - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cache/cache__operation.json b/model/attributes/cache/cache__operation.json index 19cfcecc..b4e91e02 100644 --- a/model/attributes/cache/cache__operation.json +++ b/model/attributes/cache/cache__operation.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "get", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cache/cache__ttl.json b/model/attributes/cache/cache__ttl.json index ef0276bf..3ecd7f75 100644 --- a/model/attributes/cache/cache__ttl.json +++ b/model/attributes/cache/cache__ttl.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 120, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/channel.json b/model/attributes/channel.json index 7c248067..7e4abe9e 100644 --- a/model/attributes/channel.json +++ b/model/attributes/channel.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "mail", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/client/client__address.json b/model/attributes/client/client__address.json index eb2e7e6a..e244aa93 100644 --- a/model/attributes/client/client__address.json +++ b/model/attributes/client/client__address.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "example.com", - "alias": ["http.client_ip"] + "alias": ["http.client_ip"], + "changelog": [ + { + "version": "0.1.0", + "prs": [106, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/client/client__port.json b/model/attributes/client/client__port.json index d8bd2fbb..a1cf9799 100644 --- a/model/attributes/client/client__port.json +++ b/model/attributes/client/client__port.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": 5432 + "example": 5432, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cloudflare/cloudflare__d1__duration.json b/model/attributes/cloudflare/cloudflare__d1__duration.json index 96bb2a10..78d2a953 100644 --- a/model/attributes/cloudflare/cloudflare__d1__duration.json +++ b/model/attributes/cloudflare/cloudflare__d1__duration.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 543, - "sdks": ["javascript-cloudflare"] + "sdks": ["javascript-cloudflare"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cloudflare/cloudflare__d1__rows_read.json b/model/attributes/cloudflare/cloudflare__d1__rows_read.json index b8e81aad..2d1f08dc 100644 --- a/model/attributes/cloudflare/cloudflare__d1__rows_read.json +++ b/model/attributes/cloudflare/cloudflare__d1__rows_read.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 12, - "sdks": ["javascript-cloudflare"] + "sdks": ["javascript-cloudflare"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/cloudflare/cloudflare__d1__rows_written.json b/model/attributes/cloudflare/cloudflare__d1__rows_written.json index 86213964..dd0f66f3 100644 --- a/model/attributes/cloudflare/cloudflare__d1__rows_written.json +++ b/model/attributes/cloudflare/cloudflare__d1__rows_written.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 12, - "sdks": ["javascript-cloudflare"] + "sdks": ["javascript-cloudflare"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__file__path.json b/model/attributes/code/code__file__path.json index 0ebee7e3..c66f7ddb 100644 --- a/model/attributes/code/code__file__path.json +++ b/model/attributes/code/code__file__path.json @@ -7,5 +7,10 @@ }, "is_in_otel": true, "example": "/app/myapplication/http/handler/server.py", - "alias": ["code.filepath"] + "alias": ["code.filepath"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__filepath.json b/model/attributes/code/code__filepath.json index 8ae97506..f1e8a388 100644 --- a/model/attributes/code/code__filepath.json +++ b/model/attributes/code/code__filepath.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "code.file.path" }, - "alias": ["code.file.path"] + "alias": ["code.file.path"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__function.json b/model/attributes/code/code__function.json index 0b5462a6..4b89de8a 100644 --- a/model/attributes/code/code__function.json +++ b/model/attributes/code/code__function.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "code.function.name" }, - "alias": ["code.function.name"] + "alias": ["code.function.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__function__name.json b/model/attributes/code/code__function__name.json index f51b6972..16cc534d 100644 --- a/model/attributes/code/code__function__name.json +++ b/model/attributes/code/code__function__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "server_request", - "alias": ["code.function"] + "alias": ["code.function"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__line__number.json b/model/attributes/code/code__line__number.json index 2ac54618..7343f336 100644 --- a/model/attributes/code/code__line__number.json +++ b/model/attributes/code/code__line__number.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 42, - "alias": ["code.lineno"] + "alias": ["code.lineno"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__lineno.json b/model/attributes/code/code__lineno.json index a8cfdcd8..24e199d7 100644 --- a/model/attributes/code/code__lineno.json +++ b/model/attributes/code/code__lineno.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "code.line.number" }, - "alias": ["code.line.number"] + "alias": ["code.line.number"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61, 108] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/code/code__namespace.json b/model/attributes/code/code__namespace.json index 5913e798..08bef67c 100644 --- a/model/attributes/code/code__namespace.json +++ b/model/attributes/code/code__namespace.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "code.function.name", "reason": "code.function.name should include the namespace." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/culture/culture__calendar.json b/model/attributes/culture/culture__calendar.json index 45f949a1..b53c080c 100644 --- a/model/attributes/culture/culture__calendar.json +++ b/model/attributes/culture/culture__calendar.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "GregorianCalendar" + "example": "GregorianCalendar", + "changelog": [ + { + "version": "0.4.0", + "prs": [243] + } + ] } diff --git a/model/attributes/culture/culture__display_name.json b/model/attributes/culture/culture__display_name.json index c08ba493..29178c8a 100644 --- a/model/attributes/culture/culture__display_name.json +++ b/model/attributes/culture/culture__display_name.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "English (United States)" + "example": "English (United States)", + "changelog": [ + { + "version": "0.4.0", + "prs": [243] + } + ] } diff --git a/model/attributes/culture/culture__is_24_hour_format.json b/model/attributes/culture/culture__is_24_hour_format.json index 10448c92..4c01dc7c 100644 --- a/model/attributes/culture/culture__is_24_hour_format.json +++ b/model/attributes/culture/culture__is_24_hour_format.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.4.0", + "prs": [243] + } + ] } diff --git a/model/attributes/culture/culture__locale.json b/model/attributes/culture/culture__locale.json index 0142bac0..e3858baa 100644 --- a/model/attributes/culture/culture__locale.json +++ b/model/attributes/culture/culture__locale.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "en-US" + "example": "en-US", + "changelog": [ + { + "version": "0.4.0", + "prs": [243] + } + ] } diff --git a/model/attributes/culture/culture__timezone.json b/model/attributes/culture/culture__timezone.json index 5edcc8bb..204f34ff 100644 --- a/model/attributes/culture/culture__timezone.json +++ b/model/attributes/culture/culture__timezone.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Europe/Vienna" + "example": "Europe/Vienna", + "changelog": [ + { + "version": "0.4.0", + "prs": [243] + } + ] } diff --git a/model/attributes/db/db__collection__name.json b/model/attributes/db/db__collection__name.json index 08bedc3d..86895425 100644 --- a/model/attributes/db/db__collection__name.json +++ b/model/attributes/db/db__collection__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "users" + "example": "users", + "changelog": [ + { + "version": "0.1.0", + "prs": [106, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__name.json b/model/attributes/db/db__name.json index 0867d8ab..b18dc93f 100644 --- a/model/attributes/db/db__name.json +++ b/model/attributes/db/db__name.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "db.namespace" }, - "alias": ["db.namespace"] + "alias": ["db.namespace"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__namespace.json b/model/attributes/db/db__namespace.json index e774dbb7..af1adaae 100644 --- a/model/attributes/db/db__namespace.json +++ b/model/attributes/db/db__namespace.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "customers", - "alias": ["db.name"] + "alias": ["db.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__operation.json b/model/attributes/db/db__operation.json index 2af1185b..29ec22b9 100644 --- a/model/attributes/db/db__operation.json +++ b/model/attributes/db/db__operation.json @@ -11,5 +11,18 @@ "_status": "normalize", "replacement": "db.operation.name" }, - "alias": ["db.operation.name"] + "alias": ["db.operation.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__operation__name.json b/model/attributes/db/db__operation__name.json index da08597c..a334b3db 100644 --- a/model/attributes/db/db__operation__name.json +++ b/model/attributes/db/db__operation__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "SELECT", - "alias": ["db.operation"] + "alias": ["db.operation"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__query__parameter__[key].json b/model/attributes/db/db__query__parameter__[key].json index 4128072c..186c05c1 100644 --- a/model/attributes/db/db__query__parameter__[key].json +++ b/model/attributes/db/db__query__parameter__[key].json @@ -7,5 +7,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "db.query.parameter.foo='123'" + "example": "db.query.parameter.foo='123'", + "changelog": [ + { + "version": "0.1.0", + "prs": [103, 127] + } + ] } diff --git a/model/attributes/db/db__query__summary.json b/model/attributes/db/db__query__summary.json index bf74cc99..e66a761d 100644 --- a/model/attributes/db/db__query__summary.json +++ b/model/attributes/db/db__query__summary.json @@ -6,5 +6,18 @@ "key": "maybe" }, "is_in_otel": true, - "example": "SELECT users;" + "example": "SELECT users;", + "changelog": [ + { + "version": "0.4.0", + "prs": [208] + }, + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__query__text.json b/model/attributes/db/db__query__text.json index 7712fb54..a7dd7b64 100644 --- a/model/attributes/db/db__query__text.json +++ b/model/attributes/db/db__query__text.json @@ -7,5 +7,18 @@ }, "is_in_otel": true, "example": "SELECT * FROM users WHERE id = $1", - "alias": ["db.statement"] + "alias": ["db.statement"], + "changelog": [ + { + "version": "0.4.0", + "prs": [208] + }, + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__redis__connection.json b/model/attributes/db/db__redis__connection.json index a2a45794..be0d455a 100644 --- a/model/attributes/db/db__redis__connection.json +++ b/model/attributes/db/db__redis__connection.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "my-redis-instance", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__redis__parameters.json b/model/attributes/db/db__redis__parameters.json index 9df4d9a4..2e524929 100644 --- a/model/attributes/db/db__redis__parameters.json +++ b/model/attributes/db/db__redis__parameters.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": ["test", "*"], - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__sql__bindings.json b/model/attributes/db/db__sql__bindings.json index 9ef0558d..f956dc6f 100644 --- a/model/attributes/db/db__sql__bindings.json +++ b/model/attributes/db/db__sql__bindings.json @@ -12,5 +12,14 @@ "reason": "Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter.." }, "example": ["1", "foo"], - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__statement.json b/model/attributes/db/db__statement.json index 477156ec..80212f75 100644 --- a/model/attributes/db/db__statement.json +++ b/model/attributes/db/db__statement.json @@ -11,5 +11,18 @@ "_status": "normalize", "replacement": "db.query.text" }, - "alias": ["db.query.text"] + "alias": ["db.query.text"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__system.json b/model/attributes/db/db__system.json index cc5d7e09..178ca7b7 100644 --- a/model/attributes/db/db__system.json +++ b/model/attributes/db/db__system.json @@ -11,5 +11,18 @@ "_status": "backfill", "replacement": "db.system.name" }, - "alias": ["db.system.name"] + "alias": ["db.system.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199, 224] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__system__name.json b/model/attributes/db/db__system__name.json index 87a8a578..a08f7d83 100644 --- a/model/attributes/db/db__system__name.json +++ b/model/attributes/db/db__system__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "postgresql", - "alias": ["db.system"] + "alias": ["db.system"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/db/db__user.json b/model/attributes/db/db__user.json index 1b673f8f..93076426 100644 --- a/model/attributes/db/db__user.json +++ b/model/attributes/db/db__user.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "fancy_user" + "example": "fancy_user", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/device/device__brand.json b/model/attributes/device/device__brand.json index a44f83f4..aeee4833 100644 --- a/model/attributes/device/device__brand.json +++ b/model/attributes/device/device__brand.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Apple" + "example": "Apple", + "changelog": [ + { + "version": "0.1.0", + "prs": [116, 127] + } + ] } diff --git a/model/attributes/device/device__family.json b/model/attributes/device/device__family.json index 4a6b2498..5e9e2cc1 100644 --- a/model/attributes/device/device__family.json +++ b/model/attributes/device/device__family.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "iPhone" + "example": "iPhone", + "changelog": [ + { + "version": "0.1.0", + "prs": [116, 127] + } + ] } diff --git a/model/attributes/device/device__model.json b/model/attributes/device/device__model.json index 9d767853..e8996a51 100644 --- a/model/attributes/device/device__model.json +++ b/model/attributes/device/device__model.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "iPhone 15 Pro Max" + "example": "iPhone 15 Pro Max", + "changelog": [ + { + "version": "0.1.0", + "prs": [116, 127] + } + ] } diff --git a/model/attributes/environment.json b/model/attributes/environment.json index 3bca0788..242d8097 100644 --- a/model/attributes/environment.json +++ b/model/attributes/environment.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "sentry.environment" }, - "alias": ["sentry.environment"] + "alias": ["sentry.environment"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/error/error__type.json b/model/attributes/error/error__type.json index f9140ad9..84b4ee6a 100644 --- a/model/attributes/error/error__type.json +++ b/model/attributes/error/error__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "timeout" + "example": "timeout", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/event/event__id.json b/model/attributes/event/event__id.json index 5e347dee..de0ab31a 100644 --- a/model/attributes/event/event__id.json +++ b/model/attributes/event/event__id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": 1234567890 + "example": 1234567890, + "changelog": [ + { + "version": "0.1.0", + "prs": [101] + } + ] } diff --git a/model/attributes/event/event__name.json b/model/attributes/event/event__name.json index beb67ffa..aa97e704 100644 --- a/model/attributes/event/event__name.json +++ b/model/attributes/event/event__name.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Process Payload" + "example": "Process Payload", + "changelog": [ + { + "version": "0.1.0", + "prs": [101, 127] + } + ] } diff --git a/model/attributes/exception/exception__escaped.json b/model/attributes/exception/exception__escaped.json index de791311..4d81ad8e 100644 --- a/model/attributes/exception/exception__escaped.json +++ b/model/attributes/exception/exception__escaped.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": true, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/exception/exception__message.json b/model/attributes/exception/exception__message.json index 57dd2082..16eddebb 100644 --- a/model/attributes/exception/exception__message.json +++ b/model/attributes/exception/exception__message.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "ENOENT: no such file or directory" + "example": "ENOENT: no such file or directory", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/exception/exception__stacktrace.json b/model/attributes/exception/exception__stacktrace.json index 11b7fd01..f788ba30 100644 --- a/model/attributes/exception/exception__stacktrace.json +++ b/model/attributes/exception/exception__stacktrace.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": 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)" + "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" + } + ] } diff --git a/model/attributes/exception/exception__type.json b/model/attributes/exception/exception__type.json index d3accb3f..9db25476 100644 --- a/model/attributes/exception/exception__type.json +++ b/model/attributes/exception/exception__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "OSError" + "example": "OSError", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/faas/faas__coldstart.json b/model/attributes/faas/faas__coldstart.json index 278abfb0..7c99c2b2 100644 --- a/model/attributes/faas/faas__coldstart.json +++ b/model/attributes/faas/faas__coldstart.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": true, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/faas/faas__cron.json b/model/attributes/faas/faas__cron.json index 88d4bde5..e4dbf36a 100644 --- a/model/attributes/faas/faas__cron.json +++ b/model/attributes/faas/faas__cron.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "0/5 * * * ? *" + "example": "0/5 * * * ? *", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/faas/faas__time.json b/model/attributes/faas/faas__time.json index d691488d..c1bc32c3 100644 --- a/model/attributes/faas/faas__time.json +++ b/model/attributes/faas/faas__time.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "2020-01-23T13:47:06Z" + "example": "2020-01-23T13:47:06Z", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/faas/faas__trigger.json b/model/attributes/faas/faas__trigger.json index 503684db..b32aa2fa 100644 --- a/model/attributes/faas/faas__trigger.json +++ b/model/attributes/faas/faas__trigger.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "timer" + "example": "timer", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/flag/flag__evaluation__[key].json b/model/attributes/flag/flag__evaluation__[key].json index 0701282f..dc745de0 100644 --- a/model/attributes/flag/flag__evaluation__[key].json +++ b/model/attributes/flag/flag__evaluation__[key].json @@ -7,5 +7,11 @@ "key": "false" }, "is_in_otel": false, - "example": "flag.evaluation.is_new_ui=true" + "example": "flag.evaluation.is_new_ui=true", + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/frames/frames__delay.json b/model/attributes/frames/frames__delay.json index dbf4a4fb..44388ffc 100644 --- a/model/attributes/frames/frames__delay.json +++ b/model/attributes/frames/frames__delay.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 5 + "example": 5, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/frames/frames__frozen.json b/model/attributes/frames/frames__frozen.json index 03d789c1..41846a67 100644 --- a/model/attributes/frames/frames__frozen.json +++ b/model/attributes/frames/frames__frozen.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 3 + "example": 3, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/frames/frames__slow.json b/model/attributes/frames/frames__slow.json index ec73b2e2..46f517c5 100644 --- a/model/attributes/frames/frames__slow.json +++ b/model/attributes/frames/frames__slow.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1 + "example": 1, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/frames/frames__total.json b/model/attributes/frames/frames__total.json index 11e73fac..c7a761b4 100644 --- a/model/attributes/frames/frames__total.json +++ b/model/attributes/frames/frames__total.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 60 + "example": 60, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/fs_error.json b/model/attributes/fs_error.json index 8eb839b7..3453e22e 100644 --- a/model/attributes/fs_error.json +++ b/model/attributes/fs_error.json @@ -12,5 +12,14 @@ "reason": "This attribute is not part of the OpenTelemetry specification and error.type fits much better." }, "example": "ENOENT: no such file or directory", - "sdks": ["javascript-node"] + "sdks": ["javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__agent__name.json b/model/attributes/gen_ai/gen_ai__agent__name.json index c6e00e2b..99ff043f 100644 --- a/model/attributes/gen_ai/gen_ai__agent__name.json +++ b/model/attributes/gen_ai/gen_ai__agent__name.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "ResearchAssistant" + "example": "ResearchAssistant", + "changelog": [ + { + "version": "0.1.0", + "prs": [62, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__conversation__id.json b/model/attributes/gen_ai/gen_ai__conversation__id.json index e115cc89..c27cee5f 100644 --- a/model/attributes/gen_ai/gen_ai__conversation__id.json +++ b/model/attributes/gen_ai/gen_ai__conversation__id.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "conv_5j66UpCpwteGg4YSxUnt7lPY" + "example": "conv_5j66UpCpwteGg4YSxUnt7lPY", + "changelog": [ + { + "version": "0.4.0", + "prs": [250] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__cost__input_tokens.json b/model/attributes/gen_ai/gen_ai__cost__input_tokens.json index ec5037b9..58572dd8 100644 --- a/model/attributes/gen_ai/gen_ai__cost__input_tokens.json +++ b/model/attributes/gen_ai/gen_ai__cost__input_tokens.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 123.45 + "example": 123.45, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [112] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__cost__output_tokens.json b/model/attributes/gen_ai/gen_ai__cost__output_tokens.json index 2ed66f53..2501df9e 100644 --- a/model/attributes/gen_ai/gen_ai__cost__output_tokens.json +++ b/model/attributes/gen_ai/gen_ai__cost__output_tokens.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 123.45 + "example": 123.45, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [112] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__cost__total_tokens.json b/model/attributes/gen_ai/gen_ai__cost__total_tokens.json index 5cc839e6..09626b70 100644 --- a/model/attributes/gen_ai/gen_ai__cost__total_tokens.json +++ b/model/attributes/gen_ai/gen_ai__cost__total_tokens.json @@ -7,5 +7,19 @@ }, "is_in_otel": false, "example": 12.34, - "alias": ["ai.total_cost"] + "alias": ["ai.total_cost"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [126] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__embeddings__input.json b/model/attributes/gen_ai/gen_ai__embeddings__input.json index 5a22cb8c..c43b4caa 100644 --- a/model/attributes/gen_ai/gen_ai__embeddings__input.json +++ b/model/attributes/gen_ai/gen_ai__embeddings__input.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "What's the weather in Paris?" + "example": "What's the weather in Paris?", + "changelog": [ + { + "version": "0.3.1", + "prs": [195] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__input__messages.json b/model/attributes/gen_ai/gen_ai__input__messages.json index bcffdf98..044369d8 100644 --- a/model/attributes/gen_ai/gen_ai__input__messages.json +++ b/model/attributes/gen_ai/gen_ai__input__messages.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "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\"}]}]", - "alias": ["ai.texts"] + "alias": ["ai.texts"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.4.0", + "prs": [221] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__operation__name.json b/model/attributes/gen_ai/gen_ai__operation__name.json index 6e8aee37..2d545fe0 100644 --- a/model/attributes/gen_ai/gen_ai__operation__name.json +++ b/model/attributes/gen_ai/gen_ai__operation__name.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": true, - "example": "chat" + "example": "chat", + "changelog": [ + { + "version": "0.4.0", + "prs": [225] + }, + { + "version": "0.1.0", + "prs": [62, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__operation__type.json b/model/attributes/gen_ai/gen_ai__operation__type.json index 9b44bd4b..34914b4b 100644 --- a/model/attributes/gen_ai/gen_ai__operation__type.json +++ b/model/attributes/gen_ai/gen_ai__operation__type.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": "tool" + "example": "tool", + "changelog": [ + { + "version": "0.4.0", + "prs": [257] + }, + { + "version": "0.1.0", + "prs": [113, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__output__messages.json b/model/attributes/gen_ai/gen_ai__output__messages.json index d6a12379..d5e35b18 100644 --- a/model/attributes/gen_ai/gen_ai__output__messages.json +++ b/model/attributes/gen_ai/gen_ai__output__messages.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"The weather in Paris is currently rainy with a temperature of 57°F.\"}], \"finish_reason\": \"stop\"}]" + "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] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__pipeline__name.json b/model/attributes/gen_ai/gen_ai__pipeline__name.json index df3848ea..caf302b3 100644 --- a/model/attributes/gen_ai/gen_ai__pipeline__name.json +++ b/model/attributes/gen_ai/gen_ai__pipeline__name.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "Autofix Pipeline", - "alias": ["ai.pipeline.name"] + "alias": ["ai.pipeline.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [76, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__prompt.json b/model/attributes/gen_ai/gen_ai__prompt.json index 8f89a38f..bce93847 100644 --- a/model/attributes/gen_ai/gen_ai__prompt.json +++ b/model/attributes/gen_ai/gen_ai__prompt.json @@ -10,5 +10,14 @@ "deprecation": { "_status": null, "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" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__provider__name.json b/model/attributes/gen_ai/gen_ai__provider__name.json index 74c56246..10f116b8 100644 --- a/model/attributes/gen_ai/gen_ai__provider__name.json +++ b/model/attributes/gen_ai/gen_ai__provider__name.json @@ -7,5 +7,11 @@ }, "is_in_otel": true, "example": "openai", - "alias": ["ai.model.provider", "gen_ai.system"] + "alias": ["ai.model.provider", "gen_ai.system"], + "changelog": [ + { + "version": "0.4.0", + "prs": [253] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__available_tools.json b/model/attributes/gen_ai/gen_ai__request__available_tools.json index 69066810..d350f5ce 100644 --- a/model/attributes/gen_ai/gen_ai__request__available_tools.json +++ b/model/attributes/gen_ai/gen_ai__request__available_tools.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.definitions" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__frequency_penalty.json b/model/attributes/gen_ai/gen_ai__request__frequency_penalty.json index 040b0224..4b379846 100644 --- a/model/attributes/gen_ai/gen_ai__request__frequency_penalty.json +++ b/model/attributes/gen_ai/gen_ai__request__frequency_penalty.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": 0.5, - "alias": ["ai.frequency_penalty"] + "alias": ["ai.frequency_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__max_tokens.json b/model/attributes/gen_ai/gen_ai__request__max_tokens.json index f33c99d0..3628bf33 100644 --- a/model/attributes/gen_ai/gen_ai__request__max_tokens.json +++ b/model/attributes/gen_ai/gen_ai__request__max_tokens.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": true, - "example": 2048 + "example": 2048, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [62] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__messages.json b/model/attributes/gen_ai/gen_ai__request__messages.json index 8e443473..2c98c976 100644 --- a/model/attributes/gen_ai/gen_ai__request__messages.json +++ b/model/attributes/gen_ai/gen_ai__request__messages.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.input.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74, 108, 119, 122] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__model.json b/model/attributes/gen_ai/gen_ai__request__model.json index b1c66a73..a25cb598 100644 --- a/model/attributes/gen_ai/gen_ai__request__model.json +++ b/model/attributes/gen_ai/gen_ai__request__model.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "gpt-4-turbo-preview" + "example": "gpt-4-turbo-preview", + "changelog": [ + { + "version": "0.1.0", + "prs": [62, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__presence_penalty.json b/model/attributes/gen_ai/gen_ai__request__presence_penalty.json index 910e2217..0160cc01 100644 --- a/model/attributes/gen_ai/gen_ai__request__presence_penalty.json +++ b/model/attributes/gen_ai/gen_ai__request__presence_penalty.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": 0.5, - "alias": ["ai.presence_penalty"] + "alias": ["ai.presence_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__seed.json b/model/attributes/gen_ai/gen_ai__request__seed.json index 56b31e0b..760a92ca 100644 --- a/model/attributes/gen_ai/gen_ai__request__seed.json +++ b/model/attributes/gen_ai/gen_ai__request__seed.json @@ -7,5 +7,11 @@ }, "is_in_otel": true, "example": "1234567890", - "alias": ["ai.seed"] + "alias": ["ai.seed"], + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__temperature.json b/model/attributes/gen_ai/gen_ai__request__temperature.json index 4d7f0f6a..80e43f94 100644 --- a/model/attributes/gen_ai/gen_ai__request__temperature.json +++ b/model/attributes/gen_ai/gen_ai__request__temperature.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": 0.1, - "alias": ["ai.temperature"] + "alias": ["ai.temperature"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__top_k.json b/model/attributes/gen_ai/gen_ai__request__top_k.json index 8eaa19bb..e2e4a3ee 100644 --- a/model/attributes/gen_ai/gen_ai__request__top_k.json +++ b/model/attributes/gen_ai/gen_ai__request__top_k.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": 35, - "alias": ["ai.top_k"] + "alias": ["ai.top_k"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__request__top_p.json b/model/attributes/gen_ai/gen_ai__request__top_p.json index a39aadac..59a24681 100644 --- a/model/attributes/gen_ai/gen_ai__request__top_p.json +++ b/model/attributes/gen_ai/gen_ai__request__top_p.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": 0.7, - "alias": ["ai.top_p"] + "alias": ["ai.top_p"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__finish_reasons.json b/model/attributes/gen_ai/gen_ai__response__finish_reasons.json index fbc36440..3e8d8a76 100644 --- a/model/attributes/gen_ai/gen_ai__response__finish_reasons.json +++ b/model/attributes/gen_ai/gen_ai__response__finish_reasons.json @@ -7,5 +7,11 @@ }, "is_in_otel": true, "example": "COMPLETE", - "alias": ["ai.finish_reason"] + "alias": ["ai.finish_reason"], + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__id.json b/model/attributes/gen_ai/gen_ai__response__id.json index 37ac22e3..2c203070 100644 --- a/model/attributes/gen_ai/gen_ai__response__id.json +++ b/model/attributes/gen_ai/gen_ai__response__id.json @@ -7,5 +7,11 @@ }, "is_in_otel": true, "example": "gen_123abc", - "alias": ["ai.generation_id"] + "alias": ["ai.generation_id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__model.json b/model/attributes/gen_ai/gen_ai__response__model.json index ff154009..2f923786 100644 --- a/model/attributes/gen_ai/gen_ai__response__model.json +++ b/model/attributes/gen_ai/gen_ai__response__model.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "gpt-4", - "alias": ["ai.model_id"] + "alias": ["ai.model_id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__streaming.json b/model/attributes/gen_ai/gen_ai__response__streaming.json index f21d95b4..25b3aab1 100644 --- a/model/attributes/gen_ai/gen_ai__response__streaming.json +++ b/model/attributes/gen_ai/gen_ai__response__streaming.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": true, - "alias": ["ai.streaming"] + "alias": ["ai.streaming"], + "changelog": [ + { + "version": "0.1.0", + "prs": [76] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__text.json b/model/attributes/gen_ai/gen_ai__response__text.json index 239012a1..e90da480 100644 --- a/model/attributes/gen_ai/gen_ai__response__text.json +++ b/model/attributes/gen_ai/gen_ai__response__text.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.output.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__time_to_first_token.json b/model/attributes/gen_ai/gen_ai__response__time_to_first_token.json index 5e95429c..bb3e7354 100644 --- a/model/attributes/gen_ai/gen_ai__response__time_to_first_token.json +++ b/model/attributes/gen_ai/gen_ai__response__time_to_first_token.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": 0.6853435 + "example": 0.6853435, + "changelog": [ + { + "version": "0.4.0", + "prs": [227] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__tokens_per_second.json b/model/attributes/gen_ai/gen_ai__response__tokens_per_second.json index 8c03cef2..6ad42975 100644 --- a/model/attributes/gen_ai/gen_ai__response__tokens_per_second.json +++ b/model/attributes/gen_ai/gen_ai__response__tokens_per_second.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 12345.67 + "example": 12345.67, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [66] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__response__tool_calls.json b/model/attributes/gen_ai/gen_ai__response__tool_calls.json index 34cf8136..a12e8ee1 100644 --- a/model/attributes/gen_ai/gen_ai__response__tool_calls.json +++ b/model/attributes/gen_ai/gen_ai__response__tool_calls.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.output.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__system.json b/model/attributes/gen_ai/gen_ai__system.json index 76b7ceb8..3d077246 100644 --- a/model/attributes/gen_ai/gen_ai__system.json +++ b/model/attributes/gen_ai/gen_ai__system.json @@ -11,5 +11,15 @@ "_status": null, "replacement": "gen_ai.provider.name" }, - "alias": ["ai.model.provider", "gen_ai.provider.name"] + "alias": ["ai.model.provider", "gen_ai.provider.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [253] + }, + { + "version": "0.1.0", + "prs": [57, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__system__message.json b/model/attributes/gen_ai/gen_ai__system__message.json index aee9357f..4a7b4566 100644 --- a/model/attributes/gen_ai/gen_ai__system__message.json +++ b/model/attributes/gen_ai/gen_ai__system__message.json @@ -10,5 +10,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.system_instructions" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [62] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__system_instructions.json b/model/attributes/gen_ai/gen_ai__system_instructions.json index 5b2720c6..016e3189 100644 --- a/model/attributes/gen_ai/gen_ai__system_instructions.json +++ b/model/attributes/gen_ai/gen_ai__system_instructions.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": "You are a helpful assistant", - "alias": ["ai.preamble"] + "alias": ["ai.preamble"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.4.0", + "prs": [221] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__call__arguments.json b/model/attributes/gen_ai/gen_ai__tool__call__arguments.json index 0b34d7eb..00520274 100644 --- a/model/attributes/gen_ai/gen_ai__tool__call__arguments.json +++ b/model/attributes/gen_ai/gen_ai__tool__call__arguments.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": "{\"location\": \"Paris\"}", - "alias": ["gen_ai.tool.input"] + "alias": ["gen_ai.tool.input"], + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.4.0", + "prs": [221] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__call__result.json b/model/attributes/gen_ai/gen_ai__tool__call__result.json index 2c48578a..a24fe7d4 100644 --- a/model/attributes/gen_ai/gen_ai__tool__call__result.json +++ b/model/attributes/gen_ai/gen_ai__tool__call__result.json @@ -7,5 +7,15 @@ }, "is_in_otel": true, "example": "rainy, 57°F", - "alias": ["gen_ai.tool.output", "gen_ai.tool.message"] + "alias": ["gen_ai.tool.output", "gen_ai.tool.message"], + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.4.0", + "prs": [221] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__definitions.json b/model/attributes/gen_ai/gen_ai__tool__definitions.json index 7ab0f733..f8c53c30 100644 --- a/model/attributes/gen_ai/gen_ai__tool__definitions.json +++ b/model/attributes/gen_ai/gen_ai__tool__definitions.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": 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\"]}}]" + "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] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__description.json b/model/attributes/gen_ai/gen_ai__tool__description.json index 6855338f..d56cd574 100644 --- a/model/attributes/gen_ai/gen_ai__tool__description.json +++ b/model/attributes/gen_ai/gen_ai__tool__description.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "Searches the web for current information about a topic" + "example": "Searches the web for current information about a topic", + "changelog": [ + { + "version": "0.1.0", + "prs": [62, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__input.json b/model/attributes/gen_ai/gen_ai__tool__input.json index 83970199..68962c1d 100644 --- a/model/attributes/gen_ai/gen_ai__tool__input.json +++ b/model/attributes/gen_ai/gen_ai__tool__input.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.arguments" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__message.json b/model/attributes/gen_ai/gen_ai__tool__message.json index 869ebad9..c3ab8bee 100644 --- a/model/attributes/gen_ai/gen_ai__tool__message.json +++ b/model/attributes/gen_ai/gen_ai__tool__message.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.result" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [62] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__name.json b/model/attributes/gen_ai/gen_ai__tool__name.json index 9931beeb..a20f7ede 100644 --- a/model/attributes/gen_ai/gen_ai__tool__name.json +++ b/model/attributes/gen_ai/gen_ai__tool__name.json @@ -7,5 +7,11 @@ }, "is_in_otel": true, "example": "Flights", - "alias": ["ai.function_call"] + "alias": ["ai.function_call"], + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__output.json b/model/attributes/gen_ai/gen_ai__tool__output.json index c6c4e8dc..419b3b53 100644 --- a/model/attributes/gen_ai/gen_ai__tool__output.json +++ b/model/attributes/gen_ai/gen_ai__tool__output.json @@ -11,5 +11,15 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.result" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__tool__type.json b/model/attributes/gen_ai/gen_ai__tool__type.json index 0adb9abd..2d10c916 100644 --- a/model/attributes/gen_ai/gen_ai__tool__type.json +++ b/model/attributes/gen_ai/gen_ai__tool__type.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "function" + "example": "function", + "changelog": [ + { + "version": "0.1.0", + "prs": [62, 127] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__completion_tokens.json b/model/attributes/gen_ai/gen_ai__usage__completion_tokens.json index 5456e5aa..4175ca4b 100644 --- a/model/attributes/gen_ai/gen_ai__usage__completion_tokens.json +++ b/model/attributes/gen_ai/gen_ai__usage__completion_tokens.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "gen_ai.usage.output_tokens" }, - "alias": ["ai.completion_tokens.used", "gen_ai.usage.output_tokens"] + "alias": ["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" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__input_tokens.json b/model/attributes/gen_ai/gen_ai__usage__input_tokens.json index 414bf614..9cc66217 100644 --- a/model/attributes/gen_ai/gen_ai__usage__input_tokens.json +++ b/model/attributes/gen_ai/gen_ai__usage__input_tokens.json @@ -7,5 +7,22 @@ }, "is_in_otel": true, "example": 10, - "alias": ["ai.prompt_tokens.used", "gen_ai.usage.prompt_tokens"] + "alias": ["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" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__input_tokens__cache_write.json b/model/attributes/gen_ai/gen_ai__usage__input_tokens__cache_write.json index 09e5e1ec..a603b9e8 100644 --- a/model/attributes/gen_ai/gen_ai__usage__input_tokens__cache_write.json +++ b/model/attributes/gen_ai/gen_ai__usage__input_tokens__cache_write.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": 100 + "example": 100, + "changelog": [ + { + "version": "0.4.0", + "prs": [217, 228] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__input_tokens__cached.json b/model/attributes/gen_ai/gen_ai__usage__input_tokens__cached.json index 75287c3b..5d1b2458 100644 --- a/model/attributes/gen_ai/gen_ai__usage__input_tokens__cached.json +++ b/model/attributes/gen_ai/gen_ai__usage__input_tokens__cached.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 50 + "example": 50, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [62, 112] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__output_tokens.json b/model/attributes/gen_ai/gen_ai__usage__output_tokens.json index 590d9a27..1b4eb1d4 100644 --- a/model/attributes/gen_ai/gen_ai__usage__output_tokens.json +++ b/model/attributes/gen_ai/gen_ai__usage__output_tokens.json @@ -7,5 +7,22 @@ }, "is_in_otel": true, "example": 10, - "alias": ["ai.completion_tokens.used", "gen_ai.usage.completion_tokens"] + "alias": ["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" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__output_tokens__reasoning.json b/model/attributes/gen_ai/gen_ai__usage__output_tokens__reasoning.json index 60325ee0..df8b6ea8 100644 --- a/model/attributes/gen_ai/gen_ai__usage__output_tokens__reasoning.json +++ b/model/attributes/gen_ai/gen_ai__usage__output_tokens__reasoning.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 75 + "example": 75, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [62, 112] + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__prompt_tokens.json b/model/attributes/gen_ai/gen_ai__usage__prompt_tokens.json index 1f6c7d3f..9cff253b 100644 --- a/model/attributes/gen_ai/gen_ai__usage__prompt_tokens.json +++ b/model/attributes/gen_ai/gen_ai__usage__prompt_tokens.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "gen_ai.usage.input_tokens" }, - "alias": ["ai.prompt_tokens.used", "gen_ai.usage.input_tokens"] + "alias": ["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" + } + ] } diff --git a/model/attributes/gen_ai/gen_ai__usage__total_tokens.json b/model/attributes/gen_ai/gen_ai__usage__total_tokens.json index 73eed8c0..0180f6cf 100644 --- a/model/attributes/gen_ai/gen_ai__usage__total_tokens.json +++ b/model/attributes/gen_ai/gen_ai__usage__total_tokens.json @@ -7,5 +7,15 @@ }, "is_in_otel": false, "example": 20, - "alias": ["ai.total_tokens.used"] + "alias": ["ai.total_tokens.used"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57] + } + ] } diff --git a/model/attributes/graphql/graphql__operation__name.json b/model/attributes/graphql/graphql__operation__name.json index 19542d09..8da37ade 100644 --- a/model/attributes/graphql/graphql__operation__name.json +++ b/model/attributes/graphql/graphql__operation__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "findBookById" + "example": "findBookById", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/graphql/graphql__operation__type.json b/model/attributes/graphql/graphql__operation__type.json index 1bbcb860..1a4c32a9 100644 --- a/model/attributes/graphql/graphql__operation__type.json +++ b/model/attributes/graphql/graphql__operation__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "query" + "example": "query", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__client_ip.json b/model/attributes/http/http__client_ip.json index eaef031e..b97e801a 100644 --- a/model/attributes/http/http__client_ip.json +++ b/model/attributes/http/http__client_ip.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "client.address" }, - "alias": ["client.address"] + "alias": ["client.address"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 106, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__decoded_response_content_length.json b/model/attributes/http/http__decoded_response_content_length.json index a57a30e9..3f3875dc 100644 --- a/model/attributes/http/http__decoded_response_content_length.json +++ b/model/attributes/http/http__decoded_response_content_length.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 456, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__flavor.json b/model/attributes/http/http__flavor.json index 77f143fd..0009f5fd 100644 --- a/model/attributes/http/http__flavor.json +++ b/model/attributes/http/http__flavor.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.protocol.version" }, - "alias": ["network.protocol.version", "net.protocol.version"] + "alias": ["network.protocol.version", "net.protocol.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__fragment.json b/model/attributes/http/http__fragment.json index 3d3ee176..f0a027bb 100644 --- a/model/attributes/http/http__fragment.json +++ b/model/attributes/http/http__fragment.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": false, - "example": "#details" + "example": "#details", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__host.json b/model/attributes/http/http__host.json index 7831bbab..9c314ca9 100644 --- a/model/attributes/http/http__host.json +++ b/model/attributes/http/http__host.json @@ -12,5 +12,14 @@ "replacement": "server.address", "reason": "Deprecated, use one of `server.address` or `client.address`, depending on the usage" }, - "alias": ["server.address", "client.address", "http.server_name", "net.host.name"] + "alias": ["server.address", "client.address", "http.server_name", "net.host.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__method.json b/model/attributes/http/http__method.json index f9dfac45..276be296 100644 --- a/model/attributes/http/http__method.json +++ b/model/attributes/http/http__method.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "http.request.method" }, - "alias": ["http.request.method"] + "alias": ["http.request.method"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__query.json b/model/attributes/http/http__query.json index c6a7bb7d..3af85d70 100644 --- a/model/attributes/http/http__query.json +++ b/model/attributes/http/http__query.json @@ -7,5 +7,10 @@ "reason": "Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information." }, "is_in_otel": false, - "example": "?foo=bar&bar=baz" + "example": "?foo=bar&bar=baz", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__connect_start.json b/model/attributes/http/http__request__connect_start.json index e553dcff..d5b8dba2 100644 --- a/model/attributes/http/http__request__connect_start.json +++ b/model/attributes/http/http__request__connect_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.111, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__connection_end.json b/model/attributes/http/http__request__connection_end.json index a74e4dea..efddba45 100644 --- a/model/attributes/http/http__request__connection_end.json +++ b/model/attributes/http/http__request__connection_end.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.15, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__domain_lookup_end.json b/model/attributes/http/http__request__domain_lookup_end.json index ee811866..a60cae11 100644 --- a/model/attributes/http/http__request__domain_lookup_end.json +++ b/model/attributes/http/http__request__domain_lookup_end.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.201, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__domain_lookup_start.json b/model/attributes/http/http__request__domain_lookup_start.json index 7d188da5..f982c9a8 100644 --- a/model/attributes/http/http__request__domain_lookup_start.json +++ b/model/attributes/http/http__request__domain_lookup_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.322, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__fetch_start.json b/model/attributes/http/http__request__fetch_start.json index 5025d399..1e9bab2a 100644 --- a/model/attributes/http/http__request__fetch_start.json +++ b/model/attributes/http/http__request__fetch_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.389, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__header__[key].json b/model/attributes/http/http__request__header__[key].json index 2b12cdb6..f4434756 100644 --- a/model/attributes/http/http__request__header__[key].json +++ b/model/attributes/http/http__request__header__[key].json @@ -7,5 +7,15 @@ "key": "maybe" }, "is_in_otel": true, - "example": "http.request.header.custom-header=['foo', 'bar']" + "example": "http.request.header.custom-header=['foo', 'bar']", + "changelog": [ + { + "version": "0.4.0", + "prs": [201, 204] + }, + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/http/http__request__method.json b/model/attributes/http/http__request__method.json index da6f79c8..7cf16552 100644 --- a/model/attributes/http/http__request__method.json +++ b/model/attributes/http/http__request__method.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "GET", - "alias": ["method", "http.method"] + "alias": ["method", "http.method"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__redirect_end.json b/model/attributes/http/http__request__redirect_end.json index be9aa1ef..a9731827 100644 --- a/model/attributes/http/http__request__redirect_end.json +++ b/model/attributes/http/http__request__redirect_end.json @@ -7,5 +7,15 @@ }, "is_in_otel": false, "example": 1732829558.502, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [130, 134] + } + ] } diff --git a/model/attributes/http/http__request__redirect_start.json b/model/attributes/http/http__request__redirect_start.json index 3c4d946b..9bed8b42 100644 --- a/model/attributes/http/http__request__redirect_start.json +++ b/model/attributes/http/http__request__redirect_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.495, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__request_start.json b/model/attributes/http/http__request__request_start.json index 75e5c343..10fe4a54 100644 --- a/model/attributes/http/http__request__request_start.json +++ b/model/attributes/http/http__request__request_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.51, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__resend_count.json b/model/attributes/http/http__request__resend_count.json index 4f8a928f..08b05ee2 100644 --- a/model/attributes/http/http__request__resend_count.json +++ b/model/attributes/http/http__request__resend_count.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 2 + "example": 2, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__response_end.json b/model/attributes/http/http__request__response_end.json index 2c43767a..4ef97610 100644 --- a/model/attributes/http/http__request__response_end.json +++ b/model/attributes/http/http__request__response_end.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.89, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__response_start.json b/model/attributes/http/http__request__response_start.json index 738effe5..17451fb8 100644 --- a/model/attributes/http/http__request__response_start.json +++ b/model/attributes/http/http__request__response_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.7, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__secure_connection_start.json b/model/attributes/http/http__request__secure_connection_start.json index 0aab3d3f..1bd55b54 100644 --- a/model/attributes/http/http__request__secure_connection_start.json +++ b/model/attributes/http/http__request__secure_connection_start.json @@ -7,5 +7,18 @@ }, "is_in_otel": false, "example": 1732829555.73, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [134] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__request__time_to_first_byte.json b/model/attributes/http/http__request__time_to_first_byte.json index c550d1c4..4efdfb43 100644 --- a/model/attributes/http/http__request__time_to_first_byte.json +++ b/model/attributes/http/http__request__time_to_first_byte.json @@ -7,5 +7,15 @@ }, "is_in_otel": false, "example": 1.032, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [131] + } + ] } diff --git a/model/attributes/http/http__request__worker_start.json b/model/attributes/http/http__request__worker_start.json index 68c8ce4a..44e71e35 100644 --- a/model/attributes/http/http__request__worker_start.json +++ b/model/attributes/http/http__request__worker_start.json @@ -7,5 +7,15 @@ }, "is_in_otel": false, "example": 1732829553.68, - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [130, 134] + } + ] } diff --git a/model/attributes/http/http__response__body__size.json b/model/attributes/http/http__response__body__size.json index 47bd918a..ca528b48 100644 --- a/model/attributes/http/http__response__body__size.json +++ b/model/attributes/http/http__response__body__size.json @@ -7,5 +7,18 @@ }, "is_in_otel": true, "example": 123, - "alias": ["http.response_content_length", "http.response.header.content-length"] + "alias": ["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" + } + ] } diff --git a/model/attributes/http/http__response__header__[key].json b/model/attributes/http/http__response__header__[key].json index 05c29430..3c1f7b61 100644 --- a/model/attributes/http/http__response__header__[key].json +++ b/model/attributes/http/http__response__header__[key].json @@ -7,5 +7,15 @@ "key": "maybe" }, "is_in_otel": true, - "example": "http.response.header.custom-header=['foo', 'bar']" + "example": "http.response.header.custom-header=['foo', 'bar']", + "changelog": [ + { + "version": "0.4.0", + "prs": [201, 204] + }, + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/http/http__response__header__content-length.json b/model/attributes/http/http__response__header__content-length.json index 460ac80d..8edc44df 100644 --- a/model/attributes/http/http__response__header__content-length.json +++ b/model/attributes/http/http__response__header__content-length.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "http.response.header.custom-header=['foo', 'bar']", - "alias": ["http.response_content_length", "http.response.body.size"] + "alias": ["http.response_content_length", "http.response.body.size"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__response__size.json b/model/attributes/http/http__response__size.json index 2d5af9a3..84544ca3 100644 --- a/model/attributes/http/http__response__size.json +++ b/model/attributes/http/http__response__size.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 456, - "alias": ["http.response_transfer_size"] + "alias": ["http.response_transfer_size"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__response__status_code.json b/model/attributes/http/http__response__status_code.json index f4d60adf..a29795d7 100644 --- a/model/attributes/http/http__response__status_code.json +++ b/model/attributes/http/http__response__status_code.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 404, - "alias": ["http.status_code"] + "alias": ["http.status_code"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__response_content_length.json b/model/attributes/http/http__response_content_length.json index 1ee90161..13330670 100644 --- a/model/attributes/http/http__response_content_length.json +++ b/model/attributes/http/http__response_content_length.json @@ -11,5 +11,18 @@ "_status": "backfill", "replacement": "http.response.body.size" }, - "alias": ["http.response.body.size", "http.response.header.content-length"] + "alias": ["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" + } + ] } diff --git a/model/attributes/http/http__response_transfer_size.json b/model/attributes/http/http__response_transfer_size.json index 7c81cdeb..ec0d946a 100644 --- a/model/attributes/http/http__response_transfer_size.json +++ b/model/attributes/http/http__response_transfer_size.json @@ -11,5 +11,18 @@ "_status": "backfill", "replacement": "http.response.size" }, - "alias": ["http.response.size"] + "alias": ["http.response.size"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__route.json b/model/attributes/http/http__route.json index c8e0b150..a7ec1651 100644 --- a/model/attributes/http/http__route.json +++ b/model/attributes/http/http__route.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "/users/:id", - "alias": ["url.template"] + "alias": ["url.template"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__scheme.json b/model/attributes/http/http__scheme.json index ae36e5d6..d5cd0d6b 100644 --- a/model/attributes/http/http__scheme.json +++ b/model/attributes/http/http__scheme.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "url.scheme" }, - "alias": ["url.scheme"] + "alias": ["url.scheme"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__server__request__time_in_queue.json b/model/attributes/http/http__server__request__time_in_queue.json index 8bf575c3..b2260d37 100644 --- a/model/attributes/http/http__server__request__time_in_queue.json +++ b/model/attributes/http/http__server__request__time_in_queue.json @@ -6,6 +6,12 @@ "key": "maybe" }, "is_in_otel": false, - "example": 50.0, - "sdks": ["ruby"] + "example": 50, + "sdks": ["ruby"], + "changelog": [ + { + "version": "next", + "prs": [267] + } + ] } diff --git a/model/attributes/http/http__server_name.json b/model/attributes/http/http__server_name.json index 5d696edf..e14b4228 100644 --- a/model/attributes/http/http__server_name.json +++ b/model/attributes/http/http__server_name.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "server.address" }, - "alias": ["server.address", "net.host.name", "http.host"] + "alias": ["server.address", "net.host.name", "http.host"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__status_code.json b/model/attributes/http/http__status_code.json index 86d039b2..bb51562d 100644 --- a/model/attributes/http/http__status_code.json +++ b/model/attributes/http/http__status_code.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "http.response.status_code" }, - "alias": ["http.response.status_code"] + "alias": ["http.response.status_code"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__target.json b/model/attributes/http/http__target.json index f6398f0d..e2994ce1 100644 --- a/model/attributes/http/http__target.json +++ b/model/attributes/http/http__target.json @@ -11,5 +11,14 @@ "_status": null, "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" + } + ] } diff --git a/model/attributes/http/http__url.json b/model/attributes/http/http__url.json index c0bcd911..07ebb898 100644 --- a/model/attributes/http/http__url.json +++ b/model/attributes/http/http__url.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "url.full" }, - "alias": ["url.full", "url"] + "alias": ["url.full", "url"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/http/http__user_agent.json b/model/attributes/http/http__user_agent.json index b412a9a9..e5ff1afa 100644 --- a/model/attributes/http/http__user_agent.json +++ b/model/attributes/http/http__user_agent.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "user_agent.original" }, - "alias": ["user_agent.original"] + "alias": ["user_agent.original"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/id.json b/model/attributes/id.json index 1098fcb5..faf204f4 100644 --- a/model/attributes/id.json +++ b/model/attributes/id.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "f47ac10b58cc4372a5670e02b2c3d479", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__gc__action.json b/model/attributes/jvm/jvm__gc__action.json index 24fe840c..48622975 100644 --- a/model/attributes/jvm/jvm__gc__action.json +++ b/model/attributes/jvm/jvm__gc__action.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "end of minor GC" + "example": "end of minor GC", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__gc__name.json b/model/attributes/jvm/jvm__gc__name.json index 7e281877..bc00a607 100644 --- a/model/attributes/jvm/jvm__gc__name.json +++ b/model/attributes/jvm/jvm__gc__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "G1 Young Generation" + "example": "G1 Young Generation", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__memory__pool__name.json b/model/attributes/jvm/jvm__memory__pool__name.json index 45d18040..86dce78d 100644 --- a/model/attributes/jvm/jvm__memory__pool__name.json +++ b/model/attributes/jvm/jvm__memory__pool__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "G1 Old Gen" + "example": "G1 Old Gen", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__memory__type.json b/model/attributes/jvm/jvm__memory__type.json index 3671b992..6fe577f6 100644 --- a/model/attributes/jvm/jvm__memory__type.json +++ b/model/attributes/jvm/jvm__memory__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "G1 Old Gen" + "example": "G1 Old Gen", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__thread__daemon.json b/model/attributes/jvm/jvm__thread__daemon.json index 0386dddc..52458b11 100644 --- a/model/attributes/jvm/jvm__thread__daemon.json +++ b/model/attributes/jvm/jvm__thread__daemon.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": true, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/jvm/jvm__thread__state.json b/model/attributes/jvm/jvm__thread__state.json index c95aa814..164b98f2 100644 --- a/model/attributes/jvm/jvm__thread__state.json +++ b/model/attributes/jvm/jvm__thread__state.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "blocked" + "example": "blocked", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/lcp/lcp__element.json b/model/attributes/lcp/lcp__element.json index 2e7ad180..31df8f97 100644 --- a/model/attributes/lcp/lcp__element.json +++ b/model/attributes/lcp/lcp__element.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "img" + "example": "img", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/lcp/lcp__id.json b/model/attributes/lcp/lcp__id.json index e8776a9d..8bff47af 100644 --- a/model/attributes/lcp/lcp__id.json +++ b/model/attributes/lcp/lcp__id.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "#hero" + "example": "#hero", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/lcp/lcp__size.json b/model/attributes/lcp/lcp__size.json index d329a07d..79395161 100644 --- a/model/attributes/lcp/lcp__size.json +++ b/model/attributes/lcp/lcp__size.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1234 + "example": 1234, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/lcp/lcp__url.json b/model/attributes/lcp/lcp__url.json index e6e0b24a..ca6377e9 100644 --- a/model/attributes/lcp/lcp__url.json +++ b/model/attributes/lcp/lcp__url.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "https://example.com" + "example": "https://example.com", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/logger/logger__name.json b/model/attributes/logger/logger__name.json index 659d2f71..e01d0c63 100644 --- a/model/attributes/logger/logger__name.json +++ b/model/attributes/logger/logger__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "myLogger" + "example": "myLogger", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/mcp/mcp__cancelled__reason.json b/model/attributes/mcp/mcp__cancelled__reason.json index 04618cdd..e3571c4f 100644 --- a/model/attributes/mcp/mcp__cancelled__reason.json +++ b/model/attributes/mcp/mcp__cancelled__reason.json @@ -7,5 +7,11 @@ "reason": "Cancellation reasons may contain user-specific or sensitive information" }, "is_in_otel": false, - "example": "User cancelled the request" + "example": "User cancelled the request", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__cancelled__request_id.json b/model/attributes/mcp/mcp__cancelled__request_id.json index c3d62c9d..a4e4a58a 100644 --- a/model/attributes/mcp/mcp__cancelled__request_id.json +++ b/model/attributes/mcp/mcp__cancelled__request_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "123" + "example": "123", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__client__name.json b/model/attributes/mcp/mcp__client__name.json index 52cc3848..364bcc12 100644 --- a/model/attributes/mcp/mcp__client__name.json +++ b/model/attributes/mcp/mcp__client__name.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "claude-desktop" + "example": "claude-desktop", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__client__title.json b/model/attributes/mcp/mcp__client__title.json index dbd49610..11e182e2 100644 --- a/model/attributes/mcp/mcp__client__title.json +++ b/model/attributes/mcp/mcp__client__title.json @@ -7,5 +7,11 @@ "reason": "Client titles may reveal user-specific application configurations or custom setups" }, "is_in_otel": false, - "example": "Claude Desktop" + "example": "Claude Desktop", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__client__version.json b/model/attributes/mcp/mcp__client__version.json index ac1906fb..ff1d3835 100644 --- a/model/attributes/mcp/mcp__client__version.json +++ b/model/attributes/mcp/mcp__client__version.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "1.0.0" + "example": "1.0.0", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__lifecycle__phase.json b/model/attributes/mcp/mcp__lifecycle__phase.json index c889c682..616b8af6 100644 --- a/model/attributes/mcp/mcp__lifecycle__phase.json +++ b/model/attributes/mcp/mcp__lifecycle__phase.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "initialization_complete" + "example": "initialization_complete", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__logging__data_type.json b/model/attributes/mcp/mcp__logging__data_type.json index 4db218ea..65007e71 100644 --- a/model/attributes/mcp/mcp__logging__data_type.json +++ b/model/attributes/mcp/mcp__logging__data_type.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "string" + "example": "string", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__logging__level.json b/model/attributes/mcp/mcp__logging__level.json index 1081e310..d17f8896 100644 --- a/model/attributes/mcp/mcp__logging__level.json +++ b/model/attributes/mcp/mcp__logging__level.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "info" + "example": "info", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__logging__logger.json b/model/attributes/mcp/mcp__logging__logger.json index 5b372e7c..b24752fe 100644 --- a/model/attributes/mcp/mcp__logging__logger.json +++ b/model/attributes/mcp/mcp__logging__logger.json @@ -7,5 +7,11 @@ "reason": "Logger names may be user-defined and could contain sensitive information" }, "is_in_otel": false, - "example": "mcp_server" + "example": "mcp_server", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__logging__message.json b/model/attributes/mcp/mcp__logging__message.json index f960847a..129d8d0e 100644 --- a/model/attributes/mcp/mcp__logging__message.json +++ b/model/attributes/mcp/mcp__logging__message.json @@ -7,5 +7,11 @@ "reason": "Log messages can contain user data" }, "is_in_otel": false, - "example": "Tool execution completed successfully" + "example": "Tool execution completed successfully", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__method__name.json b/model/attributes/mcp/mcp__method__name.json index 96bf1899..a46f3f20 100644 --- a/model/attributes/mcp/mcp__method__name.json +++ b/model/attributes/mcp/mcp__method__name.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "tools/call" + "example": "tools/call", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__progress__current.json b/model/attributes/mcp/mcp__progress__current.json index 0294fe3d..5b261c96 100644 --- a/model/attributes/mcp/mcp__progress__current.json +++ b/model/attributes/mcp/mcp__progress__current.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 50 + "example": 50, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__progress__message.json b/model/attributes/mcp/mcp__progress__message.json index d2e30291..d34572ae 100644 --- a/model/attributes/mcp/mcp__progress__message.json +++ b/model/attributes/mcp/mcp__progress__message.json @@ -7,5 +7,11 @@ "reason": "Progress messages may contain user-specific or sensitive information" }, "is_in_otel": false, - "example": "Processing 50 of 100 items" + "example": "Processing 50 of 100 items", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__progress__percentage.json b/model/attributes/mcp/mcp__progress__percentage.json index 7412b85b..2c38384b 100644 --- a/model/attributes/mcp/mcp__progress__percentage.json +++ b/model/attributes/mcp/mcp__progress__percentage.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 50.0 + "example": 50, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__progress__token.json b/model/attributes/mcp/mcp__progress__token.json index a13652c4..f127bee8 100644 --- a/model/attributes/mcp/mcp__progress__token.json +++ b/model/attributes/mcp/mcp__progress__token.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "progress-token-123" + "example": "progress-token-123", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__progress__total.json b/model/attributes/mcp/mcp__progress__total.json index 205283c9..9618f189 100644 --- a/model/attributes/mcp/mcp__progress__total.json +++ b/model/attributes/mcp/mcp__progress__total.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 100 + "example": 100, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__prompt__name.json b/model/attributes/mcp/mcp__prompt__name.json index c79a4a45..e2da5413 100644 --- a/model/attributes/mcp/mcp__prompt__name.json +++ b/model/attributes/mcp/mcp__prompt__name.json @@ -7,5 +7,11 @@ "reason": "Prompt names may reveal user behavior patterns or sensitive operations" }, "is_in_otel": false, - "example": "summarize" + "example": "summarize", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__prompt__result__description.json b/model/attributes/mcp/mcp__prompt__result__description.json index 6a8bfb08..3f35181d 100644 --- a/model/attributes/mcp/mcp__prompt__result__description.json +++ b/model/attributes/mcp/mcp__prompt__result__description.json @@ -6,5 +6,11 @@ "key": "true" }, "is_in_otel": false, - "example": "A summary of the requested information" + "example": "A summary of the requested information", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__prompt__result__message_content.json b/model/attributes/mcp/mcp__prompt__result__message_content.json index abc413e1..b29af5fe 100644 --- a/model/attributes/mcp/mcp__prompt__result__message_content.json +++ b/model/attributes/mcp/mcp__prompt__result__message_content.json @@ -6,5 +6,11 @@ "key": "true" }, "is_in_otel": false, - "example": "Please provide a summary of the document" + "example": "Please provide a summary of the document", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__prompt__result__message_count.json b/model/attributes/mcp/mcp__prompt__result__message_count.json index e2ad4a1e..36efd8ab 100644 --- a/model/attributes/mcp/mcp__prompt__result__message_count.json +++ b/model/attributes/mcp/mcp__prompt__result__message_count.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 3 + "example": 3, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__prompt__result__message_role.json b/model/attributes/mcp/mcp__prompt__result__message_role.json index 54f42817..33dd66eb 100644 --- a/model/attributes/mcp/mcp__prompt__result__message_role.json +++ b/model/attributes/mcp/mcp__prompt__result__message_role.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "user" + "example": "user", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__protocol__ready.json b/model/attributes/mcp/mcp__protocol__ready.json index f83d46af..1f396756 100644 --- a/model/attributes/mcp/mcp__protocol__ready.json +++ b/model/attributes/mcp/mcp__protocol__ready.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1 + "example": 1, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__protocol__version.json b/model/attributes/mcp/mcp__protocol__version.json index ffa151cb..56f156b5 100644 --- a/model/attributes/mcp/mcp__protocol__version.json +++ b/model/attributes/mcp/mcp__protocol__version.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "2024-11-05" + "example": "2024-11-05", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__request__argument__[key].json b/model/attributes/mcp/mcp__request__argument__[key].json index b6a2b244..3fdc13f8 100644 --- a/model/attributes/mcp/mcp__request__argument__[key].json +++ b/model/attributes/mcp/mcp__request__argument__[key].json @@ -8,5 +8,11 @@ }, "is_in_otel": false, "has_dynamic_suffix": true, - "example": "mcp.request.argument.query='weather in Paris'" + "example": "mcp.request.argument.query='weather in Paris'", + "changelog": [ + { + "version": "0.3.0", + "prs": [176] + } + ] } diff --git a/model/attributes/mcp/mcp__request__argument__name.json b/model/attributes/mcp/mcp__request__argument__name.json index 527c6184..130695ac 100644 --- a/model/attributes/mcp/mcp__request__argument__name.json +++ b/model/attributes/mcp/mcp__request__argument__name.json @@ -7,5 +7,11 @@ "reason": "Prompt names can contain user input" }, "is_in_otel": false, - "example": "summarize" + "example": "summarize", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__request__argument__uri.json b/model/attributes/mcp/mcp__request__argument__uri.json index 17eaca96..d548a8a8 100644 --- a/model/attributes/mcp/mcp__request__argument__uri.json +++ b/model/attributes/mcp/mcp__request__argument__uri.json @@ -7,5 +7,11 @@ "reason": "URIs can contain user file paths" }, "is_in_otel": false, - "example": "file:///path/to/resource" + "example": "file:///path/to/resource", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__request__id.json b/model/attributes/mcp/mcp__request__id.json index 99cadd73..c0e90c46 100644 --- a/model/attributes/mcp/mcp__request__id.json +++ b/model/attributes/mcp/mcp__request__id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "1" + "example": "1", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__resource__protocol.json b/model/attributes/mcp/mcp__resource__protocol.json index 3e73637d..5e9af0cb 100644 --- a/model/attributes/mcp/mcp__resource__protocol.json +++ b/model/attributes/mcp/mcp__resource__protocol.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "file" + "example": "file", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__resource__uri.json b/model/attributes/mcp/mcp__resource__uri.json index c5e2be50..2e56b404 100644 --- a/model/attributes/mcp/mcp__resource__uri.json +++ b/model/attributes/mcp/mcp__resource__uri.json @@ -7,5 +7,11 @@ "reason": "URIs can contain sensitive file paths" }, "is_in_otel": false, - "example": "file:///path/to/file.txt" + "example": "file:///path/to/file.txt", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__server__name.json b/model/attributes/mcp/mcp__server__name.json index 7e185a8c..5924cf07 100644 --- a/model/attributes/mcp/mcp__server__name.json +++ b/model/attributes/mcp/mcp__server__name.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "sentry-mcp-server" + "example": "sentry-mcp-server", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__server__title.json b/model/attributes/mcp/mcp__server__title.json index 4829dbea..084370ae 100644 --- a/model/attributes/mcp/mcp__server__title.json +++ b/model/attributes/mcp/mcp__server__title.json @@ -7,5 +7,11 @@ "reason": "Server titles may reveal user-specific application configurations or custom setups" }, "is_in_otel": false, - "example": "Sentry MCP Server" + "example": "Sentry MCP Server", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__server__version.json b/model/attributes/mcp/mcp__server__version.json index fbc815f6..7a9bac93 100644 --- a/model/attributes/mcp/mcp__server__version.json +++ b/model/attributes/mcp/mcp__server__version.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "0.1.0" + "example": "0.1.0", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__session__id.json b/model/attributes/mcp/mcp__session__id.json index 738f8550..6bd3afe7 100644 --- a/model/attributes/mcp/mcp__session__id.json +++ b/model/attributes/mcp/mcp__session__id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "550e8400-e29b-41d4-a716-446655440000" + "example": "550e8400-e29b-41d4-a716-446655440000", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__tool__name.json b/model/attributes/mcp/mcp__tool__name.json index 08ebac41..5c38b4d0 100644 --- a/model/attributes/mcp/mcp__tool__name.json +++ b/model/attributes/mcp/mcp__tool__name.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "calculator" + "example": "calculator", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__tool__result__content.json b/model/attributes/mcp/mcp__tool__result__content.json index a78f380c..dcc5d97f 100644 --- a/model/attributes/mcp/mcp__tool__result__content.json +++ b/model/attributes/mcp/mcp__tool__result__content.json @@ -8,5 +8,15 @@ }, "is_in_otel": false, "example": "{\"output\": \"rainy\", \"toolCallId\": \"1\"}", - "alias": [] + "alias": [], + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + }, + { + "version": "0.2.0", + "prs": [164] + } + ] } diff --git a/model/attributes/mcp/mcp__tool__result__content_count.json b/model/attributes/mcp/mcp__tool__result__content_count.json index c9d90b28..6b4f29f4 100644 --- a/model/attributes/mcp/mcp__tool__result__content_count.json +++ b/model/attributes/mcp/mcp__tool__result__content_count.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1 + "example": 1, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__tool__result__is_error.json b/model/attributes/mcp/mcp__tool__result__is_error.json index 2a5268aa..d85ee21f 100644 --- a/model/attributes/mcp/mcp__tool__result__is_error.json +++ b/model/attributes/mcp/mcp__tool__result__is_error.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": false + "example": false, + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mcp/mcp__transport.json b/model/attributes/mcp/mcp__transport.json index c02ba366..5f9b0ab3 100644 --- a/model/attributes/mcp/mcp__transport.json +++ b/model/attributes/mcp/mcp__transport.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "stdio" + "example": "stdio", + "changelog": [ + { + "version": "0.3.0", + "prs": [171] + } + ] } diff --git a/model/attributes/mdc/mdc__[key].json b/model/attributes/mdc/mdc__[key].json index 2c3d5dd9..759a394d 100644 --- a/model/attributes/mdc/mdc__[key].json +++ b/model/attributes/mdc/mdc__[key].json @@ -8,5 +8,11 @@ }, "is_in_otel": false, "example": "mdc.some_key='some_value'", - "sdks": ["java", "java.logback", "java.jul", "java.log4j2"] + "sdks": ["java", "java.logback", "java.jul", "java.log4j2"], + "changelog": [ + { + "version": "0.3.0", + "prs": [176] + } + ] } diff --git a/model/attributes/messaging/messaging__destination__connection.json b/model/attributes/messaging/messaging__destination__connection.json index b7612598..7e86e324 100644 --- a/model/attributes/messaging/messaging__destination__connection.json +++ b/model/attributes/messaging/messaging__destination__connection.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "BestTopic", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__destination__name.json b/model/attributes/messaging/messaging__destination__name.json index 09dafd2e..0b4c5718 100644 --- a/model/attributes/messaging/messaging__destination__name.json +++ b/model/attributes/messaging/messaging__destination__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "BestTopic", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__message__body__size.json b/model/attributes/messaging/messaging__message__body__size.json index 92499698..201f92f7 100644 --- a/model/attributes/messaging/messaging__message__body__size.json +++ b/model/attributes/messaging/messaging__message__body__size.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 839, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__message__envelope__size.json b/model/attributes/messaging/messaging__message__envelope__size.json index eb6b864b..c4072fa0 100644 --- a/model/attributes/messaging/messaging__message__envelope__size.json +++ b/model/attributes/messaging/messaging__message__envelope__size.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 1045, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__message__id.json b/model/attributes/messaging/messaging__message__id.json index 8ad8f5ff..4f79d762 100644 --- a/model/attributes/messaging/messaging__message__id.json +++ b/model/attributes/messaging/messaging__message__id.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "f47ac10b58cc4372a5670e02b2c3d479", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__message__receive__latency.json b/model/attributes/messaging/messaging__message__receive__latency.json index 2beca3c1..23ae839c 100644 --- a/model/attributes/messaging/messaging__message__receive__latency.json +++ b/model/attributes/messaging/messaging__message__receive__latency.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 1732847252, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__message__retry__count.json b/model/attributes/messaging/messaging__message__retry__count.json index 636bc665..675757c3 100644 --- a/model/attributes/messaging/messaging__message__retry__count.json +++ b/model/attributes/messaging/messaging__message__retry__count.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": 2, - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/messaging/messaging__operation__type.json b/model/attributes/messaging/messaging__operation__type.json index 4320ec07..13b29d34 100644 --- a/model/attributes/messaging/messaging__operation__type.json +++ b/model/attributes/messaging/messaging__operation__type.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": true, - "example": "create" + "example": "create", + "changelog": [ + { + "version": "0.1.0", + "prs": [51, 127] + } + ] } diff --git a/model/attributes/messaging/messaging__system.json b/model/attributes/messaging/messaging__system.json index a1fe1e5e..0781abdf 100644 --- a/model/attributes/messaging/messaging__system.json +++ b/model/attributes/messaging/messaging__system.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "activemq", - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/method.json b/model/attributes/method.json index 5db9936e..8f0efc3c 100644 --- a/model/attributes/method.json +++ b/model/attributes/method.json @@ -12,5 +12,14 @@ "replacement": "http.request.method" }, "alias": ["http.request.method"], - "sdks": ["javascript-browser", "javascript-node"] + "sdks": ["javascript-browser", "javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/navigation/navigation__type.json b/model/attributes/navigation/navigation__type.json index 033574c4..329bd4e0 100644 --- a/model/attributes/navigation/navigation__type.json +++ b/model/attributes/navigation/navigation__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "router.push" + "example": "router.push", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/nel/nel__elapsed_time.json b/model/attributes/nel/nel__elapsed_time.json index 43c3619a..f37a863b 100644 --- a/model/attributes/nel/nel__elapsed_time.json +++ b/model/attributes/nel/nel__elapsed_time.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 100 + "example": 100, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [68] + } + ] } diff --git a/model/attributes/nel/nel__phase.json b/model/attributes/nel/nel__phase.json index 550ca5a7..2b16ad42 100644 --- a/model/attributes/nel/nel__phase.json +++ b/model/attributes/nel/nel__phase.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "application" + "example": "application", + "changelog": [ + { + "version": "0.1.0", + "prs": [68, 127] + } + ] } diff --git a/model/attributes/nel/nel__referrer.json b/model/attributes/nel/nel__referrer.json index 2c9bedb9..03d1fc90 100644 --- a/model/attributes/nel/nel__referrer.json +++ b/model/attributes/nel/nel__referrer.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "https://example.com/foo?bar=baz" + "example": "https://example.com/foo?bar=baz", + "changelog": [ + { + "version": "0.1.0", + "prs": [68, 127] + } + ] } diff --git a/model/attributes/nel/nel__sampling_function.json b/model/attributes/nel/nel__sampling_function.json index 072aa976..997ee1df 100644 --- a/model/attributes/nel/nel__sampling_function.json +++ b/model/attributes/nel/nel__sampling_function.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 0.5 + "example": 0.5, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [68] + } + ] } diff --git a/model/attributes/nel/nel__type.json b/model/attributes/nel/nel__type.json index 9e4ec748..291b1ee1 100644 --- a/model/attributes/nel/nel__type.json +++ b/model/attributes/nel/nel__type.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "dns.unreachable" + "example": "dns.unreachable", + "changelog": [ + { + "version": "0.1.0", + "prs": [68, 127] + } + ] } diff --git a/model/attributes/net/net__host__ip.json b/model/attributes/net/net__host__ip.json index 36790c43..c22fbd61 100644 --- a/model/attributes/net/net__host__ip.json +++ b/model/attributes/net/net__host__ip.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.local.address" }, - "alias": ["network.local.address", "net.sock.host.addr"] + "alias": ["network.local.address", "net.sock.host.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__host__name.json b/model/attributes/net/net__host__name.json index 3682a436..500b6b2e 100644 --- a/model/attributes/net/net__host__name.json +++ b/model/attributes/net/net__host__name.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "server.address" }, - "alias": ["server.address", "http.server_name", "http.host"] + "alias": ["server.address", "http.server_name", "http.host"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__host__port.json b/model/attributes/net/net__host__port.json index 30f19f9e..228da88e 100644 --- a/model/attributes/net/net__host__port.json +++ b/model/attributes/net/net__host__port.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "server.port" }, - "alias": ["server.port"] + "alias": ["server.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__peer__ip.json b/model/attributes/net/net__peer__ip.json index 3b060a4d..8e793235 100644 --- a/model/attributes/net/net__peer__ip.json +++ b/model/attributes/net/net__peer__ip.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.peer.address" }, - "alias": ["network.peer.address", "net.sock.peer.addr"] + "alias": ["network.peer.address", "net.sock.peer.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__peer__name.json b/model/attributes/net/net__peer__name.json index 039bbbcc..c8fa6be0 100644 --- a/model/attributes/net/net__peer__name.json +++ b/model/attributes/net/net__peer__name.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "server.address", "reason": "Deprecated, use server.address on client spans and client.address on server spans." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__peer__port.json b/model/attributes/net/net__peer__port.json index 3906b5de..5850d45c 100644 --- a/model/attributes/net/net__peer__port.json +++ b/model/attributes/net/net__peer__port.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "server.port", "reason": "Deprecated, use server.port on client spans and client.port on server spans." - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__protocol__name.json b/model/attributes/net/net__protocol__name.json index 74986f5b..652fd6c7 100644 --- a/model/attributes/net/net__protocol__name.json +++ b/model/attributes/net/net__protocol__name.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.protocol.name" }, - "alias": ["network.protocol.name"] + "alias": ["network.protocol.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__protocol__version.json b/model/attributes/net/net__protocol__version.json index 3084a67b..685508d8 100644 --- a/model/attributes/net/net__protocol__version.json +++ b/model/attributes/net/net__protocol__version.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.protocol.version" }, - "alias": ["network.protocol.version", "http.flavor"] + "alias": ["network.protocol.version", "http.flavor"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__family.json b/model/attributes/net/net__sock__family.json index 712b6e78..5da376ee 100644 --- a/model/attributes/net/net__sock__family.json +++ b/model/attributes/net/net__sock__family.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.transport", "reason": "Deprecated, use network.transport and network.type." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__host__addr.json b/model/attributes/net/net__sock__host__addr.json index abdd7dcd..032549a8 100644 --- a/model/attributes/net/net__sock__host__addr.json +++ b/model/attributes/net/net__sock__host__addr.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.local.address" }, - "alias": ["network.local.address", "net.host.ip"] + "alias": ["network.local.address", "net.host.ip"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__host__port.json b/model/attributes/net/net__sock__host__port.json index 13a77ad8..73629fde 100644 --- a/model/attributes/net/net__sock__host__port.json +++ b/model/attributes/net/net__sock__host__port.json @@ -11,5 +11,18 @@ "_status": null, "replacement": "network.local.port" }, - "alias": ["network.local.port"] + "alias": ["network.local.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__peer__addr.json b/model/attributes/net/net__sock__peer__addr.json index 74ef2e15..e15d4eb9 100644 --- a/model/attributes/net/net__sock__peer__addr.json +++ b/model/attributes/net/net__sock__peer__addr.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.peer.address" }, - "alias": ["network.peer.address", "net.peer.ip"] + "alias": ["network.peer.address", "net.peer.ip"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__peer__name.json b/model/attributes/net/net__sock__peer__name.json index 561ad93e..9f4c66de 100644 --- a/model/attributes/net/net__sock__peer__name.json +++ b/model/attributes/net/net__sock__peer__name.json @@ -10,5 +10,14 @@ "deprecation": { "_status": null, "reason": "Deprecated from OTEL, no replacement at this time" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 119, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__sock__peer__port.json b/model/attributes/net/net__sock__peer__port.json index b4c4176e..6a2cf457 100644 --- a/model/attributes/net/net__sock__peer__port.json +++ b/model/attributes/net/net__sock__peer__port.json @@ -10,5 +10,18 @@ "deprecation": { "_status": null, "replacement": "network.peer.port" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/net/net__transport.json b/model/attributes/net/net__transport.json index 18245410..b7d9cb60 100644 --- a/model/attributes/net/net__transport.json +++ b/model/attributes/net/net__transport.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "network.transport" }, - "alias": ["network.transport"] + "alias": ["network.transport"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__local__address.json b/model/attributes/network/network__local__address.json index 64cd24c0..ea5a923d 100644 --- a/model/attributes/network/network__local__address.json +++ b/model/attributes/network/network__local__address.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "10.1.2.80", - "alias": ["net.host.ip", "net.sock.host.addr"] + "alias": ["net.host.ip", "net.sock.host.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__local__port.json b/model/attributes/network/network__local__port.json index a3237ab4..bcd4197c 100644 --- a/model/attributes/network/network__local__port.json +++ b/model/attributes/network/network__local__port.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 65400, - "alias": ["net.sock.host.port"] + "alias": ["net.sock.host.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__peer__address.json b/model/attributes/network/network__peer__address.json index cb5e103c..82caaa5d 100644 --- a/model/attributes/network/network__peer__address.json +++ b/model/attributes/network/network__peer__address.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "10.1.2.80", - "alias": ["net.peer.ip", "net.sock.peer.addr"] + "alias": ["net.peer.ip", "net.sock.peer.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__peer__port.json b/model/attributes/network/network__peer__port.json index 98df336e..91020d66 100644 --- a/model/attributes/network/network__peer__port.json +++ b/model/attributes/network/network__peer__port.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": 65400 + "example": 65400, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__protocol__name.json b/model/attributes/network/network__protocol__name.json index 83657a72..9716141b 100644 --- a/model/attributes/network/network__protocol__name.json +++ b/model/attributes/network/network__protocol__name.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "http", - "alias": ["net.protocol.name"] + "alias": ["net.protocol.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__protocol__version.json b/model/attributes/network/network__protocol__version.json index 3bae536f..2fea1134 100644 --- a/model/attributes/network/network__protocol__version.json +++ b/model/attributes/network/network__protocol__version.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "1.1", - "alias": ["http.flavor", "net.protocol.version"] + "alias": ["http.flavor", "net.protocol.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__transport.json b/model/attributes/network/network__transport.json index c58c0233..28eff03c 100644 --- a/model/attributes/network/network__transport.json +++ b/model/attributes/network/network__transport.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "tcp", - "alias": ["net.transport"] + "alias": ["net.transport"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/network/network__type.json b/model/attributes/network/network__type.json index ac4491ed..b9d572fe 100644 --- a/model/attributes/network/network__type.json +++ b/model/attributes/network/network__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "ipv4" + "example": "ipv4", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/os/os__build_id.json b/model/attributes/os/os__build_id.json index 2b9cd697..6f62aeb0 100644 --- a/model/attributes/os/os__build_id.json +++ b/model/attributes/os/os__build_id.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "1234567890" + "example": "1234567890", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/os/os__description.json b/model/attributes/os/os__description.json index 08363962..77897e2b 100644 --- a/model/attributes/os/os__description.json +++ b/model/attributes/os/os__description.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "Ubuntu 18.04.1 LTS" + "example": "Ubuntu 18.04.1 LTS", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/os/os__name.json b/model/attributes/os/os__name.json index 16acfb13..b0cfb729 100644 --- a/model/attributes/os/os__name.json +++ b/model/attributes/os/os__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "Ubuntu" + "example": "Ubuntu", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/os/os__type.json b/model/attributes/os/os__type.json index 07dba030..953b8183 100644 --- a/model/attributes/os/os__type.json +++ b/model/attributes/os/os__type.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "linux" + "example": "linux", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/os/os__version.json b/model/attributes/os/os__version.json index 5edb7d9b..3b213f19 100644 --- a/model/attributes/os/os__version.json +++ b/model/attributes/os/os__version.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "18.04.2" + "example": "18.04.2", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/otel/otel__scope__name.json b/model/attributes/otel/otel__scope__name.json index c83c6798..8566174a 100644 --- a/model/attributes/otel/otel__scope__name.json +++ b/model/attributes/otel/otel__scope__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "io.opentelemetry.contrib.mongodb" + "example": "io.opentelemetry.contrib.mongodb", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/otel/otel__scope__version.json b/model/attributes/otel/otel__scope__version.json index f389e6c5..87882243 100644 --- a/model/attributes/otel/otel__scope__version.json +++ b/model/attributes/otel/otel__scope__version.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "2.4.5" + "example": "2.4.5", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/otel/otel__status_code.json b/model/attributes/otel/otel__status_code.json index facc23f3..6caa40a6 100644 --- a/model/attributes/otel/otel__status_code.json +++ b/model/attributes/otel/otel__status_code.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "OK" + "example": "OK", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/otel/otel__status_description.json b/model/attributes/otel/otel__status_description.json index 01aa2a2d..885217ed 100644 --- a/model/attributes/otel/otel__status_description.json +++ b/model/attributes/otel/otel__status_description.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "resource not found" + "example": "resource not found", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/params/params__[key].json b/model/attributes/params/params__[key].json index 6bba2668..6175f93e 100644 --- a/model/attributes/params/params__[key].json +++ b/model/attributes/params/params__[key].json @@ -8,5 +8,11 @@ }, "is_in_otel": false, "example": "params.id='123'", - "alias": ["url.path.parameter."] + "alias": ["url.path.parameter."], + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/previous_route.json b/model/attributes/previous_route.json index 1ea29325..d08844b8 100644 --- a/model/attributes/previous_route.json +++ b/model/attributes/previous_route.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "HomeScreen", - "sdks": ["javascript-reactnative"] + "sdks": ["javascript-reactnative"], + "changelog": [ + { + "version": "0.1.0", + "prs": [74] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/process/process__executable__name.json b/model/attributes/process/process__executable__name.json index b04f945b..703a31b8 100644 --- a/model/attributes/process/process__executable__name.json +++ b/model/attributes/process/process__executable__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "getsentry" + "example": "getsentry", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/process/process__pid.json b/model/attributes/process/process__pid.json index b772ede7..2313b4b1 100644 --- a/model/attributes/process/process__pid.json +++ b/model/attributes/process/process__pid.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": 12345 + "example": 12345, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/process/process__runtime__description.json b/model/attributes/process/process__runtime__description.json index da3bb636..854ca0b6 100644 --- a/model/attributes/process/process__runtime__description.json +++ b/model/attributes/process/process__runtime__description.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "Eclipse OpenJ9 VM openj9-0.21.0" + "example": "Eclipse OpenJ9 VM openj9-0.21.0", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/process/process__runtime__name.json b/model/attributes/process/process__runtime__name.json index 7cbe2bd1..6aa485bb 100644 --- a/model/attributes/process/process__runtime__name.json +++ b/model/attributes/process/process__runtime__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "node" + "example": "node", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/process/process__runtime__version.json b/model/attributes/process/process__runtime__version.json index ee4c6c5f..22415f29 100644 --- a/model/attributes/process/process__runtime__version.json +++ b/model/attributes/process/process__runtime__version.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "18.04.2" + "example": "18.04.2", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/query/query__[key].json b/model/attributes/query/query__[key].json index f5da14fe..b16035f8 100644 --- a/model/attributes/query/query__[key].json +++ b/model/attributes/query/query__[key].json @@ -12,5 +12,11 @@ "replacement": "url.query", "reason": "Instead of sending items individually in query., they should be sent all together with url.query." }, - "example": "query.id='123'" + "example": "query.id='123'", + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/release.json b/model/attributes/release.json index 5f4f3fb5..1ba456e3 100644 --- a/model/attributes/release.json +++ b/model/attributes/release.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "sentry.release" }, - "alias": ["sentry.release"] + "alias": ["sentry.release"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/remix/remix__action_form_data__[key].json b/model/attributes/remix/remix__action_form_data__[key].json index a198e1b5..8d84ec28 100644 --- a/model/attributes/remix/remix__action_form_data__[key].json +++ b/model/attributes/remix/remix__action_form_data__[key].json @@ -8,5 +8,11 @@ }, "is_in_otel": false, "example": "http.response.header.text='test'", - "sdks": ["javascript-remix"] + "sdks": ["javascript-remix"], + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/replay_id.json b/model/attributes/replay_id.json index d5b8b0f3..c8438e00 100644 --- a/model/attributes/replay_id.json +++ b/model/attributes/replay_id.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "sentry.replay_id" }, - "alias": ["sentry.replay_id"] + "alias": ["sentry.replay_id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/resource/resource__deployment__environment.json b/model/attributes/resource/resource__deployment__environment.json index d8bddc13..a142f9dc 100644 --- a/model/attributes/resource/resource__deployment__environment.json +++ b/model/attributes/resource/resource__deployment__environment.json @@ -10,5 +10,11 @@ "deprecation": { "_status": "backfill", "replacement": "sentry.environment" - } + }, + "changelog": [ + { + "version": "next", + "prs": [266] + } + ] } diff --git a/model/attributes/resource/resource__deployment__environment__name.json b/model/attributes/resource/resource__deployment__environment__name.json index 09946be8..eee79930 100644 --- a/model/attributes/resource/resource__deployment__environment__name.json +++ b/model/attributes/resource/resource__deployment__environment__name.json @@ -10,5 +10,11 @@ "deprecation": { "_status": "backfill", "replacement": "sentry.environment" - } + }, + "changelog": [ + { + "version": "0.3.1", + "prs": [196] + } + ] } diff --git a/model/attributes/resource/resource__render_blocking_status.json b/model/attributes/resource/resource__render_blocking_status.json index 5d2513d9..884f8980 100644 --- a/model/attributes/resource/resource__render_blocking_status.json +++ b/model/attributes/resource/resource__render_blocking_status.json @@ -7,5 +7,14 @@ }, "is_in_otel": false, "example": "non-blocking", - "sdks": ["javascript-browser"] + "sdks": ["javascript-browser"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/route.json b/model/attributes/route.json index e864cde8..7aff896b 100644 --- a/model/attributes/route.json +++ b/model/attributes/route.json @@ -12,5 +12,14 @@ "replacement": "http.route" }, "alias": ["http.route"], - "sdks": ["php-laravel", "javascript-reactnative"] + "sdks": ["php-laravel", "javascript-reactnative"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/rpc/rpc__grpc__status_code.json b/model/attributes/rpc/rpc__grpc__status_code.json index 1524a681..088e53da 100644 --- a/model/attributes/rpc/rpc__grpc__status_code.json +++ b/model/attributes/rpc/rpc__grpc__status_code.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": 2 + "example": 2, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/rpc/rpc__service.json b/model/attributes/rpc/rpc__service.json index 81fe75a5..c8d98f98 100644 --- a/model/attributes/rpc/rpc__service.json +++ b/model/attributes/rpc/rpc__service.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "myService.BestService" + "example": "myService.BestService", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__action.json b/model/attributes/sentry/sentry__action.json index 17306004..751a365b 100644 --- a/model/attributes/sentry/sentry__action.json +++ b/model/attributes/sentry/sentry__action.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "SELECT" + "example": "SELECT", + "changelog": [ + { + "version": "0.4.0", + "prs": [212] + } + ] } diff --git a/model/attributes/sentry/sentry__browser__name.json b/model/attributes/sentry/sentry__browser__name.json index b4d9735f..eac40abe 100644 --- a/model/attributes/sentry/sentry__browser__name.json +++ b/model/attributes/sentry/sentry__browser__name.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "browser.name" }, - "alias": ["browser.name"] + "alias": ["browser.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [139] + } + ] } diff --git a/model/attributes/sentry/sentry__browser__version.json b/model/attributes/sentry/sentry__browser__version.json index c41546f0..14ea089a 100644 --- a/model/attributes/sentry/sentry__browser__version.json +++ b/model/attributes/sentry/sentry__browser__version.json @@ -11,5 +11,11 @@ "_status": null, "replacement": "browser.version" }, - "alias": ["browser.version"] + "alias": ["browser.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [139] + } + ] } diff --git a/model/attributes/sentry/sentry__cancellation_reason.json b/model/attributes/sentry/sentry__cancellation_reason.json index 414b0083..77d40616 100644 --- a/model/attributes/sentry/sentry__cancellation_reason.json +++ b/model/attributes/sentry/sentry__cancellation_reason.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "document.hidden" + "example": "document.hidden", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__category.json b/model/attributes/sentry/sentry__category.json index 1420d31a..d388dcbf 100644 --- a/model/attributes/sentry/sentry__category.json +++ b/model/attributes/sentry/sentry__category.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "db" + "example": "db", + "changelog": [ + { + "version": "0.4.0", + "prs": [218] + } + ] } diff --git a/model/attributes/sentry/sentry__client_sample_rate.json b/model/attributes/sentry/sentry__client_sample_rate.json index f06e5eb6..7bb707c3 100644 --- a/model/attributes/sentry/sentry__client_sample_rate.json +++ b/model/attributes/sentry/sentry__client_sample_rate.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": 0.5 + "example": 0.5, + "changelog": [ + { + "version": "0.1.0", + "prs": [102] + } + ] } diff --git a/model/attributes/sentry/sentry__description.json b/model/attributes/sentry/sentry__description.json index 1503a57a..96d52233 100644 --- a/model/attributes/sentry/sentry__description.json +++ b/model/attributes/sentry/sentry__description.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "index view query" + "example": "index view query", + "changelog": [ + { + "version": "0.1.0", + "prs": [135] + } + ] } diff --git a/model/attributes/sentry/sentry__dist.json b/model/attributes/sentry/sentry__dist.json index 69e5a024..5fef2053 100644 --- a/model/attributes/sentry/sentry__dist.json +++ b/model/attributes/sentry/sentry__dist.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "1.0" + "example": "1.0", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__domain.json b/model/attributes/sentry/sentry__domain.json index f1021b8e..54d49713 100644 --- a/model/attributes/sentry/sentry__domain.json +++ b/model/attributes/sentry/sentry__domain.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "example.com" + "example": "example.com", + "changelog": [ + { + "version": "0.4.0", + "prs": [212] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__environment.json b/model/attributes/sentry/sentry__dsc__environment.json index 7adee271..db7d13dd 100644 --- a/model/attributes/sentry/sentry__dsc__environment.json +++ b/model/attributes/sentry/sentry__dsc__environment.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "prod" + "example": "prod", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__public_key.json b/model/attributes/sentry/sentry__dsc__public_key.json index 593267ce..6960141e 100644 --- a/model/attributes/sentry/sentry__dsc__public_key.json +++ b/model/attributes/sentry/sentry__dsc__public_key.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "c51734c603c4430eb57cb0a5728a479d" + "example": "c51734c603c4430eb57cb0a5728a479d", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__release.json b/model/attributes/sentry/sentry__dsc__release.json index e4320d89..e82257d0 100644 --- a/model/attributes/sentry/sentry__dsc__release.json +++ b/model/attributes/sentry/sentry__dsc__release.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "frontend@e8211be71b214afab5b85de4b4c54be3714952bb" + "example": "frontend@e8211be71b214afab5b85de4b4c54be3714952bb", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__sample_rate.json b/model/attributes/sentry/sentry__dsc__sample_rate.json index a653dab2..75094125 100644 --- a/model/attributes/sentry/sentry__dsc__sample_rate.json +++ b/model/attributes/sentry/sentry__dsc__sample_rate.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "1.0" + "example": "1.0", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__sampled.json b/model/attributes/sentry/sentry__dsc__sampled.json index 3ef095f7..ee3a40a9 100644 --- a/model/attributes/sentry/sentry__dsc__sampled.json +++ b/model/attributes/sentry/sentry__dsc__sampled.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__trace_id.json b/model/attributes/sentry/sentry__dsc__trace_id.json index 9f8b5a05..387c5592 100644 --- a/model/attributes/sentry/sentry__dsc__trace_id.json +++ b/model/attributes/sentry/sentry__dsc__trace_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "047372980460430cbc78d9779df33a46" + "example": "047372980460430cbc78d9779df33a46", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__dsc__transaction.json b/model/attributes/sentry/sentry__dsc__transaction.json index 91b58223..7f435fee 100644 --- a/model/attributes/sentry/sentry__dsc__transaction.json +++ b/model/attributes/sentry/sentry__dsc__transaction.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "/issues/errors-outages/" + "example": "/issues/errors-outages/", + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__environment.json b/model/attributes/sentry/sentry__environment.json index 5f74d611..8064e265 100644 --- a/model/attributes/sentry/sentry__environment.json +++ b/model/attributes/sentry/sentry__environment.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "production", - "alias": ["environment"] + "alias": ["environment"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__exclusive_time.json b/model/attributes/sentry/sentry__exclusive_time.json index 7fbf875c..7b07edc8 100644 --- a/model/attributes/sentry/sentry__exclusive_time.json +++ b/model/attributes/sentry/sentry__exclusive_time.json @@ -6,5 +6,18 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1234 + "example": 1234, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.3.0", + "prs": [160] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__graphql__operation.json b/model/attributes/sentry/sentry__graphql__operation.json index 9999c8ab..c3933274 100644 --- a/model/attributes/sentry/sentry__graphql__operation.json +++ b/model/attributes/sentry/sentry__graphql__operation.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "getUserById" + "example": "getUserById", + "changelog": [ + { + "version": "0.3.1", + "prs": [190] + } + ] } diff --git a/model/attributes/sentry/sentry__group.json b/model/attributes/sentry/sentry__group.json index 35484f83..87a3e2fa 100644 --- a/model/attributes/sentry/sentry__group.json +++ b/model/attributes/sentry/sentry__group.json @@ -5,5 +5,11 @@ "pii": { "key": "false" }, - "is_in_otel": false + "is_in_otel": false, + "changelog": [ + { + "version": "0.4.0", + "prs": [212] + } + ] } diff --git a/model/attributes/sentry/sentry__http__prefetch.json b/model/attributes/sentry/sentry__http__prefetch.json index e64a7bf0..4c7d3033 100644 --- a/model/attributes/sentry/sentry__http__prefetch.json +++ b/model/attributes/sentry/sentry__http__prefetch.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__idle_span_finish_reason.json b/model/attributes/sentry/sentry__idle_span_finish_reason.json index 65dab774..48ab96b4 100644 --- a/model/attributes/sentry/sentry__idle_span_finish_reason.json +++ b/model/attributes/sentry/sentry__idle_span_finish_reason.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "idleTimeout" + "example": "idleTimeout", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__is_remote.json b/model/attributes/sentry/sentry__is_remote.json index 1a80af69..2222cdc1 100644 --- a/model/attributes/sentry/sentry__is_remote.json +++ b/model/attributes/sentry/sentry__is_remote.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.3.1", + "prs": [190] + } + ] } diff --git a/model/attributes/sentry/sentry__kind.json b/model/attributes/sentry/sentry__kind.json index b0d7bf3e..8b90b6fe 100644 --- a/model/attributes/sentry/sentry__kind.json +++ b/model/attributes/sentry/sentry__kind.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "server" + "example": "server", + "changelog": [ + { + "version": "0.3.1", + "prs": [190] + } + ] } diff --git a/model/attributes/sentry/sentry__message__parameter__[key].json b/model/attributes/sentry/sentry__message__parameter__[key].json index fef2f046..6576722f 100644 --- a/model/attributes/sentry/sentry__message__parameter__[key].json +++ b/model/attributes/sentry/sentry__message__parameter__[key].json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "sentry.message.parameter.0='123'" + "example": "sentry.message.parameter.0='123'", + "changelog": [ + { + "version": "0.1.0", + "prs": [116] + } + ] } diff --git a/model/attributes/sentry/sentry__message__template.json b/model/attributes/sentry/sentry__message__template.json index 1c010802..e10ac39a 100644 --- a/model/attributes/sentry/sentry__message__template.json +++ b/model/attributes/sentry/sentry__message__template.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Hello, {name}!" + "example": "Hello, {name}!", + "changelog": [ + { + "version": "0.1.0", + "prs": [116] + } + ] } diff --git a/model/attributes/sentry/sentry__module__[key].json b/model/attributes/sentry/sentry__module__[key].json index 807923dd..e6babf78 100644 --- a/model/attributes/sentry/sentry__module__[key].json +++ b/model/attributes/sentry/sentry__module__[key].json @@ -7,5 +7,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "sentry.module.brianium/paratest='v7.7.0'" + "example": "sentry.module.brianium/paratest='v7.7.0'", + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/sentry/sentry__nextjs__ssr__function__route.json b/model/attributes/sentry/sentry__nextjs__ssr__function__route.json index d88bf181..ab5687cc 100644 --- a/model/attributes/sentry/sentry__nextjs__ssr__function__route.json +++ b/model/attributes/sentry/sentry__nextjs__ssr__function__route.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "/posts/[id]/layout", - "sdks": ["javascript"] + "sdks": ["javascript"], + "changelog": [ + { + "version": "0.1.0", + "prs": [54, 106] + } + ] } diff --git a/model/attributes/sentry/sentry__nextjs__ssr__function__type.json b/model/attributes/sentry/sentry__nextjs__ssr__function__type.json index fbf8295a..9278bfd4 100644 --- a/model/attributes/sentry/sentry__nextjs__ssr__function__type.json +++ b/model/attributes/sentry/sentry__nextjs__ssr__function__type.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "generateMetadata", - "sdks": ["javascript"] + "sdks": ["javascript"], + "changelog": [ + { + "version": "0.1.0", + "prs": [54, 106] + } + ] } diff --git a/model/attributes/sentry/sentry__normalized_db_query.json b/model/attributes/sentry/sentry__normalized_db_query.json index b3be0eb2..dcccf218 100644 --- a/model/attributes/sentry/sentry__normalized_db_query.json +++ b/model/attributes/sentry/sentry__normalized_db_query.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "SELECT .. FROM sentry_project WHERE (project_id = %s)" + "example": "SELECT .. FROM sentry_project WHERE (project_id = %s)", + "changelog": [ + { + "version": "0.3.1", + "prs": [194] + } + ] } diff --git a/model/attributes/sentry/sentry__normalized_db_query__hash.json b/model/attributes/sentry/sentry__normalized_db_query__hash.json index 1ad76fca..2a78e84b 100644 --- a/model/attributes/sentry/sentry__normalized_db_query__hash.json +++ b/model/attributes/sentry/sentry__normalized_db_query__hash.json @@ -5,5 +5,11 @@ "pii": { "key": "false" }, - "is_in_otel": false + "is_in_otel": false, + "changelog": [ + { + "version": "0.4.0", + "prs": [200] + } + ] } diff --git a/model/attributes/sentry/sentry__normalized_description.json b/model/attributes/sentry/sentry__normalized_description.json index bb05131b..4bfd47a3 100644 --- a/model/attributes/sentry/sentry__normalized_description.json +++ b/model/attributes/sentry/sentry__normalized_description.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "SELECT .. FROM sentry_project WHERE (project_id = %s)" + "example": "SELECT .. FROM sentry_project WHERE (project_id = %s)", + "changelog": [ + { + "version": "0.4.0", + "prs": [212] + } + ] } diff --git a/model/attributes/sentry/sentry__observed_timestamp_nanos.json b/model/attributes/sentry/sentry__observed_timestamp_nanos.json index aa55577b..7541a0f8 100644 --- a/model/attributes/sentry/sentry__observed_timestamp_nanos.json +++ b/model/attributes/sentry/sentry__observed_timestamp_nanos.json @@ -6,5 +6,15 @@ "key": "false" }, "is_in_otel": false, - "example": "1544712660300000000" + "example": "1544712660300000000", + "changelog": [ + { + "version": "0.3.0", + "prs": [174] + }, + { + "version": "0.2.0", + "prs": [137] + } + ] } diff --git a/model/attributes/sentry/sentry__op.json b/model/attributes/sentry/sentry__op.json index 90572c9a..4d2629bb 100644 --- a/model/attributes/sentry/sentry__op.json +++ b/model/attributes/sentry/sentry__op.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "http.client" + "example": "http.client", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__origin.json b/model/attributes/sentry/sentry__origin.json index ce90a1b5..baf0977f 100644 --- a/model/attributes/sentry/sentry__origin.json +++ b/model/attributes/sentry/sentry__origin.json @@ -6,5 +6,14 @@ "key": "false" }, "is_in_otel": false, - "example": "auto.http.otel.fastify" + "example": "auto.http.otel.fastify", + "changelog": [ + { + "version": "0.1.0", + "prs": [68] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__platform.json b/model/attributes/sentry/sentry__platform.json index 46d54370..8065805d 100644 --- a/model/attributes/sentry/sentry__platform.json +++ b/model/attributes/sentry/sentry__platform.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "php" + "example": "php", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__profiler_id.json b/model/attributes/sentry/sentry__profiler_id.json index acd41b91..e084dd46 100644 --- a/model/attributes/sentry/sentry__profiler_id.json +++ b/model/attributes/sentry/sentry__profiler_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "18779b64dd35d1a538e7ce2dd2d3fad3" + "example": "18779b64dd35d1a538e7ce2dd2d3fad3", + "changelog": [ + { + "version": "0.4.0", + "prs": [242] + } + ] } diff --git a/model/attributes/sentry/sentry__release.json b/model/attributes/sentry/sentry__release.json index 8c527afa..a96df2af 100644 --- a/model/attributes/sentry/sentry__release.json +++ b/model/attributes/sentry/sentry__release.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "7.0.0", - "alias": ["service.version", "release"] + "alias": ["service.version", "release"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__replay_id.json b/model/attributes/sentry/sentry__replay_id.json index b5e4fc8d..924295e4 100644 --- a/model/attributes/sentry/sentry__replay_id.json +++ b/model/attributes/sentry/sentry__replay_id.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "123e4567e89b12d3a456426614174000", - "alias": ["replay_id"] + "alias": ["replay_id"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__replay_is_buffering.json b/model/attributes/sentry/sentry__replay_is_buffering.json index e6334287..b8681c6e 100644 --- a/model/attributes/sentry/sentry__replay_is_buffering.json +++ b/model/attributes/sentry/sentry__replay_is_buffering.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.3.0", + "prs": [185] + } + ] } diff --git a/model/attributes/sentry/sentry__sdk__integrations.json b/model/attributes/sentry/sentry__sdk__integrations.json index 680cb549..058532aa 100644 --- a/model/attributes/sentry/sentry__sdk__integrations.json +++ b/model/attributes/sentry/sentry__sdk__integrations.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": ["InboundFilters", "FunctionToString", "BrowserApiErrors", "Breadcrumbs"] + "example": ["InboundFilters", "FunctionToString", "BrowserApiErrors", "Breadcrumbs"], + "changelog": [ + { + "version": "0.0.0", + "prs": [42] + } + ] } diff --git a/model/attributes/sentry/sentry__sdk__name.json b/model/attributes/sentry/sentry__sdk__name.json index 0e44792a..b8b89ace 100644 --- a/model/attributes/sentry/sentry__sdk__name.json +++ b/model/attributes/sentry/sentry__sdk__name.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "@sentry/react" + "example": "@sentry/react", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__sdk__version.json b/model/attributes/sentry/sentry__sdk__version.json index 1c80ceca..d447ea00 100644 --- a/model/attributes/sentry/sentry__sdk__version.json +++ b/model/attributes/sentry/sentry__sdk__version.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": "7.0.0" + "example": "7.0.0", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__segment__id.json b/model/attributes/sentry/sentry__segment__id.json index 5412d054..21f3868c 100644 --- a/model/attributes/sentry/sentry__segment__id.json +++ b/model/attributes/sentry/sentry__segment__id.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "051581bf3cb55c13", - "alias": ["sentry.segment_id"] + "alias": ["sentry.segment_id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [107, 124] + } + ] } diff --git a/model/attributes/sentry/sentry__segment__name.json b/model/attributes/sentry/sentry__segment__name.json index 53df2bd2..258337eb 100644 --- a/model/attributes/sentry/sentry__segment__name.json +++ b/model/attributes/sentry/sentry__segment__name.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "GET /user" + "example": "GET /user", + "changelog": [ + { + "version": "0.1.0", + "prs": [104] + } + ] } diff --git a/model/attributes/sentry/sentry__segment_id.json b/model/attributes/sentry/sentry__segment_id.json index 082326a7..b939b902 100644 --- a/model/attributes/sentry/sentry__segment_id.json +++ b/model/attributes/sentry/sentry__segment_id.json @@ -11,5 +11,11 @@ "deprecation": { "_status": null, "replacement": "sentry.segment.id" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [124] + } + ] } diff --git a/model/attributes/sentry/sentry__server_sample_rate.json b/model/attributes/sentry/sentry__server_sample_rate.json index 847a3b87..f2be53f2 100644 --- a/model/attributes/sentry/sentry__server_sample_rate.json +++ b/model/attributes/sentry/sentry__server_sample_rate.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": 0.5 + "example": 0.5, + "changelog": [ + { + "version": "0.1.0", + "prs": [102] + } + ] } diff --git a/model/attributes/sentry/sentry__span__source.json b/model/attributes/sentry/sentry__span__source.json index 9f048096..74a3633d 100644 --- a/model/attributes/sentry/sentry__span__source.json +++ b/model/attributes/sentry/sentry__span__source.json @@ -6,5 +6,14 @@ "key": "false" }, "is_in_otel": false, - "example": "route" + "example": "route", + "changelog": [ + { + "version": "0.4.0", + "prs": [214] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/sentry/sentry__status__message.json b/model/attributes/sentry/sentry__status__message.json index 87fdeb27..ed199558 100644 --- a/model/attributes/sentry/sentry__status__message.json +++ b/model/attributes/sentry/sentry__status__message.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "foobar" + "example": "foobar", + "changelog": [ + { + "version": "0.3.1", + "prs": [190] + } + ] } diff --git a/model/attributes/sentry/sentry__status_code.json b/model/attributes/sentry/sentry__status_code.json index 404586ac..f25cfc71 100644 --- a/model/attributes/sentry/sentry__status_code.json +++ b/model/attributes/sentry/sentry__status_code.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": 200 + "example": 200, + "changelog": [ + { + "version": "0.4.0", + "prs": [223, 228] + } + ] } diff --git a/model/attributes/sentry/sentry__trace__parent_span_id.json b/model/attributes/sentry/sentry__trace__parent_span_id.json index e653a929..d81665fe 100644 --- a/model/attributes/sentry/sentry__trace__parent_span_id.json +++ b/model/attributes/sentry/sentry__trace__parent_span_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "b0e6f15b45c36b12" + "example": "b0e6f15b45c36b12", + "changelog": [ + { + "version": "0.1.0", + "prs": [116] + } + ] } diff --git a/model/attributes/sentry/sentry__transaction.json b/model/attributes/sentry/sentry__transaction.json index b7bcac99..2e9a8fc2 100644 --- a/model/attributes/sentry/sentry__transaction.json +++ b/model/attributes/sentry/sentry__transaction.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "GET /", - "alias": ["transaction"] + "alias": ["transaction"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/server/server__address.json b/model/attributes/server/server__address.json index b256418e..82787b05 100644 --- a/model/attributes/server/server__address.json +++ b/model/attributes/server/server__address.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "example.com", - "alias": ["http.server_name", "net.host.name", "http.host"] + "alias": ["http.server_name", "net.host.name", "http.host"], + "changelog": [ + { + "version": "0.1.0", + "prs": [108, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/server/server__port.json b/model/attributes/server/server__port.json index 6678cdae..573d0b4d 100644 --- a/model/attributes/server/server__port.json +++ b/model/attributes/server/server__port.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": 1337, - "alias": ["net.host.port"] + "alias": ["net.host.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/service/service__name.json b/model/attributes/service/service__name.json index 8351fe3a..f1fd3f7d 100644 --- a/model/attributes/service/service__name.json +++ b/model/attributes/service/service__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "omegastar" + "example": "omegastar", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/service/service__version.json b/model/attributes/service/service__version.json index c01f0d27..869f42f4 100644 --- a/model/attributes/service/service__version.json +++ b/model/attributes/service/service__version.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "5.0.0", - "alias": ["sentry.release"] + "alias": ["sentry.release"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/thread/thread__id.json b/model/attributes/thread/thread__id.json index 478c0af9..d0c34ed6 100644 --- a/model/attributes/thread/thread__id.json +++ b/model/attributes/thread/thread__id.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": true, - "example": 56 + "example": 56, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/thread/thread__name.json b/model/attributes/thread/thread__name.json index 3f77c561..3dad8f92 100644 --- a/model/attributes/thread/thread__name.json +++ b/model/attributes/thread/thread__name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "main" + "example": "main", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/timber/timber__tag.json b/model/attributes/timber/timber__tag.json index fbf0a49d..1e7e1b69 100644 --- a/model/attributes/timber/timber__tag.json +++ b/model/attributes/timber/timber__tag.json @@ -7,5 +7,11 @@ }, "is_in_otel": false, "example": "MyTag", - "sdks": ["sentry.java.android"] + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "0.3.0", + "prs": [183] + } + ] } diff --git a/model/attributes/transaction.json b/model/attributes/transaction.json index e019684f..c5a910db 100644 --- a/model/attributes/transaction.json +++ b/model/attributes/transaction.json @@ -11,5 +11,14 @@ "_status": null, "replacement": "sentry.transaction" }, - "alias": ["sentry.transaction"] + "alias": ["sentry.transaction"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/type.json b/model/attributes/type.json index 13dfe7ae..61ad3e50 100644 --- a/model/attributes/type.json +++ b/model/attributes/type.json @@ -7,5 +7,10 @@ }, "is_in_otel": false, "example": "fetch", - "sdks": ["javascript-browser", "javascript-node"] + "sdks": ["javascript-browser", "javascript-node"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ui/ui__component_name.json b/model/attributes/ui/ui__component_name.json index 1fbe53af..ead755c3 100644 --- a/model/attributes/ui/ui__component_name.json +++ b/model/attributes/ui/ui__component_name.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": false, - "example": "HomeButton" + "example": "HomeButton", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ui/ui__contributes_to_ttfd.json b/model/attributes/ui/ui__contributes_to_ttfd.json index f873b8fe..b24fc4f8 100644 --- a/model/attributes/ui/ui__contributes_to_ttfd.json +++ b/model/attributes/ui/ui__contributes_to_ttfd.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/ui/ui__contributes_to_ttid.json b/model/attributes/ui/ui__contributes_to_ttid.json index efded72b..8187fccf 100644 --- a/model/attributes/ui/ui__contributes_to_ttid.json +++ b/model/attributes/ui/ui__contributes_to_ttid.json @@ -6,5 +6,10 @@ "key": "false" }, "is_in_otel": false, - "example": true + "example": true, + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url.json b/model/attributes/url.json index dbd0a833..132ce9bd 100644 --- a/model/attributes/url.json +++ b/model/attributes/url.json @@ -12,5 +12,14 @@ "replacement": "url.full" }, "alias": ["url.full", "http.url"], - "sdks": ["javascript-browser", "javascript-node"] + "sdks": ["javascript-browser", "javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__domain.json b/model/attributes/url/url__domain.json index c0d35f18..7be362d3 100644 --- a/model/attributes/url/url__domain.json +++ b/model/attributes/url/url__domain.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": "example.com" + "example": "example.com", + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__fragment.json b/model/attributes/url/url__fragment.json index 5b5885e6..c839a88a 100644 --- a/model/attributes/url/url__fragment.json +++ b/model/attributes/url/url__fragment.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": true, - "example": "details" + "example": "details", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__full.json b/model/attributes/url/url__full.json index 7da909a0..f0e6cc1d 100644 --- a/model/attributes/url/url__full.json +++ b/model/attributes/url/url__full.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "https://example.com/test?foo=bar#buzz", - "alias": ["http.url", "url"] + "alias": ["http.url", "url"], + "changelog": [ + { + "version": "0.1.0", + "prs": [108] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__path.json b/model/attributes/url/url__path.json index fe71bb39..9b53f873 100644 --- a/model/attributes/url/url__path.json +++ b/model/attributes/url/url__path.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": true, - "example": "/foo" + "example": "/foo", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__path__parameter__[key].json b/model/attributes/url/url__path__parameter__[key].json index 8c61bdc6..f2f9bfad 100644 --- a/model/attributes/url/url__path__parameter__[key].json +++ b/model/attributes/url/url__path__parameter__[key].json @@ -8,5 +8,11 @@ }, "is_in_otel": false, "example": "url.path.parameter.id='123'", - "alias": ["params."] + "alias": ["params."], + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] } diff --git a/model/attributes/url/url__port.json b/model/attributes/url/url__port.json index 3be9bbab..815807dd 100644 --- a/model/attributes/url/url__port.json +++ b/model/attributes/url/url__port.json @@ -6,5 +6,14 @@ "key": "maybe" }, "is_in_otel": true, - "example": 1337 + "example": 1337, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__query.json b/model/attributes/url/url__query.json index 70840340..26220b36 100644 --- a/model/attributes/url/url__query.json +++ b/model/attributes/url/url__query.json @@ -7,5 +7,10 @@ "reason": "Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information." }, "is_in_otel": true, - "example": "foo=bar&bar=baz" + "example": "foo=bar&bar=baz", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__scheme.json b/model/attributes/url/url__scheme.json index af1a732f..5ddb7777 100644 --- a/model/attributes/url/url__scheme.json +++ b/model/attributes/url/url__scheme.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "https", - "alias": ["http.scheme"] + "alias": ["http.scheme"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/url/url__template.json b/model/attributes/url/url__template.json index a55c6fe3..5ffa0fce 100644 --- a/model/attributes/url/url__template.json +++ b/model/attributes/url/url__template.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "example": "/users/:id", - "alias": ["http.route"] + "alias": ["http.route"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__email.json b/model/attributes/user/user__email.json index 2dadaa9c..43c712ae 100644 --- a/model/attributes/user/user__email.json +++ b/model/attributes/user/user__email.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "test@example.com" + "example": "test@example.com", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__full_name.json b/model/attributes/user/user__full_name.json index d66e357c..b10f3994 100644 --- a/model/attributes/user/user__full_name.json +++ b/model/attributes/user/user__full_name.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "John Smith" + "example": "John Smith", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__geo__city.json b/model/attributes/user/user__geo__city.json index 1ebd56c1..2c366655 100644 --- a/model/attributes/user/user__geo__city.json +++ b/model/attributes/user/user__geo__city.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Toronto" + "example": "Toronto", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__geo__country_code.json b/model/attributes/user/user__geo__country_code.json index 1bbf3d3b..f0f8be56 100644 --- a/model/attributes/user/user__geo__country_code.json +++ b/model/attributes/user/user__geo__country_code.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": false, - "example": "CA" + "example": "CA", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__geo__region.json b/model/attributes/user/user__geo__region.json index a616405e..f75fbfa4 100644 --- a/model/attributes/user/user__geo__region.json +++ b/model/attributes/user/user__geo__region.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Canada" + "example": "Canada", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__geo__subdivision.json b/model/attributes/user/user__geo__subdivision.json index 0e4e6896..3d24a10e 100644 --- a/model/attributes/user/user__geo__subdivision.json +++ b/model/attributes/user/user__geo__subdivision.json @@ -6,5 +6,10 @@ "key": "maybe" }, "is_in_otel": false, - "example": "Ontario" + "example": "Ontario", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__hash.json b/model/attributes/user/user__hash.json index 3cabb4a1..138ebb71 100644 --- a/model/attributes/user/user__hash.json +++ b/model/attributes/user/user__hash.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d" + "example": "8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__id.json b/model/attributes/user/user__id.json index 64c99336..05b1f8ce 100644 --- a/model/attributes/user/user__id.json +++ b/model/attributes/user/user__id.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "S-1-5-21-202424912787-2692429404-2351956786-1000" + "example": "S-1-5-21-202424912787-2692429404-2351956786-1000", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__ip_address.json b/model/attributes/user/user__ip_address.json index 93c54bae..a19b9177 100644 --- a/model/attributes/user/user__ip_address.json +++ b/model/attributes/user/user__ip_address.json @@ -6,5 +6,11 @@ "key": "true" }, "is_in_otel": false, - "example": "192.168.1.1" + "example": "192.168.1.1", + "changelog": [ + { + "version": "0.1.0", + "prs": [75] + } + ] } diff --git a/model/attributes/user/user__name.json b/model/attributes/user/user__name.json index 6134d7f5..3d55a5a8 100644 --- a/model/attributes/user/user__name.json +++ b/model/attributes/user/user__name.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": "j.smith" + "example": "j.smith", + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user/user__roles.json b/model/attributes/user/user__roles.json index 3a45694f..9f6c6fdb 100644 --- a/model/attributes/user/user__roles.json +++ b/model/attributes/user/user__roles.json @@ -6,5 +6,10 @@ "key": "true" }, "is_in_otel": true, - "example": ["admin", "editor"] + "example": ["admin", "editor"], + "changelog": [ + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/user_agent/user_agent__original.json b/model/attributes/user_agent/user_agent__original.json index b9c3dd1c..63ab13f2 100644 --- a/model/attributes/user_agent/user_agent__original.json +++ b/model/attributes/user_agent/user_agent__original.json @@ -7,5 +7,14 @@ }, "is_in_otel": true, "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", - "alias": ["http.user_agent"] + "alias": ["http.user_agent"], + "changelog": [ + { + "version": "0.1.0", + "prs": [127] + }, + { + "version": "0.0.0" + } + ] } diff --git a/model/attributes/vercel/vercel__branch.json b/model/attributes/vercel/vercel__branch.json index 65efc53c..6c1219e1 100644 --- a/model/attributes/vercel/vercel__branch.json +++ b/model/attributes/vercel/vercel__branch.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "main" + "example": "main", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__build_id.json b/model/attributes/vercel/vercel__build_id.json index 03f574e4..7b549743 100644 --- a/model/attributes/vercel/vercel__build_id.json +++ b/model/attributes/vercel/vercel__build_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "bld_cotnkcr76" + "example": "bld_cotnkcr76", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__deployment_id.json b/model/attributes/vercel/vercel__deployment_id.json index ddd5fc83..156863db 100644 --- a/model/attributes/vercel/vercel__deployment_id.json +++ b/model/attributes/vercel/vercel__deployment_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "dpl_233NRGRjVZX1caZrXWtz5g1TAksD" + "example": "dpl_233NRGRjVZX1caZrXWtz5g1TAksD", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__destination.json b/model/attributes/vercel/vercel__destination.json index f439d129..6882b736 100644 --- a/model/attributes/vercel/vercel__destination.json +++ b/model/attributes/vercel/vercel__destination.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "https://vitals.vercel-insights.com/v1" + "example": "https://vitals.vercel-insights.com/v1", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__edge_type.json b/model/attributes/vercel/vercel__edge_type.json index ad3b5756..5c10c900 100644 --- a/model/attributes/vercel/vercel__edge_type.json +++ b/model/attributes/vercel/vercel__edge_type.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "edge-function" + "example": "edge-function", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__entrypoint.json b/model/attributes/vercel/vercel__entrypoint.json index f0b71961..21376a39 100644 --- a/model/attributes/vercel/vercel__entrypoint.json +++ b/model/attributes/vercel/vercel__entrypoint.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "api/index.js" + "example": "api/index.js", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__execution_region.json b/model/attributes/vercel/vercel__execution_region.json index 48a947ae..6a7d43a6 100644 --- a/model/attributes/vercel/vercel__execution_region.json +++ b/model/attributes/vercel/vercel__execution_region.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "sfo1" + "example": "sfo1", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__id.json b/model/attributes/vercel/vercel__id.json index 2310fb39..d67429a3 100644 --- a/model/attributes/vercel/vercel__id.json +++ b/model/attributes/vercel/vercel__id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "1573817187330377061717300000" + "example": "1573817187330377061717300000", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__ja3_digest.json b/model/attributes/vercel/vercel__ja3_digest.json index 60c80d44..2435a1d1 100644 --- a/model/attributes/vercel/vercel__ja3_digest.json +++ b/model/attributes/vercel/vercel__ja3_digest.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0" + "example": "769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__ja4_digest.json b/model/attributes/vercel/vercel__ja4_digest.json index 75369bb1..ee02e067 100644 --- a/model/attributes/vercel/vercel__ja4_digest.json +++ b/model/attributes/vercel/vercel__ja4_digest.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "t13d1516h2_8daaf6152771_02713d6af862" + "example": "t13d1516h2_8daaf6152771_02713d6af862", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__log_type.json b/model/attributes/vercel/vercel__log_type.json index e2e61e84..05a72d49 100644 --- a/model/attributes/vercel/vercel__log_type.json +++ b/model/attributes/vercel/vercel__log_type.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "stdout" + "example": "stdout", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__project_id.json b/model/attributes/vercel/vercel__project_id.json index f11d8370..632d19fa 100644 --- a/model/attributes/vercel/vercel__project_id.json +++ b/model/attributes/vercel/vercel__project_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "gdufoJxB6b9b1fEqr1jUtFkyavUU" + "example": "gdufoJxB6b9b1fEqr1jUtFkyavUU", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__project_name.json b/model/attributes/vercel/vercel__project_name.json index 26076065..5776e7a5 100644 --- a/model/attributes/vercel/vercel__project_name.json +++ b/model/attributes/vercel/vercel__project_name.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "my-app" + "example": "my-app", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__cache_id.json b/model/attributes/vercel/vercel__proxy__cache_id.json index f8fd5248..4efd62fc 100644 --- a/model/attributes/vercel/vercel__proxy__cache_id.json +++ b/model/attributes/vercel/vercel__proxy__cache_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "pdx1::v8g4b-1744143786684-93dafbc0f70d" + "example": "pdx1::v8g4b-1744143786684-93dafbc0f70d", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__client_ip.json b/model/attributes/vercel/vercel__proxy__client_ip.json index d17df0e2..37cc3d00 100644 --- a/model/attributes/vercel/vercel__proxy__client_ip.json +++ b/model/attributes/vercel/vercel__proxy__client_ip.json @@ -6,5 +6,11 @@ "key": "true" }, "is_in_otel": false, - "example": "120.75.16.101" + "example": "120.75.16.101", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__host.json b/model/attributes/vercel/vercel__proxy__host.json index b1f63ac1..62c8bdf9 100644 --- a/model/attributes/vercel/vercel__proxy__host.json +++ b/model/attributes/vercel/vercel__proxy__host.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "test.vercel.app" + "example": "test.vercel.app", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__lambda_region.json b/model/attributes/vercel/vercel__proxy__lambda_region.json index 03061c56..e986c7aa 100644 --- a/model/attributes/vercel/vercel__proxy__lambda_region.json +++ b/model/attributes/vercel/vercel__proxy__lambda_region.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "sfo1" + "example": "sfo1", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__method.json b/model/attributes/vercel/vercel__proxy__method.json index 8375b79e..85cee2d8 100644 --- a/model/attributes/vercel/vercel__proxy__method.json +++ b/model/attributes/vercel/vercel__proxy__method.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "GET" + "example": "GET", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__path.json b/model/attributes/vercel/vercel__proxy__path.json index f1374600..3d9b47e6 100644 --- a/model/attributes/vercel/vercel__proxy__path.json +++ b/model/attributes/vercel/vercel__proxy__path.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "/dynamic/some-value.json?route=some-value" + "example": "/dynamic/some-value.json?route=some-value", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__path_type.json b/model/attributes/vercel/vercel__proxy__path_type.json index 29c96a81..3a999169 100644 --- a/model/attributes/vercel/vercel__proxy__path_type.json +++ b/model/attributes/vercel/vercel__proxy__path_type.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "func" + "example": "func", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__path_type_variant.json b/model/attributes/vercel/vercel__proxy__path_type_variant.json index e0fea5fe..4c9c7157 100644 --- a/model/attributes/vercel/vercel__proxy__path_type_variant.json +++ b/model/attributes/vercel/vercel__proxy__path_type_variant.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "api" + "example": "api", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__referer.json b/model/attributes/vercel/vercel__proxy__referer.json index 4e6cfd87..cfc06280 100644 --- a/model/attributes/vercel/vercel__proxy__referer.json +++ b/model/attributes/vercel/vercel__proxy__referer.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": "*.vercel.app" + "example": "*.vercel.app", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__region.json b/model/attributes/vercel/vercel__proxy__region.json index 86861fb5..41bd5e65 100644 --- a/model/attributes/vercel/vercel__proxy__region.json +++ b/model/attributes/vercel/vercel__proxy__region.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "sfo1" + "example": "sfo1", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__response_byte_size.json b/model/attributes/vercel/vercel__proxy__response_byte_size.json index 5835022c..d66d702c 100644 --- a/model/attributes/vercel/vercel__proxy__response_byte_size.json +++ b/model/attributes/vercel/vercel__proxy__response_byte_size.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1024 + "example": 1024, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__scheme.json b/model/attributes/vercel/vercel__proxy__scheme.json index 6972eb54..2a205f4d 100644 --- a/model/attributes/vercel/vercel__proxy__scheme.json +++ b/model/attributes/vercel/vercel__proxy__scheme.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "https" + "example": "https", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__status_code.json b/model/attributes/vercel/vercel__proxy__status_code.json index 6d5831e8..156ab31e 100644 --- a/model/attributes/vercel/vercel__proxy__status_code.json +++ b/model/attributes/vercel/vercel__proxy__status_code.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 200 + "example": 200, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__timestamp.json b/model/attributes/vercel/vercel__proxy__timestamp.json index e8ef7e6e..aeb94efc 100644 --- a/model/attributes/vercel/vercel__proxy__timestamp.json +++ b/model/attributes/vercel/vercel__proxy__timestamp.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 1573817250172 + "example": 1573817250172, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__user_agent.json b/model/attributes/vercel/vercel__proxy__user_agent.json index c75ff660..b51234e9 100644 --- a/model/attributes/vercel/vercel__proxy__user_agent.json +++ b/model/attributes/vercel/vercel__proxy__user_agent.json @@ -6,5 +6,11 @@ "key": "maybe" }, "is_in_otel": false, - "example": ["Mozilla/5.0..."] + "example": ["Mozilla/5.0..."], + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__vercel_cache.json b/model/attributes/vercel/vercel__proxy__vercel_cache.json index 17b4b6e7..2fb485ba 100644 --- a/model/attributes/vercel/vercel__proxy__vercel_cache.json +++ b/model/attributes/vercel/vercel__proxy__vercel_cache.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "REVALIDATED" + "example": "REVALIDATED", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__vercel_id.json b/model/attributes/vercel/vercel__proxy__vercel_id.json index 06a40033..04380f0a 100644 --- a/model/attributes/vercel/vercel__proxy__vercel_id.json +++ b/model/attributes/vercel/vercel__proxy__vercel_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "sfo1::abc123" + "example": "sfo1::abc123", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__waf_action.json b/model/attributes/vercel/vercel__proxy__waf_action.json index 6e296e32..94eaeb3f 100644 --- a/model/attributes/vercel/vercel__proxy__waf_action.json +++ b/model/attributes/vercel/vercel__proxy__waf_action.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "deny" + "example": "deny", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__proxy__waf_rule_id.json b/model/attributes/vercel/vercel__proxy__waf_rule_id.json index c9fa161a..eff95453 100644 --- a/model/attributes/vercel/vercel__proxy__waf_rule_id.json +++ b/model/attributes/vercel/vercel__proxy__waf_rule_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "rule_gAHz8jtSB1Gy" + "example": "rule_gAHz8jtSB1Gy", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__request_id.json b/model/attributes/vercel/vercel__request_id.json index 19f8be36..2f704f94 100644 --- a/model/attributes/vercel/vercel__request_id.json +++ b/model/attributes/vercel/vercel__request_id.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "643af4e3-975a-4cc7-9e7a-1eda11539d90" + "example": "643af4e3-975a-4cc7-9e7a-1eda11539d90", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__source.json b/model/attributes/vercel/vercel__source.json index 2b77ab9c..e32333ff 100644 --- a/model/attributes/vercel/vercel__source.json +++ b/model/attributes/vercel/vercel__source.json @@ -6,5 +6,11 @@ "key": "false" }, "is_in_otel": false, - "example": "build" + "example": "build", + "changelog": [ + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/model/attributes/vercel/vercel__status_code.json b/model/attributes/vercel/vercel__status_code.json index 71191ba3..7fcc1691 100644 --- a/model/attributes/vercel/vercel__status_code.json +++ b/model/attributes/vercel/vercel__status_code.json @@ -6,5 +6,15 @@ "key": "maybe" }, "is_in_otel": false, - "example": 200 + "example": 200, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.2.0", + "prs": [163] + } + ] } diff --git a/package.json b/package.json index bf6c5208..3428e4b6 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,11 @@ "create:attribute": "tsx scripts/create_attribute.ts", - "generate": "tsx scripts/generate.ts && yarn format", + "generate": "tsx scripts/generate.ts && tsx scripts/generate_attribute_changelog.ts && yarn format", + "generate:attribute-changelog": "tsx scripts/generate_attribute_changelog.ts", + + "clear:attribute-changelog": "tsx scripts/clear_attribute_changelog.ts --all", + "clear:attribute-changelog:key": "tsx scripts/clear_attribute_changelog.ts --key", "docs:dev": "yarn workspace docs dev", "docs:build": "yarn workspace docs build", diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 4a551d98..d6dc2b73 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -51,6 +51,20 @@ class DeprecationInfo: status: Optional[DeprecationStatus] = None +@dataclass +class ChangelogEntry: + """A changelog entry tracking a change to an attribute.""" + + version: str + """The sentry-conventions release version""" + + prs: Optional[List[int]] = None + """GitHub PR numbers""" + + description: Optional[str] = None + """Optional description of what changed""" + + @dataclass class AttributeMetadata: """The metadata for an attribute.""" @@ -82,6 +96,9 @@ class AttributeMetadata: sdks: Optional[List[str]] = None """If an attribute is SDK specific, list the SDKs that use this attribute. This is not an exhaustive list, there might be SDKs that send this attribute that are is not documented here.""" + changelog: Optional[List[ChangelogEntry]] = None + """Changelog entries tracking how this attribute has changed across versions""" + class _AttributeNamesMeta(type): _deprecated_names = { @@ -4936,6 +4953,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["Citation 1", "Citation 2"], deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.completion_tokens.used": AttributeMetadata( brief="The number of tokens used to respond to the message.", @@ -4946,6 +4967,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.usage.output_tokens"), aliases=["gen_ai.usage.output_tokens", "gen_ai.usage.completion_tokens"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57, 61]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.documents": AttributeMetadata( brief="Documents or content chunks used as context for the AI model.", @@ -4954,6 +4980,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["document1.txt", "document2.pdf"], deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.finish_reason": AttributeMetadata( brief="The reason why the model stopped generating.", @@ -4963,6 +4993,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="COMPLETE", deprecation=DeprecationInfo(replacement="gen_ai.response.finish_reason"), aliases=["gen_ai.response.finish_reasons"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108, 127]), + ], ), "ai.frequency_penalty": AttributeMetadata( 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.", @@ -4972,6 +5005,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=0.5, deprecation=DeprecationInfo(replacement="gen_ai.request.frequency_penalty"), aliases=["gen_ai.request.frequency_penalty"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.function_call": AttributeMetadata( brief="For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls", @@ -4981,6 +5018,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="function_name", deprecation=DeprecationInfo(replacement="gen_ai.tool.name"), aliases=["gen_ai.tool.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.generation_id": AttributeMetadata( brief="Unique identifier for the completion.", @@ -4990,6 +5030,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="gen_123abc", deprecation=DeprecationInfo(replacement="gen_ai.response.id"), aliases=["gen_ai.response.id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108, 127]), + ], ), "ai.input_messages": AttributeMetadata( brief="The input messages sent to the model", @@ -5000,6 +5043,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.request.messages"), aliases=["gen_ai.request.messages"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[65, 119]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.is_search_required": AttributeMetadata( brief="Boolean indicating if the model needs to perform a search.", @@ -5008,6 +5055,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=False, deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.metadata": AttributeMetadata( brief="Extra metadata passed to an AI pipeline step.", @@ -5016,6 +5067,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example='{"user_id": 123, "session_id": "abc123"}', deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55, 127]), + ], ), "ai.model.provider": AttributeMetadata( brief="The provider of the model.", @@ -5025,6 +5080,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="openai", deprecation=DeprecationInfo(replacement="gen_ai.provider.name"), aliases=["gen_ai.provider.name", "gen_ai.system"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[253]), + ChangelogEntry(version="0.1.0", prs=[57, 61, 108, 127]), + ], ), "ai.model_id": AttributeMetadata( brief="The vendor-specific ID of the model used.", @@ -5035,6 +5094,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.response.model"), aliases=["gen_ai.response.model"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[57, 61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.pipeline.name": AttributeMetadata( brief="The name of the AI pipeline.", @@ -5044,6 +5107,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="Autofix Pipeline", deprecation=DeprecationInfo(replacement="gen_ai.pipeline.name"), aliases=["gen_ai.pipeline.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[53, 76, 108, 127]), + ], ), "ai.preamble": AttributeMetadata( 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.", @@ -5053,6 +5119,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="You are now a clown.", deprecation=DeprecationInfo(replacement="gen_ai.system_instructions"), aliases=["gen_ai.system_instructions"], + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.presence_penalty": AttributeMetadata( 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.", @@ -5062,6 +5132,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=0.5, deprecation=DeprecationInfo(replacement="gen_ai.request.presence_penalty"), aliases=["gen_ai.request.presence_penalty"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.prompt_tokens.used": AttributeMetadata( brief="The number of tokens used to process just the prompt.", @@ -5072,6 +5146,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.usage.input_tokens"), aliases=["gen_ai.usage.prompt_tokens", "gen_ai.usage.input_tokens"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57, 61]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.raw_prompting": AttributeMetadata( brief="When enabled, the user’s prompt will be sent to the model without any pre-processing.", @@ -5080,6 +5159,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=True, deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.response_format": AttributeMetadata( brief="For an AI model call, the format of the response", @@ -5088,6 +5171,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="json_object", deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55, 127]), + ], ), "ai.responses": AttributeMetadata( brief="The response messages sent back by the AI model.", @@ -5097,6 +5184,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=["hello", "world"], deprecation=DeprecationInfo(replacement="gen_ai.response.text"), sdks=["python"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[65, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.search_queries": AttributeMetadata( brief="Queries used to search for relevant context or documents.", @@ -5105,6 +5196,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["climate change effects", "renewable energy"], deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.search_results": AttributeMetadata( brief="Results returned from search queries for context.", @@ -5113,6 +5208,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["search_result_1, search_result_2"], deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.seed": AttributeMetadata( brief="The seed, ideally models given the same seed and same other parameters will produce the exact same output.", @@ -5122,6 +5221,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="1234567890", deprecation=DeprecationInfo(replacement="gen_ai.request.seed"), aliases=["gen_ai.request.seed"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108, 127]), + ], ), "ai.streaming": AttributeMetadata( brief="Whether the request was streamed back.", @@ -5132,6 +5234,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.response.streaming"), aliases=["gen_ai.response.streaming"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[76, 108]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.tags": AttributeMetadata( brief="Tags that describe an AI pipeline step.", @@ -5140,6 +5246,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example='{"executed_function": "add_integers"}', deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55, 127]), + ], ), "ai.temperature": AttributeMetadata( brief="For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.", @@ -5149,6 +5259,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=0.1, deprecation=DeprecationInfo(replacement="gen_ai.request.temperature"), aliases=["gen_ai.request.temperature"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.texts": AttributeMetadata( brief="Raw text inputs provided to the model.", @@ -5158,6 +5272,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=["Hello, how are you?", "What is the capital of France?"], deprecation=DeprecationInfo(replacement="gen_ai.input.messages"), aliases=["gen_ai.input.messages"], + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "ai.tool_calls": AttributeMetadata( brief="For an AI model call, the tool calls that were made.", @@ -5166,6 +5284,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["tool_call_1", "tool_call_2"], deprecation=DeprecationInfo(replacement="gen_ai.response.tool_calls"), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 65]), + ], ), "ai.tools": AttributeMetadata( brief="For an AI model call, the functions that are available", @@ -5174,6 +5295,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["function_1", "function_2"], deprecation=DeprecationInfo(replacement="gen_ai.request.available_tools"), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[55, 65, 127]), + ], ), "ai.top_k": AttributeMetadata( 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).", @@ -5183,6 +5307,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=35, deprecation=DeprecationInfo(replacement="gen_ai.request.top_k"), aliases=["gen_ai.request.top_k"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.top_p": AttributeMetadata( 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).", @@ -5192,6 +5320,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=0.7, deprecation=DeprecationInfo(replacement="gen_ai.request.top_p"), aliases=["gen_ai.request.top_p"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[55, 57, 61, 108]), + ], ), "ai.total_cost": AttributeMetadata( brief="The total cost for the tokens used.", @@ -5201,6 +5333,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=12.34, deprecation=DeprecationInfo(replacement="gen_ai.cost.total_tokens"), aliases=["gen_ai.cost.total_tokens"], + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[53]), + ], ), "ai.total_tokens.used": AttributeMetadata( brief="The total number of tokens used to process the prompt.", @@ -5211,6 +5348,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="gen_ai.usage.total_tokens"), aliases=["gen_ai.usage.total_tokens"], sdks=["python"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57, 61, 108]), + ChangelogEntry(version="0.0.0"), + ], ), "ai.warnings": AttributeMetadata( brief="Warning messages generated during model execution.", @@ -5219,6 +5361,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["Token limit exceeded"], deprecation=DeprecationInfo(), + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.1.0", prs=[55]), + ], ), "app_start_type": AttributeMetadata( brief="Mobile app start variant. Either cold or warm.", @@ -5226,6 +5372,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="cold", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "blocked_main_thread": AttributeMetadata( brief="Whether the main thread was blocked by the span.", @@ -5233,6 +5383,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "browser.name": AttributeMetadata( brief="The name of the browser.", @@ -5241,6 +5394,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="Chrome", aliases=["sentry.browser.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127, 139]), + ChangelogEntry(version="0.0.0"), + ], ), "browser.report.type": AttributeMetadata( brief="A browser report sent via reporting API..", @@ -5248,6 +5405,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="network-error", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[68, 127]), + ], ), "browser.script.invoker": AttributeMetadata( brief="How a script was called in the browser.", @@ -5256,6 +5416,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="Window.requestAnimationFrame", sdks=["browser"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "browser.script.invoker_type": AttributeMetadata( brief="Browser script entry point type.", @@ -5264,6 +5428,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="event-listener", sdks=["browser"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "browser.script.source_char_position": AttributeMetadata( brief="A number representing the script character position of the script.", @@ -5272,6 +5440,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=678, sdks=["browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "browser.version": AttributeMetadata( brief="The version of the browser.", @@ -5280,6 +5452,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="120.0.6099.130", aliases=["sentry.browser.version"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[59, 127, 139]), + ], ), "cache.hit": AttributeMetadata( brief="If the cache was hit during this span.", @@ -5288,6 +5463,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=True, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "cache.item_size": AttributeMetadata( brief="The size of the requested item in the cache. In bytes.", @@ -5295,6 +5473,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=58, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "cache.key": AttributeMetadata( brief="The key of the cache accessed.", @@ -5303,6 +5485,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["my-cache-key", "my-other-cache-key"], sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "cache.operation": AttributeMetadata( brief="The operation being performed on the cache.", @@ -5311,6 +5496,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="get", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "cache.ttl": AttributeMetadata( brief="The ttl of the cache in seconds", @@ -5319,6 +5508,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=120, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "channel": AttributeMetadata( brief="The channel name that is being used.", @@ -5327,6 +5520,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="mail", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "client.address": AttributeMetadata( brief="Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -5335,6 +5532,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="example.com", aliases=["http.client_ip"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[106, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "client.port": AttributeMetadata( brief="Client port number.", @@ -5342,6 +5543,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=5432, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "cloudflare.d1.duration": AttributeMetadata( brief="The duration of a Cloudflare D1 operation.", @@ -5350,6 +5555,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=543, sdks=["javascript-cloudflare"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "cloudflare.d1.rows_read": AttributeMetadata( brief="The number of rows read in a Cloudflare D1 operation.", @@ -5358,6 +5567,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=12, sdks=["javascript-cloudflare"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "cloudflare.d1.rows_written": AttributeMetadata( brief="The number of rows written in a Cloudflare D1 operation.", @@ -5366,6 +5579,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=12, sdks=["javascript-cloudflare"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "code.file.path": AttributeMetadata( brief="The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).", @@ -5374,6 +5591,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="/app/myapplication/http/handler/server.py", aliases=["code.filepath"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "code.filepath": AttributeMetadata( brief="The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).", @@ -5383,6 +5603,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="/app/myapplication/http/handler/server.py", deprecation=DeprecationInfo(replacement="code.file.path"), aliases=["code.file.path"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "code.function": AttributeMetadata( brief="The method or function name, or equivalent (usually rightmost part of the code unit's name).", @@ -5392,6 +5616,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="server_request", deprecation=DeprecationInfo(replacement="code.function.name"), aliases=["code.function.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 74]), + ChangelogEntry(version="0.0.0"), + ], ), "code.function.name": AttributeMetadata( brief="The method or function name, or equivalent (usually rightmost part of the code unit's name).", @@ -5400,6 +5628,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="server_request", aliases=["code.function"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "code.line.number": AttributeMetadata( brief="The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function", @@ -5408,6 +5640,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=42, aliases=["code.lineno"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "code.lineno": AttributeMetadata( brief="The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function", @@ -5417,6 +5653,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=42, deprecation=DeprecationInfo(replacement="code.line.number"), aliases=["code.line.number"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61, 108]), + ChangelogEntry(version="0.0.0"), + ], ), "code.namespace": AttributeMetadata( 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.", @@ -5428,6 +5669,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="code.function.name", reason="code.function.name should include the namespace.", ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 74]), + ChangelogEntry(version="0.0.0"), + ], ), "culture.calendar": AttributeMetadata( brief="The calendar system used by the culture.", @@ -5435,6 +5680,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="GregorianCalendar", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[243]), + ], ), "culture.display_name": AttributeMetadata( brief="Human readable name of the culture.", @@ -5442,6 +5690,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="English (United States)", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[243]), + ], ), "culture.is_24_hour_format": AttributeMetadata( brief="Whether the culture uses 24-hour time format.", @@ -5449,6 +5700,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[243]), + ], ), "culture.locale": AttributeMetadata( brief="The locale identifier following RFC 4646.", @@ -5456,6 +5710,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="en-US", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[243]), + ], ), "culture.timezone": AttributeMetadata( brief="The timezone of the culture, as a geographic timezone identifier.", @@ -5463,6 +5720,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Europe/Vienna", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[243]), + ], ), "db.collection.name": AttributeMetadata( brief="The name of a collection (table, container) within the database.", @@ -5470,6 +5730,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="users", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[106, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.name": AttributeMetadata( brief="The name of the database being accessed.", @@ -5479,6 +5743,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="customers", deprecation=DeprecationInfo(replacement="db.namespace"), aliases=["db.namespace"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.namespace": AttributeMetadata( brief="The name of the database being accessed.", @@ -5487,6 +5755,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="customers", aliases=["db.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.operation": AttributeMetadata( brief="The name of the operation being executed.", @@ -5498,6 +5770,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="db.operation.name", status=DeprecationStatus.NORMALIZE ), aliases=["db.operation.name"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[199]), + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.operation.name": AttributeMetadata( brief="The name of the operation being executed.", @@ -5506,6 +5783,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="SELECT", aliases=["db.operation"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.query.parameter.": AttributeMetadata( 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.", @@ -5514,6 +5795,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, has_dynamic_suffix=True, example="db.query.parameter.foo='123'", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103, 127]), + ], ), "db.query.summary": AttributeMetadata( 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.", @@ -5521,6 +5805,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="SELECT users;", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[208]), + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.query.text": AttributeMetadata( 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.", @@ -5529,6 +5818,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="SELECT * FROM users WHERE id = $1", aliases=["db.statement"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[208]), + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.redis.connection": AttributeMetadata( brief="The redis connection name.", @@ -5537,6 +5831,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="my-redis-instance", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.redis.parameters": AttributeMetadata( brief="The array of command parameters given to a redis command.", @@ -5545,6 +5843,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=["test", "*"], sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "db.sql.bindings": AttributeMetadata( brief="The array of query bindings.", @@ -5557,6 +5858,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): reason="Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter..", ), sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "db.statement": AttributeMetadata( brief="The database statement being executed.", @@ -5568,6 +5873,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="db.query.text", status=DeprecationStatus.NORMALIZE ), aliases=["db.query.text"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[199]), + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.system": AttributeMetadata( 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.", @@ -5579,6 +5889,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="db.system.name", status=DeprecationStatus.BACKFILL ), aliases=["db.system.name"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[199, 224]), + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.system.name": AttributeMetadata( 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.", @@ -5587,6 +5902,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="postgresql", aliases=["db.system"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "db.user": AttributeMetadata( brief="The database user.", @@ -5594,6 +5913,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="fancy_user", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "device.brand": AttributeMetadata( brief="The brand of the device.", @@ -5601,6 +5923,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Apple", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116, 127]), + ], ), "device.family": AttributeMetadata( brief="The family of the device.", @@ -5608,6 +5933,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="iPhone", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116, 127]), + ], ), "device.model": AttributeMetadata( brief="The model of the device.", @@ -5615,6 +5943,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="iPhone 15 Pro Max", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116, 127]), + ], ), "environment": AttributeMetadata( brief="The sentry environment.", @@ -5624,6 +5955,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="production", deprecation=DeprecationInfo(replacement="sentry.environment"), aliases=["sentry.environment"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "error.type": AttributeMetadata( brief="Describes a class of error the operation ended with.", @@ -5631,6 +5966,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="timeout", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "event.id": AttributeMetadata( brief="The unique identifier for this event (log record)", @@ -5638,6 +5977,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=1234567890, + changelog=[ + ChangelogEntry(version="0.1.0", prs=[101]), + ], ), "event.name": AttributeMetadata( brief="The name that uniquely identifies this event (log record)", @@ -5645,6 +5987,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Process Payload", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[101, 127]), + ], ), "exception.escaped": AttributeMetadata( 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.", @@ -5652,6 +5997,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=True, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "exception.message": AttributeMetadata( brief="The error message.", @@ -5659,6 +6007,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="ENOENT: no such file or directory", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "exception.stacktrace": AttributeMetadata( 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.", @@ -5666,6 +6018,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=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=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "exception.type": AttributeMetadata( 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.", @@ -5673,6 +6029,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="OSError", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "faas.coldstart": AttributeMetadata( brief="A boolean that is true if the serverless function is executed for the first time (aka cold-start).", @@ -5680,6 +6040,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=True, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "faas.cron": AttributeMetadata( brief="A string containing the schedule period as Cron Expression.", @@ -5687,6 +6050,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="0/5 * * * ? *", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "faas.time": AttributeMetadata( brief="A string containing the function invocation time in the ISO 8601 format expressed in UTC.", @@ -5694,6 +6061,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="2020-01-23T13:47:06Z", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "faas.trigger": AttributeMetadata( brief="Type of the trigger which caused this function invocation.", @@ -5701,6 +6072,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="timer", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "flag.evaluation.": AttributeMetadata( 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.", @@ -5709,6 +6084,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, has_dynamic_suffix=True, example="flag.evaluation.is_new_ui=true", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "frames.delay": AttributeMetadata( 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/).", @@ -5716,6 +6094,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=5, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "frames.frozen": AttributeMetadata( brief="The number of frozen frames rendered during the lifetime of the span.", @@ -5723,6 +6105,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=3, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "frames.slow": AttributeMetadata( brief="The number of slow frames rendered during the lifetime of the span.", @@ -5730,6 +6116,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "frames.total": AttributeMetadata( brief="The number of total frames rendered during the lifetime of the span.", @@ -5737,6 +6127,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=60, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "fs_error": AttributeMetadata( brief="The error message of a file system error.", @@ -5749,6 +6143,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): reason="This attribute is not part of the OpenTelemetry specification and error.type fits much better.", ), sdks=["javascript-node"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.agent.name": AttributeMetadata( brief="The name of the agent being used.", @@ -5756,6 +6154,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="ResearchAssistant", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[62, 127]), + ], ), "gen_ai.conversation.id": AttributeMetadata( brief="The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.", @@ -5763,6 +6164,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="conv_5j66UpCpwteGg4YSxUnt7lPY", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[250]), + ], ), "gen_ai.cost.input_tokens": AttributeMetadata( brief="The cost of tokens used to process the AI input (prompt) in USD (without cached input tokens).", @@ -5770,6 +6174,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=123.45, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[112]), + ], ), "gen_ai.cost.output_tokens": AttributeMetadata( brief="The cost of tokens used for creating the AI output in USD (without reasoning tokens).", @@ -5777,6 +6185,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=123.45, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[112]), + ], ), "gen_ai.cost.total_tokens": AttributeMetadata( brief="The total cost for the tokens used.", @@ -5785,6 +6197,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=12.34, aliases=["ai.total_cost"], + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[126]), + ], ), "gen_ai.embeddings.input": AttributeMetadata( brief="The input to the embeddings model.", @@ -5792,6 +6209,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="What's the weather in Paris?", + changelog=[ + ChangelogEntry(version="0.3.1", prs=[195]), + ], ), "gen_ai.input.messages": AttributeMetadata( 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:"..."}`.', @@ -5800,6 +6220,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, 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=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.operation.name": AttributeMetadata( brief="The name of the operation being performed. It has the following list of well-known values: 'chat', 'create_agent', 'embeddings', 'execute_tool', 'generate_content', 'invoke_agent', 'text_completion'. If one of them applies, then that value MUST be used. Otherwise a custom value MAY be used.", @@ -5807,6 +6231,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="chat", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[225]), + ChangelogEntry(version="0.1.0", prs=[62, 127]), + ], ), "gen_ai.operation.type": AttributeMetadata( brief="The type of AI operation. Must be one of 'agent' (invoke_agent and create_agent spans), 'ai_client' (any LLM call), 'tool' (execute_tool spans), 'handoff' (handoff spans), 'other' (input and output processors, skill loading, guardrails etc.) . Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI", @@ -5814,6 +6242,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="tool", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[257]), + ChangelogEntry(version="0.1.0", prs=[113, 127]), + ], ), "gen_ai.output.messages": AttributeMetadata( 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.", @@ -5821,6 +6253,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=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=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.pipeline.name": AttributeMetadata( brief="Name of the AI pipeline or chain being executed.", @@ -5829,6 +6264,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="Autofix Pipeline", aliases=["ai.pipeline.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[76, 127]), + ], ), "gen_ai.prompt": AttributeMetadata( brief="The input messages sent to the model", @@ -5839,6 +6277,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo( reason="Deprecated from OTEL, use gen_ai.input.messages with the new format instead." ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[74, 108, 119]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.provider.name": AttributeMetadata( brief="The Generative AI provider as identified by the client or server instrumentation.", @@ -5847,6 +6289,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="openai", aliases=["ai.model.provider", "gen_ai.system"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[253]), + ], ), "gen_ai.request.available_tools": AttributeMetadata( brief="The available tools for the model. It has to be a stringified version of an array of objects.", @@ -5855,6 +6300,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example='[{"name": "get_weather", "description": "Get the weather for a given location"}, {"name": "get_news", "description": "Get the news for a given topic"}]', deprecation=DeprecationInfo(replacement="gen_ai.tool.definitions"), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ChangelogEntry(version="0.1.0", prs=[63, 127]), + ], ), "gen_ai.request.frequency_penalty": AttributeMetadata( 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.", @@ -5863,6 +6312,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=0.5, aliases=["ai.frequency_penalty"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "gen_ai.request.max_tokens": AttributeMetadata( brief="The maximum number of tokens to generate in the response.", @@ -5870,6 +6323,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=2048, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[62]), + ], ), "gen_ai.request.messages": AttributeMetadata( 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:"..."}`.', @@ -5879,6 +6336,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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"}}]', deprecation=DeprecationInfo(replacement="gen_ai.input.messages"), aliases=["ai.input_messages"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ChangelogEntry(version="0.1.0", prs=[63, 74, 108, 119, 122]), + ], ), "gen_ai.request.model": AttributeMetadata( brief="The model identifier being used for the request.", @@ -5886,6 +6347,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="gpt-4-turbo-preview", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[62, 127]), + ], ), "gen_ai.request.presence_penalty": AttributeMetadata( 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.", @@ -5894,6 +6358,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=0.5, aliases=["ai.presence_penalty"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "gen_ai.request.seed": AttributeMetadata( brief="The seed, ideally models given the same seed and same other parameters will produce the exact same output.", @@ -5902,6 +6370,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="1234567890", aliases=["ai.seed"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[57, 127]), + ], ), "gen_ai.request.temperature": AttributeMetadata( brief="For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.", @@ -5910,6 +6381,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=0.1, aliases=["ai.temperature"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "gen_ai.request.top_k": AttributeMetadata( 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).", @@ -5918,6 +6393,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=35, aliases=["ai.top_k"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "gen_ai.request.top_p": AttributeMetadata( 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).", @@ -5926,6 +6405,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=0.7, aliases=["ai.top_p"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "gen_ai.response.finish_reasons": AttributeMetadata( brief="The reason why the model stopped generating.", @@ -5934,6 +6417,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="COMPLETE", aliases=["ai.finish_reason"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[57, 127]), + ], ), "gen_ai.response.id": AttributeMetadata( brief="Unique identifier for the completion.", @@ -5942,6 +6428,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="gen_123abc", aliases=["ai.generation_id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[57, 127]), + ], ), "gen_ai.response.model": AttributeMetadata( brief="The vendor-specific ID of the model used.", @@ -5950,6 +6439,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="gpt-4", aliases=["ai.model_id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.response.streaming": AttributeMetadata( brief="Whether or not the AI model call's response was streamed back asynchronously", @@ -5958,6 +6451,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=True, aliases=["ai.streaming"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[76]), + ], ), "gen_ai.response.text": AttributeMetadata( brief="The model's response text messages. It has to be a stringified version of an array of response text messages.", @@ -5966,6 +6462,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, 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"]', deprecation=DeprecationInfo(replacement="gen_ai.output.messages"), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ChangelogEntry(version="0.1.0", prs=[63, 74]), + ], ), "gen_ai.response.time_to_first_token": AttributeMetadata( brief="Time in seconds when the first response content chunk arrived in streaming responses.", @@ -5973,6 +6473,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=0.6853435, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[227]), + ], ), "gen_ai.response.tokens_per_second": AttributeMetadata( brief="The total output tokens per seconds throughput", @@ -5980,6 +6483,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=12345.67, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[66]), + ], ), "gen_ai.response.tool_calls": AttributeMetadata( brief="The tool calls in the model's response. It has to be a stringified version of an array of objects.", @@ -5988,6 +6495,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example='[{"name": "get_weather", "arguments": {"location": "Paris"}}]', deprecation=DeprecationInfo(replacement="gen_ai.output.messages"), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ChangelogEntry(version="0.1.0", prs=[63, 74]), + ], ), "gen_ai.system": AttributeMetadata( brief="The provider of the model.", @@ -5997,6 +6508,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="openai", deprecation=DeprecationInfo(replacement="gen_ai.provider.name"), aliases=["ai.model.provider", "gen_ai.provider.name"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[253]), + ChangelogEntry(version="0.1.0", prs=[57, 127]), + ], ), "gen_ai.system.message": AttributeMetadata( brief="The system instructions passed to the model.", @@ -6005,6 +6520,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="You are a helpful assistant", deprecation=DeprecationInfo(replacement="gen_ai.system_instructions"), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ChangelogEntry(version="0.1.0", prs=[62]), + ], ), "gen_ai.system_instructions": AttributeMetadata( brief="The system instructions passed to the model.", @@ -6013,6 +6532,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="You are a helpful assistant", aliases=["ai.preamble"], + changelog=[ + ChangelogEntry(version="next", prs=[264]), + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.tool.call.arguments": AttributeMetadata( brief="The arguments of the tool call. It has to be a stringified version of the arguments to the tool.", @@ -6021,6 +6544,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example='{"location": "Paris"}', aliases=["gen_ai.tool.input"], + changelog=[ + ChangelogEntry(version="next", prs=[265]), + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.tool.call.result": AttributeMetadata( brief="The result of the tool call. It has to be a stringified version of the result of the tool.", @@ -6029,6 +6556,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="rainy, 57°F", aliases=["gen_ai.tool.output", "gen_ai.tool.message"], + changelog=[ + ChangelogEntry(version="next", prs=[265]), + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.tool.definitions": AttributeMetadata( brief="The list of source system tool definitions available to the GenAI agent or model.", @@ -6036,6 +6567,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=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=[ + ChangelogEntry(version="0.4.0", prs=[221]), + ], ), "gen_ai.tool.description": AttributeMetadata( brief="The description of the tool being used.", @@ -6043,6 +6577,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="Searches the web for current information about a topic", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[62, 127]), + ], ), "gen_ai.tool.input": AttributeMetadata( brief="The input of the tool being used. It has to be a stringified version of the input to the tool.", @@ -6052,6 +6589,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example='{"location": "Paris"}', deprecation=DeprecationInfo(replacement="gen_ai.tool.call.arguments"), aliases=["gen_ai.tool.call.arguments"], + changelog=[ + ChangelogEntry(version="next", prs=[265]), + ChangelogEntry(version="0.1.0", prs=[63, 74]), + ], ), "gen_ai.tool.message": AttributeMetadata( brief="The response from a tool or function call passed to the model.", @@ -6061,6 +6602,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="rainy, 57°F", deprecation=DeprecationInfo(replacement="gen_ai.tool.call.result"), aliases=["gen_ai.tool.call.result", "gen_ai.tool.output"], + changelog=[ + ChangelogEntry(version="next", prs=[265]), + ChangelogEntry(version="0.1.0", prs=[62]), + ], ), "gen_ai.tool.name": AttributeMetadata( brief="Name of the tool utilized by the agent.", @@ -6069,6 +6614,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="Flights", aliases=["ai.function_call"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[57, 127]), + ], ), "gen_ai.tool.output": AttributeMetadata( brief="The output of the tool being used. It has to be a stringified version of the output of the tool.", @@ -6078,6 +6626,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="rainy, 57°F", deprecation=DeprecationInfo(replacement="gen_ai.tool.call.result"), aliases=["gen_ai.tool.call.result", "gen_ai.tool.message"], + changelog=[ + ChangelogEntry(version="next", prs=[265]), + ChangelogEntry(version="0.1.0", prs=[63, 74]), + ], ), "gen_ai.tool.type": AttributeMetadata( brief="The type of tool being used.", @@ -6085,6 +6637,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="function", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[62, 127]), + ], ), "gen_ai.usage.completion_tokens": AttributeMetadata( brief="The number of tokens used in the GenAI response (completion).", @@ -6094,6 +6649,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=10, deprecation=DeprecationInfo(replacement="gen_ai.usage.output_tokens"), aliases=["ai.completion_tokens.used", "gen_ai.usage.output_tokens"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.usage.input_tokens": AttributeMetadata( brief="The number of tokens used to process the AI input (prompt) including cached input tokens.", @@ -6102,6 +6662,12 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=10, aliases=["ai.prompt_tokens.used", "gen_ai.usage.prompt_tokens"], + changelog=[ + ChangelogEntry(version="next", prs=[261]), + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[112]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.usage.input_tokens.cache_write": AttributeMetadata( brief="The number of tokens written to the cache when processing the AI input (prompt).", @@ -6109,6 +6675,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=100, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[217, 228]), + ], ), "gen_ai.usage.input_tokens.cached": AttributeMetadata( brief="The number of cached tokens used to process the AI input (prompt).", @@ -6116,6 +6685,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=50, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[62, 112]), + ], ), "gen_ai.usage.output_tokens": AttributeMetadata( brief="The number of tokens used for creating the AI output (including reasoning tokens).", @@ -6124,6 +6697,12 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=10, aliases=["ai.completion_tokens.used", "gen_ai.usage.completion_tokens"], + changelog=[ + ChangelogEntry(version="next", prs=[261]), + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[112]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.usage.output_tokens.reasoning": AttributeMetadata( brief="The number of tokens used for reasoning to create the AI output.", @@ -6131,6 +6710,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=75, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[62, 112]), + ], ), "gen_ai.usage.prompt_tokens": AttributeMetadata( brief="The number of tokens used in the GenAI input (prompt).", @@ -6140,6 +6723,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=20, deprecation=DeprecationInfo(replacement="gen_ai.usage.input_tokens"), aliases=["ai.prompt_tokens.used", "gen_ai.usage.input_tokens"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "gen_ai.usage.total_tokens": AttributeMetadata( brief="The total number of tokens used to process the prompt. (input tokens plus output todkens)", @@ -6148,6 +6736,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=20, aliases=["ai.total_tokens.used"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[57]), + ], ), "graphql.operation.name": AttributeMetadata( brief="The name of the operation being executed.", @@ -6155,6 +6747,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="findBookById", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "graphql.operation.type": AttributeMetadata( brief="The type of the operation being executed.", @@ -6162,6 +6758,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="query", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.client_ip": AttributeMetadata( brief="Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -6171,6 +6771,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="example.com", deprecation=DeprecationInfo(replacement="client.address"), aliases=["client.address"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 106, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.decoded_response_content_length": AttributeMetadata( brief="The decoded body size of the response (in bytes).", @@ -6179,6 +6783,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=456, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "http.flavor": AttributeMetadata( brief="The actual version of the protocol used for network communication.", @@ -6188,6 +6796,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="1.1", deprecation=DeprecationInfo(replacement="network.protocol.version"), aliases=["network.protocol.version", "net.protocol.version"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.fragment": AttributeMetadata( brief="The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not.", @@ -6195,6 +6807,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="#details", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "http.host": AttributeMetadata( brief="The domain name.", @@ -6212,6 +6827,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "http.server_name", "net.host.name", ], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.method": AttributeMetadata( brief="The HTTP method used.", @@ -6221,6 +6840,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="GET", deprecation=DeprecationInfo(replacement="http.request.method"), aliases=["http.request.method"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.query": AttributeMetadata( brief="The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not.", @@ -6231,6 +6854,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="?foo=bar&bar=baz", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "http.request.connect_start": AttributeMetadata( brief="The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource.", @@ -6239,6 +6865,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.111, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.connection_end": AttributeMetadata( 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.", @@ -6247,6 +6878,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.15, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.domain_lookup_end": AttributeMetadata( brief="The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource.", @@ -6255,6 +6891,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.201, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.domain_lookup_start": AttributeMetadata( brief="The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource.", @@ -6263,6 +6904,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.322, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.fetch_start": AttributeMetadata( brief="The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.", @@ -6271,6 +6917,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.389, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.header.": AttributeMetadata( brief="HTTP request headers, being the normalized HTTP Header name (lowercase), the value being the header values.", @@ -6279,6 +6930,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, has_dynamic_suffix=True, example="http.request.header.custom-header=['foo', 'bar']", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[201, 204]), + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "http.request.method": AttributeMetadata( brief="The HTTP method used.", @@ -6287,6 +6942,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="GET", aliases=["method", "http.method"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.redirect_end": AttributeMetadata( brief="The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect", @@ -6295,6 +6954,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829558.502, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[130, 134]), + ], ), "http.request.redirect_start": AttributeMetadata( brief="The UNIX timestamp representing the start time of the fetch which that initiates the redirect.", @@ -6303,6 +6966,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.495, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.request_start": AttributeMetadata( 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.", @@ -6311,6 +6979,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.51, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.resend_count": AttributeMetadata( brief="The ordinal number of request resending attempt (for any reason, including redirects).", @@ -6318,6 +6991,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=2, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.response_end": AttributeMetadata( 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.", @@ -6326,6 +7003,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.89, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.response_start": AttributeMetadata( 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.", @@ -6334,6 +7016,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.7, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.secure_connection_start": AttributeMetadata( 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.", @@ -6342,6 +7029,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829555.73, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[134]), + ChangelogEntry(version="0.0.0"), + ], ), "http.request.time_to_first_byte": AttributeMetadata( 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", @@ -6350,6 +7042,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1.032, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[131]), + ], ), "http.request.worker_start": AttributeMetadata( 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.", @@ -6358,6 +7054,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732829553.68, sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[130, 134]), + ], ), "http.response.body.size": AttributeMetadata( brief="The encoded body size of the response (in bytes).", @@ -6366,6 +7066,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=123, aliases=["http.response_content_length", "http.response.header.content-length"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[106]), + ChangelogEntry(version="0.0.0"), + ], ), "http.response.header.": AttributeMetadata( brief="HTTP response headers, being the normalized HTTP Header name (lowercase), the value being the header values.", @@ -6374,6 +7079,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, has_dynamic_suffix=True, example="http.response.header.custom-header=['foo', 'bar']", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[201, 204]), + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "http.response.header.content-length": AttributeMetadata( brief="The size of the message body sent to the recipient (in bytes)", @@ -6382,6 +7091,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="http.response.header.custom-header=['foo', 'bar']", aliases=["http.response_content_length", "http.response.body.size"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.response.size": AttributeMetadata( brief="The transfer size of the response (in bytes).", @@ -6390,6 +7103,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=456, aliases=["http.response_transfer_size"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "http.response.status_code": AttributeMetadata( brief="The status code of the HTTP response.", @@ -6398,6 +7115,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=404, aliases=["http.status_code"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "http.response_content_length": AttributeMetadata( brief="The encoded body size of the response (in bytes).", @@ -6409,6 +7130,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="http.response.body.size", status=DeprecationStatus.BACKFILL ), aliases=["http.response.body.size", "http.response.header.content-length"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61, 106]), + ChangelogEntry(version="0.0.0"), + ], ), "http.response_transfer_size": AttributeMetadata( brief="The transfer size of the response (in bytes).", @@ -6420,6 +7146,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="http.response.size", status=DeprecationStatus.BACKFILL ), aliases=["http.response.size"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "http.route": AttributeMetadata( brief="The matched route, that is, the path template in the format used by the respective server framework.", @@ -6428,6 +7159,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="/users/:id", aliases=["url.template"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.scheme": AttributeMetadata( brief="The URI scheme component identifying the used protocol.", @@ -6437,6 +7172,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="https", deprecation=DeprecationInfo(replacement="url.scheme"), aliases=["url.scheme"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.server.request.time_in_queue": AttributeMetadata( 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.", @@ -6445,6 +7184,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=50, sdks=["ruby"], + changelog=[ + ChangelogEntry(version="next", prs=[267]), + ], ), "http.server_name": AttributeMetadata( brief="The server domain name", @@ -6454,6 +7196,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="example.com", deprecation=DeprecationInfo(replacement="server.address"), aliases=["server.address", "net.host.name", "http.host"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "http.status_code": AttributeMetadata( brief="The status code of the HTTP response.", @@ -6463,6 +7209,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=404, deprecation=DeprecationInfo(replacement="http.response.status_code"), aliases=["http.response.status_code"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "http.target": AttributeMetadata( brief="The pathname and query string of the URL.", @@ -6474,6 +7225,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="url.path", reason="This attribute is being deprecated in favor of url.path and url.query", ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "http.url": AttributeMetadata( brief="The URL of the resource that was fetched.", @@ -6483,6 +7238,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="https://example.com/test?foo=bar#buzz", deprecation=DeprecationInfo(replacement="url.full"), aliases=["url.full", "url"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108]), + ChangelogEntry(version="0.0.0"), + ], ), "http.user_agent": AttributeMetadata( brief="Value of the HTTP User-Agent header sent by the client.", @@ -6492,6 +7251,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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", deprecation=DeprecationInfo(replacement="user_agent.original"), aliases=["user_agent.original"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "id": AttributeMetadata( brief="A unique identifier for the span.", @@ -6500,6 +7263,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="f47ac10b58cc4372a5670e02b2c3d479", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "jvm.gc.action": AttributeMetadata( brief="Name of the garbage collector action.", @@ -6507,6 +7273,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="end of minor GC", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "jvm.gc.name": AttributeMetadata( brief="Name of the garbage collector.", @@ -6514,6 +7284,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="G1 Young Generation", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "jvm.memory.pool.name": AttributeMetadata( brief="Name of the memory pool.", @@ -6521,6 +7295,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="G1 Old Gen", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "jvm.memory.type": AttributeMetadata( brief="Name of the memory pool.", @@ -6528,6 +7306,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="G1 Old Gen", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "jvm.thread.daemon": AttributeMetadata( brief="Whether the thread is daemon or not.", @@ -6535,6 +7317,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=True, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "jvm.thread.state": AttributeMetadata( brief="State of the thread.", @@ -6542,6 +7327,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="blocked", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "lcp.element": AttributeMetadata( brief="The dom element responsible for the largest contentful paint.", @@ -6549,6 +7338,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="img", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "lcp.id": AttributeMetadata( brief="The id of the dom element responsible for the largest contentful paint.", @@ -6556,6 +7349,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="#hero", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "lcp.size": AttributeMetadata( brief="The size of the largest contentful paint element.", @@ -6563,6 +7360,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1234, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "lcp.url": AttributeMetadata( brief="The url of the dom element responsible for the largest contentful paint.", @@ -6570,6 +7371,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="https://example.com", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "logger.name": AttributeMetadata( brief="The name of the logger that generated this event.", @@ -6577,6 +7382,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="myLogger", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "mcp.cancelled.reason": AttributeMetadata( brief="Reason for the cancellation of an MCP operation.", @@ -6587,6 +7396,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="User cancelled the request", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.cancelled.request_id": AttributeMetadata( brief="Request ID of the cancelled MCP operation.", @@ -6594,6 +7406,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="123", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.client.name": AttributeMetadata( brief="Name of the MCP client application.", @@ -6601,6 +7416,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="claude-desktop", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.client.title": AttributeMetadata( brief="Display title of the MCP client application.", @@ -6611,6 +7429,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="Claude Desktop", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.client.version": AttributeMetadata( brief="Version of the MCP client application.", @@ -6618,6 +7439,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1.0.0", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.lifecycle.phase": AttributeMetadata( brief="Lifecycle phase indicator for MCP operations.", @@ -6625,6 +7449,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="initialization_complete", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.logging.data_type": AttributeMetadata( brief="Data type of the logged message content.", @@ -6632,6 +7459,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="string", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.logging.level": AttributeMetadata( brief="Log level for MCP logging operations.", @@ -6639,6 +7469,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="info", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.logging.logger": AttributeMetadata( brief="Logger name for MCP logging operations.", @@ -6649,6 +7482,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="mcp_server", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.logging.message": AttributeMetadata( brief="Log message content from MCP logging operations.", @@ -6656,6 +7492,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE, reason="Log messages can contain user data"), is_in_otel=False, example="Tool execution completed successfully", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.method.name": AttributeMetadata( brief="The name of the MCP request or notification method being called.", @@ -6663,6 +7502,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="tools/call", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.progress.current": AttributeMetadata( brief="Current progress value of an MCP operation.", @@ -6670,6 +7512,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=50, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.progress.message": AttributeMetadata( brief="Progress message describing the current state of an MCP operation.", @@ -6680,6 +7526,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="Processing 50 of 100 items", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.progress.percentage": AttributeMetadata( brief="Calculated progress percentage of an MCP operation. Computed from current/total * 100.", @@ -6687,6 +7536,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=50, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.progress.token": AttributeMetadata( brief="Token for tracking progress of an MCP operation.", @@ -6694,6 +7547,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="progress-token-123", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.progress.total": AttributeMetadata( brief="Total progress target value of an MCP operation.", @@ -6701,6 +7557,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=100, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.prompt.name": AttributeMetadata( brief="Name of the MCP prompt template being used.", @@ -6711,6 +7571,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="summarize", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.prompt.result.description": AttributeMetadata( brief="Description of the prompt result.", @@ -6718,6 +7581,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=False, example="A summary of the requested information", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.prompt.result.message_content": AttributeMetadata( brief="Content of the message in the prompt result. Used for single message results only.", @@ -6725,6 +7591,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=False, example="Please provide a summary of the document", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.prompt.result.message_count": AttributeMetadata( brief="Number of messages in the prompt result.", @@ -6732,6 +7601,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=3, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.prompt.result.message_role": AttributeMetadata( brief="Role of the message in the prompt result. Used for single message results only.", @@ -6739,6 +7612,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="user", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.protocol.ready": AttributeMetadata( brief="Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.", @@ -6746,6 +7622,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.protocol.version": AttributeMetadata( brief="MCP protocol version used in the session.", @@ -6753,6 +7633,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="2024-11-05", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.request.argument.": AttributeMetadata( 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.", @@ -6761,6 +7644,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, has_dynamic_suffix=True, example="mcp.request.argument.query='weather in Paris'", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[176]), + ], ), "mcp.request.argument.name": AttributeMetadata( brief="Name argument from prompts/get MCP request.", @@ -6768,6 +7654,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE, reason="Prompt names can contain user input"), is_in_otel=False, example="summarize", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.request.argument.uri": AttributeMetadata( brief="URI argument from resources/read MCP request.", @@ -6775,6 +7664,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE, reason="URIs can contain user file paths"), is_in_otel=False, example="file:///path/to/resource", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.request.id": AttributeMetadata( brief="JSON-RPC request identifier for the MCP request. Unique within the MCP session.", @@ -6782,6 +7674,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.resource.protocol": AttributeMetadata( brief="Protocol of the resource URI being accessed, extracted from the URI.", @@ -6789,6 +7684,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="file", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.resource.uri": AttributeMetadata( brief="The resource URI being accessed in an MCP operation.", @@ -6796,6 +7694,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE, reason="URIs can contain sensitive file paths"), is_in_otel=False, example="file:///path/to/file.txt", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.server.name": AttributeMetadata( brief="Name of the MCP server application.", @@ -6803,6 +7704,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="sentry-mcp-server", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.server.title": AttributeMetadata( brief="Display title of the MCP server application.", @@ -6813,6 +7717,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=False, example="Sentry MCP Server", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.server.version": AttributeMetadata( brief="Version of the MCP server application.", @@ -6820,6 +7727,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="0.1.0", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.session.id": AttributeMetadata( brief="Identifier for the MCP session.", @@ -6827,6 +7737,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="550e8400-e29b-41d4-a716-446655440000", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.tool.name": AttributeMetadata( brief="Name of the MCP tool being called.", @@ -6834,6 +7747,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="calculator", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.tool.result.content": AttributeMetadata( brief="The content of the tool result.", @@ -6841,6 +7757,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE, reason="Tool results can contain user data"), is_in_otel=False, example='{"output": "rainy", "toolCallId": "1"}', + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ChangelogEntry(version="0.2.0", prs=[164]), + ], ), "mcp.tool.result.content_count": AttributeMetadata( brief="Number of content items in the tool result.", @@ -6848,6 +7768,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.tool.result.is_error": AttributeMetadata( brief="Whether a tool execution resulted in an error.", @@ -6855,6 +7779,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=False, + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mcp.transport": AttributeMetadata( brief="Transport method used for MCP communication.", @@ -6862,6 +7789,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="stdio", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[171]), + ], ), "mdc.": AttributeMetadata( 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.", @@ -6871,6 +7801,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): has_dynamic_suffix=True, example="mdc.some_key='some_value'", sdks=["java", "java.logback", "java.jul", "java.log4j2"], + changelog=[ + ChangelogEntry(version="0.3.0", prs=[176]), + ], ), "messaging.destination.connection": AttributeMetadata( brief="The message destination connection.", @@ -6879,6 +7812,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="BestTopic", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.destination.name": AttributeMetadata( brief="The message destination name.", @@ -6887,6 +7824,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="BestTopic", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.message.body.size": AttributeMetadata( brief="The size of the message body in bytes.", @@ -6895,6 +7836,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=839, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.message.envelope.size": AttributeMetadata( brief="The size of the message body and metadata in bytes.", @@ -6903,6 +7848,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=1045, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.message.id": AttributeMetadata( brief="A value used by the messaging system as an identifier for the message, represented as a string.", @@ -6911,6 +7860,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="f47ac10b58cc4372a5670e02b2c3d479", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.message.receive.latency": AttributeMetadata( brief="The latency between when the message was published and received.", @@ -6919,6 +7872,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=1732847252, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.message.retry.count": AttributeMetadata( brief="The amount of attempts to send the message.", @@ -6927,6 +7884,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example=2, sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "messaging.operation.type": AttributeMetadata( brief="A string identifying the type of the messaging operation", @@ -6934,6 +7895,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="create", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[51, 127]), + ], ), "messaging.system": AttributeMetadata( brief="The messaging system as identified by the client instrumentation.", @@ -6942,6 +7906,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="activemq", sdks=["php-laravel"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "method": AttributeMetadata( brief="The HTTP method used.", @@ -6952,6 +7920,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="http.request.method"), aliases=["http.request.method"], sdks=["javascript-browser", "javascript-node"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "navigation.type": AttributeMetadata( brief="The type of navigation done by a client-side router.", @@ -6959,6 +7931,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="router.push", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "nel.elapsed_time": AttributeMetadata( brief="The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent.", @@ -6966,6 +7942,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=100, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[68]), + ], ), "nel.phase": AttributeMetadata( brief='If request failed, the phase of its network error. If request succeeded, "application".', @@ -6973,6 +7953,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="application", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[68, 127]), + ], ), "nel.referrer": AttributeMetadata( brief="request's referrer, as determined by the referrer policy associated with its client.", @@ -6980,6 +7963,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="https://example.com/foo?bar=baz", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[68, 127]), + ], ), "nel.sampling_function": AttributeMetadata( brief="The sampling function used to determine if the request should be sampled.", @@ -6987,6 +7973,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=0.5, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[68]), + ], ), "nel.type": AttributeMetadata( brief='If request failed, the type of its network error. If request succeeded, "ok".', @@ -6994,6 +7984,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="dns.unreachable", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[68, 127]), + ], ), "net.host.ip": AttributeMetadata( brief="Local address of the network connection - IP address or Unix domain socket name.", @@ -7003,6 +7996,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="192.168.0.1", deprecation=DeprecationInfo(replacement="network.local.address"), aliases=["network.local.address", "net.sock.host.addr"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.host.name": AttributeMetadata( brief="Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -7012,6 +8009,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="example.com", deprecation=DeprecationInfo(replacement="server.address"), aliases=["server.address", "http.server_name", "http.host"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.host.port": AttributeMetadata( brief="Server port number.", @@ -7021,6 +8022,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=1337, deprecation=DeprecationInfo(replacement="server.port"), aliases=["server.port"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "net.peer.ip": AttributeMetadata( brief="Peer address of the network connection - IP address or Unix domain socket name.", @@ -7030,6 +8036,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="192.168.0.1", deprecation=DeprecationInfo(replacement="network.peer.address"), aliases=["network.peer.address", "net.sock.peer.addr"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.peer.name": AttributeMetadata( brief="Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -7041,6 +8051,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="server.address", reason="Deprecated, use server.address on client spans and client.address on server spans.", ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.peer.port": AttributeMetadata( brief="Peer port number.", @@ -7052,6 +8066,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="server.port", reason="Deprecated, use server.port on client spans and client.port on server spans.", ), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "net.protocol.name": AttributeMetadata( brief="OSI application layer or non-OSI equivalent.", @@ -7061,6 +8080,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="http", deprecation=DeprecationInfo(replacement="network.protocol.name"), aliases=["network.protocol.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.protocol.version": AttributeMetadata( brief="The actual version of the protocol used for network communication.", @@ -7070,6 +8093,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="1.1", deprecation=DeprecationInfo(replacement="network.protocol.version"), aliases=["network.protocol.version", "http.flavor"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.family": AttributeMetadata( brief="OSI transport and network layer", @@ -7081,6 +8108,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="network.transport", reason="Deprecated, use network.transport and network.type.", ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.host.addr": AttributeMetadata( brief="Local address of the network connection mapping to Unix domain socket name.", @@ -7090,6 +8121,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="/var/my.sock", deprecation=DeprecationInfo(replacement="network.local.address"), aliases=["network.local.address", "net.host.ip"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.host.port": AttributeMetadata( brief="Local port number of the network connection.", @@ -7099,6 +8134,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=8080, deprecation=DeprecationInfo(replacement="network.local.port"), aliases=["network.local.port"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.peer.addr": AttributeMetadata( brief="Peer address of the network connection - IP address", @@ -7108,6 +8148,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="192.168.0.1", deprecation=DeprecationInfo(replacement="network.peer.address"), aliases=["network.peer.address", "net.peer.ip"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.peer.name": AttributeMetadata( brief="Peer address of the network connection - Unix domain socket name", @@ -7118,6 +8162,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo( reason="Deprecated from OTEL, no replacement at this time" ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 119, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "net.sock.peer.port": AttributeMetadata( brief="Peer port number of the network connection.", @@ -7126,6 +8174,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=8080, deprecation=DeprecationInfo(replacement="network.peer.port"), + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "net.transport": AttributeMetadata( brief="OSI transport layer or inter-process communication method.", @@ -7135,6 +8188,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="tcp", deprecation=DeprecationInfo(replacement="network.transport"), aliases=["network.transport"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.local.address": AttributeMetadata( brief="Local address of the network connection - IP address or Unix domain socket name.", @@ -7143,6 +8200,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="10.1.2.80", aliases=["net.host.ip", "net.sock.host.addr"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.local.port": AttributeMetadata( brief="Local port number of the network connection.", @@ -7151,6 +8212,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=65400, aliases=["net.sock.host.port"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "network.peer.address": AttributeMetadata( brief="Peer address of the network connection - IP address or Unix domain socket name.", @@ -7159,6 +8224,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="10.1.2.80", aliases=["net.peer.ip", "net.sock.peer.addr"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.peer.port": AttributeMetadata( brief="Peer port number of the network connection.", @@ -7166,6 +8235,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=65400, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "network.protocol.name": AttributeMetadata( brief="OSI application layer or non-OSI equivalent.", @@ -7174,6 +8247,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="http", aliases=["net.protocol.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.protocol.version": AttributeMetadata( brief="The actual version of the protocol used for network communication.", @@ -7182,6 +8259,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="1.1", aliases=["http.flavor", "net.protocol.version"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.transport": AttributeMetadata( brief="OSI transport layer or inter-process communication method.", @@ -7190,6 +8271,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="tcp", aliases=["net.transport"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "network.type": AttributeMetadata( brief="OSI network layer or non-OSI equivalent.", @@ -7197,6 +8282,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="ipv4", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "os.build_id": AttributeMetadata( brief="The build ID of the operating system.", @@ -7204,6 +8293,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="1234567890", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "os.description": AttributeMetadata( brief="Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.", @@ -7211,6 +8304,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="Ubuntu 18.04.1 LTS", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "os.name": AttributeMetadata( brief="Human readable operating system name.", @@ -7218,6 +8315,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="Ubuntu", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "os.type": AttributeMetadata( brief="The operating system type.", @@ -7225,6 +8326,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="linux", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "os.version": AttributeMetadata( brief="The version of the operating system.", @@ -7232,6 +8337,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="18.04.2", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "otel.scope.name": AttributeMetadata( brief="The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).", @@ -7239,6 +8348,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="io.opentelemetry.contrib.mongodb", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "otel.scope.version": AttributeMetadata( brief="The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).", @@ -7246,6 +8359,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="2.4.5", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "otel.status_code": AttributeMetadata( brief="Name of the code, either “OK” or “ERROR”. MUST NOT be set if the status code is UNSET.", @@ -7253,6 +8370,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="OK", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "otel.status_description": AttributeMetadata( brief="Description of the Status if it has a value, otherwise not set.", @@ -7260,6 +8381,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="resource not found", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "params.": AttributeMetadata( brief="Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.", @@ -7269,6 +8394,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): has_dynamic_suffix=True, example="params.id='123'", aliases=["url.path.parameter."], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "previous_route": AttributeMetadata( brief="Also used by mobile SDKs to indicate the previous route in the application.", @@ -7277,6 +8405,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="HomeScreen", sdks=["javascript-reactnative"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[74]), + ChangelogEntry(version="0.0.0"), + ], ), "process.executable.name": AttributeMetadata( brief="The name of the executable that started the process.", @@ -7284,6 +8416,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="getsentry", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "process.pid": AttributeMetadata( brief="The process ID of the running process.", @@ -7291,6 +8427,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=12345, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "process.runtime.description": AttributeMetadata( 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.", @@ -7298,6 +8438,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="Eclipse OpenJ9 VM openj9-0.21.0", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "process.runtime.name": AttributeMetadata( brief="The name of the runtime. Equivalent to `name` in the Sentry runtime context.", @@ -7305,6 +8449,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="node", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "process.runtime.version": AttributeMetadata( brief="The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context.", @@ -7312,6 +8460,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="18.04.2", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "query.": AttributeMetadata( brief="An item in a query string. Usually added by client-side routing frameworks like vue-router.", @@ -7324,6 +8476,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): replacement="url.query", reason="Instead of sending items individually in query., they should be sent all together with url.query.", ), + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "release": AttributeMetadata( brief="The sentry release.", @@ -7333,6 +8488,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="production", deprecation=DeprecationInfo(replacement="sentry.release"), aliases=["sentry.release"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "remix.action_form_data.": AttributeMetadata( brief="Remix form data, being the form data key, the value being the form data value.", @@ -7342,6 +8501,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): has_dynamic_suffix=True, example="http.response.header.text='test'", sdks=["javascript-remix"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "replay_id": AttributeMetadata( brief="The id of the sentry replay.", @@ -7351,6 +8513,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="123e4567e89b12d3a456426614174000", deprecation=DeprecationInfo(replacement="sentry.replay_id"), aliases=["sentry.replay_id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "resource.deployment.environment": AttributeMetadata( brief="The software deployment environment name.", @@ -7361,6 +8527,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo( replacement="sentry.environment", status=DeprecationStatus.BACKFILL ), + changelog=[ + ChangelogEntry(version="next", prs=[266]), + ], ), "resource.deployment.environment.name": AttributeMetadata( brief="The software deployment environment name.", @@ -7371,6 +8540,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo( replacement="sentry.environment", status=DeprecationStatus.BACKFILL ), + changelog=[ + ChangelogEntry(version="0.3.1", prs=[196]), + ], ), "resource.render_blocking_status": AttributeMetadata( brief="The render blocking status of the resource.", @@ -7379,6 +8551,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="non-blocking", sdks=["javascript-browser"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "route": AttributeMetadata( 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.", @@ -7389,6 +8565,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="http.route"), aliases=["http.route"], sdks=["php-laravel", "javascript-reactnative"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 74]), + ChangelogEntry(version="0.0.0"), + ], ), "rpc.grpc.status_code": AttributeMetadata( brief="The numeric status code of the gRPC request.", @@ -7396,6 +8576,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=2, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "rpc.service": AttributeMetadata( brief="The full (logical) name of the service being called, including its package name, if applicable.", @@ -7403,6 +8587,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="myService.BestService", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "sentry.action": AttributeMetadata( 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.", @@ -7410,6 +8598,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="SELECT", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[212]), + ], ), "sentry.browser.name": AttributeMetadata( brief="The name of the browser.", @@ -7419,6 +8610,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="Chrome", deprecation=DeprecationInfo(replacement="browser.name"), aliases=["browser.name"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[139]), + ], ), "sentry.browser.version": AttributeMetadata( brief="The version of the browser.", @@ -7428,6 +8622,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="120.0.6099.130", deprecation=DeprecationInfo(replacement="browser.version"), aliases=["browser.version"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[139]), + ], ), "sentry.cancellation_reason": AttributeMetadata( brief="The reason why a span ended early.", @@ -7435,6 +8632,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="document.hidden", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.category": AttributeMetadata( 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). Known values include: 'ai', 'ai.pipeline', 'app', 'browser', 'cache', 'console', 'db', 'event', 'file', 'function.aws', 'function.azure', 'function.gcp', 'function.nextjs', 'function.remix', 'graphql', 'grpc', 'http', 'measure', 'middleware', 'navigation', 'pageload', 'queue', 'resource', 'rpc', 'serialize', 'subprocess', 'template', 'topic', 'ui', 'ui.angular', 'ui.ember', 'ui.react', 'ui.svelte', 'ui.vue', 'view', 'websocket'.", @@ -7442,6 +8642,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="db", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[218]), + ], ), "sentry.client_sample_rate": AttributeMetadata( brief="Rate at which a span was sampled in the SDK.", @@ -7449,6 +8652,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=0.5, + changelog=[ + ChangelogEntry(version="0.1.0", prs=[102]), + ], ), "sentry.description": AttributeMetadata( brief="The human-readable description of a span.", @@ -7456,6 +8662,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="index view query", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[135]), + ], ), "sentry.dist": AttributeMetadata( brief="The sentry dist.", @@ -7463,6 +8672,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1.0", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.domain": AttributeMetadata( 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.", @@ -7470,6 +8682,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="example.com", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[212]), + ], ), "sentry.dsc.environment": AttributeMetadata( brief="The environment from the dynamic sampling context.", @@ -7477,6 +8692,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="prod", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.public_key": AttributeMetadata( brief="The public key from the dynamic sampling context.", @@ -7484,6 +8702,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="c51734c603c4430eb57cb0a5728a479d", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.release": AttributeMetadata( brief="The release identifier from the dynamic sampling context.", @@ -7491,6 +8712,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="frontend@e8211be71b214afab5b85de4b4c54be3714952bb", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.sample_rate": AttributeMetadata( brief="The sample rate from the dynamic sampling context.", @@ -7498,6 +8722,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1.0", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.sampled": AttributeMetadata( brief="Whether the event was sampled according to the dynamic sampling context.", @@ -7505,6 +8732,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.trace_id": AttributeMetadata( brief="The trace ID from the dynamic sampling context.", @@ -7512,6 +8742,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="047372980460430cbc78d9779df33a46", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.dsc.transaction": AttributeMetadata( brief="The transaction name from the dynamic sampling context.", @@ -7519,6 +8752,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="/issues/errors-outages/", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.environment": AttributeMetadata( brief="The sentry environment.", @@ -7527,6 +8763,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="production", aliases=["environment"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.exclusive_time": AttributeMetadata( brief="The exclusive time duration of the span in milliseconds.", @@ -7534,6 +8773,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1234, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.3.0", prs=[160]), + ChangelogEntry(version="0.0.0"), + ], ), "sentry.graphql.operation": AttributeMetadata( brief="Indicates the type of graphql operation, emitted by the Javascript SDK.", @@ -7541,12 +8785,18 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="getUserById", + changelog=[ + ChangelogEntry(version="0.3.1", prs=[190]), + ], ), "sentry.group": AttributeMetadata( brief="Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end.", type=AttributeType.STRING, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[212]), + ], ), "sentry.http.prefetch": AttributeMetadata( brief="If an http request was a prefetch request.", @@ -7554,6 +8804,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.idle_span_finish_reason": AttributeMetadata( brief="The reason why an idle span ended early.", @@ -7561,6 +8814,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="idleTimeout", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.is_remote": AttributeMetadata( brief="Indicates whether a span's parent is remote.", @@ -7568,6 +8824,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.3.1", prs=[190]), + ], ), "sentry.kind": AttributeMetadata( 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.", @@ -7575,6 +8834,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="server", + changelog=[ + ChangelogEntry(version="0.3.1", prs=[190]), + ], ), "sentry.message.parameter.": AttributeMetadata( 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)", @@ -7582,6 +8844,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="sentry.message.parameter.0='123'", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116]), + ], ), "sentry.message.template": AttributeMetadata( brief="The parameterized template string.", @@ -7589,6 +8854,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Hello, {name}!", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116]), + ], ), "sentry.module.": AttributeMetadata( brief="A module that was loaded in the process. The key is the name of the module.", @@ -7597,6 +8865,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, has_dynamic_suffix=True, example="sentry.module.brianium/paratest='v7.7.0'", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "sentry.nextjs.ssr.function.route": AttributeMetadata( 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.", @@ -7605,6 +8876,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="/posts/[id]/layout", sdks=["javascript"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[54, 106]), + ], ), "sentry.nextjs.ssr.function.type": AttributeMetadata( 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.", @@ -7613,6 +8887,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="generateMetadata", sdks=["javascript"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[54, 106]), + ], ), "sentry.normalized_db_query": AttributeMetadata( brief="The normalized version of `db.query.text`.", @@ -7620,12 +8897,18 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="SELECT .. FROM sentry_project WHERE (project_id = %s)", + changelog=[ + ChangelogEntry(version="0.3.1", prs=[194]), + ], ), "sentry.normalized_db_query.hash": AttributeMetadata( brief="The hash of `sentry.normalized_db_query`.", type=AttributeType.STRING, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[200]), + ], ), "sentry.normalized_description": AttributeMetadata( 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).", @@ -7633,6 +8916,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="SELECT .. FROM sentry_project WHERE (project_id = %s)", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[212]), + ], ), "sentry.observed_timestamp_nanos": AttributeMetadata( brief="The timestamp at which an envelope was received by Relay, in nanoseconds.", @@ -7640,6 +8926,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1544712660300000000", + changelog=[ + ChangelogEntry(version="0.3.0", prs=[174]), + ChangelogEntry(version="0.2.0", prs=[137]), + ], ), "sentry.op": AttributeMetadata( brief="The operation of a span.", @@ -7647,6 +8937,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="http.client", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.origin": AttributeMetadata( brief="The origin of the instrumentation (e.g. span, log, etc.)", @@ -7654,6 +8947,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="auto.http.otel.fastify", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[68]), + ChangelogEntry(version="0.0.0"), + ], ), "sentry.platform": AttributeMetadata( brief="The sdk platform that generated the event.", @@ -7661,6 +8958,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="php", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.profiler_id": AttributeMetadata( brief="The id of the currently running profiler (continuous profiling)", @@ -7668,6 +8968,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="18779b64dd35d1a538e7ce2dd2d3fad3", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[242]), + ], ), "sentry.release": AttributeMetadata( brief="The sentry release.", @@ -7676,6 +8979,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="7.0.0", aliases=["service.version", "release"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.replay_id": AttributeMetadata( brief="The id of the sentry replay.", @@ -7684,6 +8990,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="123e4567e89b12d3a456426614174000", aliases=["replay_id"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.replay_is_buffering": AttributeMetadata( brief="A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate).", @@ -7691,6 +9000,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.3.0", prs=[185]), + ], ), "sentry.sdk.integrations": AttributeMetadata( 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.", @@ -7703,6 +9015,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "BrowserApiErrors", "Breadcrumbs", ], + changelog=[ + ChangelogEntry(version="0.0.0", prs=[42]), + ], ), "sentry.sdk.name": AttributeMetadata( brief="The sentry sdk name.", @@ -7710,6 +9025,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="@sentry/react", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.sdk.version": AttributeMetadata( brief="The sentry sdk version.", @@ -7717,6 +9035,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="7.0.0", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "sentry.segment.id": AttributeMetadata( brief="The segment ID of a span", @@ -7725,6 +9046,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="051581bf3cb55c13", aliases=["sentry.segment_id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[107, 124]), + ], ), "sentry.segment.name": AttributeMetadata( brief="The segment name of a span", @@ -7732,6 +9056,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="GET /user", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[104]), + ], ), "sentry.segment_id": AttributeMetadata( brief="The segment ID of a span", @@ -7741,6 +9068,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="051581bf3cb55c13", deprecation=DeprecationInfo(replacement="sentry.segment.id"), aliases=["sentry.segment.id"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[124]), + ], ), "sentry.server_sample_rate": AttributeMetadata( brief="Rate at which a span was sampled in Relay.", @@ -7748,6 +9078,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=0.5, + changelog=[ + ChangelogEntry(version="0.1.0", prs=[102]), + ], ), "sentry.span.source": AttributeMetadata( brief="The source of a span, also referred to as transaction source. Known values are: `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`.", @@ -7755,6 +9088,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="route", + changelog=[ + ChangelogEntry(version="0.4.0", prs=[214]), + ChangelogEntry(version="0.0.0"), + ], ), "sentry.status.message": AttributeMetadata( brief="The from OTLP extracted status message.", @@ -7762,6 +9099,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="foobar", + changelog=[ + ChangelogEntry(version="0.3.1", prs=[190]), + ], ), "sentry.status_code": AttributeMetadata( brief="The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients.", @@ -7769,6 +9109,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=200, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[223, 228]), + ], ), "sentry.trace.parent_span_id": AttributeMetadata( 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.", @@ -7776,6 +9119,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="b0e6f15b45c36b12", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[116]), + ], ), "sentry.transaction": AttributeMetadata( brief="The sentry transaction (segment name).", @@ -7784,6 +9130,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="GET /", aliases=["transaction"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "server.address": AttributeMetadata( brief="Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -7792,6 +9141,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="example.com", aliases=["http.server_name", "net.host.name", "http.host"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[108, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "server.port": AttributeMetadata( brief="Server port number.", @@ -7800,6 +9153,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example=1337, aliases=["net.host.port"], + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "service.name": AttributeMetadata( brief="Logical name of the service.", @@ -7807,6 +9164,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="omegastar", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "service.version": AttributeMetadata( brief="The version string of the service API or implementation. The format is not defined by these conventions.", @@ -7815,6 +9176,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="5.0.0", aliases=["sentry.release"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "thread.id": AttributeMetadata( brief="Current “managed” thread ID.", @@ -7822,6 +9187,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=True, example=56, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "thread.name": AttributeMetadata( brief="Current thread name.", @@ -7829,6 +9197,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="main", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "timber.tag": AttributeMetadata( brief="The log tag provided by the timber logging framework.", @@ -7837,6 +9209,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="MyTag", sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry(version="0.3.0", prs=[183]), + ], ), "transaction": AttributeMetadata( brief="The sentry transaction (segment name).", @@ -7846,6 +9221,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="GET /", deprecation=DeprecationInfo(replacement="sentry.transaction"), aliases=["sentry.transaction"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61, 127]), + ChangelogEntry(version="0.0.0"), + ], ), "type": AttributeMetadata( brief="More granular type of the operation happening.", @@ -7854,6 +9233,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="fetch", sdks=["javascript-browser", "javascript-node"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "ui.component_name": AttributeMetadata( brief="The name of the associated component.", @@ -7861,6 +9243,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="HomeButton", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "ui.contributes_to_ttfd": AttributeMetadata( brief="Whether the span execution contributed to the TTFD (time to fully drawn) metric.", @@ -7868,6 +9254,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "ui.contributes_to_ttid": AttributeMetadata( brief="Whether the span execution contributed to the TTID (time to initial display) metric.", @@ -7875,6 +9264,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example=True, + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "url.domain": AttributeMetadata( brief="Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.", @@ -7882,6 +9274,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="example.com", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "url.fragment": AttributeMetadata( brief="The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does.", @@ -7889,6 +9285,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="details", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "url.full": AttributeMetadata( brief="The URL of the resource that was fetched.", @@ -7897,6 +9296,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="https://example.com/test?foo=bar#buzz", aliases=["http.url", "url"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[108]), + ChangelogEntry(version="0.0.0"), + ], ), "url.path": AttributeMetadata( brief="The URI path component.", @@ -7904,6 +9307,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example="/foo", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "url.path.parameter.": AttributeMetadata( brief="Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.", @@ -7913,6 +9319,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): has_dynamic_suffix=True, example="url.path.parameter.id='123'", aliases=["params."], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[103]), + ], ), "url.port": AttributeMetadata( brief="Server port number.", @@ -7920,6 +9329,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=True, example=1337, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.0.0"), + ], ), "url.query": AttributeMetadata( brief="The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.", @@ -7930,6 +9343,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), is_in_otel=True, example="foo=bar&bar=baz", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "url.scheme": AttributeMetadata( brief="The URI scheme component identifying the used protocol.", @@ -7938,6 +9354,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="https", aliases=["http.scheme"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "url.template": AttributeMetadata( brief="The low-cardinality template of an absolute path reference.", @@ -7946,6 +9366,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, example="/users/:id", aliases=["http.route"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "url": AttributeMetadata( brief="The URL of the resource that was fetched.", @@ -7956,6 +9380,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): deprecation=DeprecationInfo(replacement="url.full"), aliases=["url.full", "http.url"], sdks=["javascript-browser", "javascript-node"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[61]), + ChangelogEntry(version="0.0.0"), + ], ), "user.email": AttributeMetadata( brief="User email address.", @@ -7963,6 +9391,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="test@example.com", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.full_name": AttributeMetadata( brief="User's full name.", @@ -7970,6 +9401,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="John Smith", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.geo.city": AttributeMetadata( brief="Human readable city name.", @@ -7977,6 +9411,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Toronto", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.geo.country_code": AttributeMetadata( brief="Two-letter country code (ISO 3166-1 alpha-2).", @@ -7984,6 +9421,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="CA", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.geo.region": AttributeMetadata( brief="Human readable region name or code.", @@ -7991,6 +9431,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Canada", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.geo.subdivision": AttributeMetadata( brief="Human readable subdivision name.", @@ -7998,6 +9441,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="Ontario", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.hash": AttributeMetadata( brief="Unique user hash to correlate information for a user in anonymized form.", @@ -8005,6 +9451,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.id": AttributeMetadata( brief="Unique identifier of the user.", @@ -8012,6 +9461,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="S-1-5-21-202424912787-2692429404-2351956786-1000", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.ip_address": AttributeMetadata( brief="The IP address of the user.", @@ -8019,6 +9471,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=False, example="192.168.1.1", + changelog=[ + ChangelogEntry(version="0.1.0", prs=[75]), + ], ), "user.name": AttributeMetadata( brief="Short name or login/username of the user.", @@ -8026,6 +9481,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example="j.smith", + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user.roles": AttributeMetadata( brief="Array of user roles at the time of the event.", @@ -8033,6 +9491,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=True, example=["admin", "editor"], + changelog=[ + ChangelogEntry(version="0.0.0"), + ], ), "user_agent.original": AttributeMetadata( brief="Value of the HTTP User-Agent header sent by the client.", @@ -8041,6 +9502,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, 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"], + changelog=[ + ChangelogEntry(version="0.1.0", prs=[127]), + ChangelogEntry(version="0.0.0"), + ], ), "vercel.branch": AttributeMetadata( brief="Git branch name for Vercel project", @@ -8048,6 +9513,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="main", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.build_id": AttributeMetadata( brief="Identifier for the Vercel build (only present on build logs)", @@ -8055,6 +9523,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="bld_cotnkcr76", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.deployment_id": AttributeMetadata( brief="Identifier for the Vercel deployment", @@ -8062,6 +9533,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="dpl_233NRGRjVZX1caZrXWtz5g1TAksD", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.destination": AttributeMetadata( brief="Origin of the external content in Vercel (only on external logs)", @@ -8069,6 +9543,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="https://vitals.vercel-insights.com/v1", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.edge_type": AttributeMetadata( brief="Type of edge runtime in Vercel", @@ -8076,6 +9553,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="edge-function", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.entrypoint": AttributeMetadata( brief="Entrypoint for the request in Vercel", @@ -8083,6 +9563,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="api/index.js", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.execution_region": AttributeMetadata( brief="Region where the request is executed", @@ -8090,6 +9573,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="sfo1", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.id": AttributeMetadata( brief="Unique identifier for the log entry in Vercel", @@ -8097,6 +9583,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="1573817187330377061717300000", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.ja3_digest": AttributeMetadata( brief="JA3 fingerprint digest of Vercel request", @@ -8104,6 +9593,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.ja4_digest": AttributeMetadata( brief="JA4 fingerprint digest", @@ -8111,6 +9603,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="t13d1516h2_8daaf6152771_02713d6af862", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.log_type": AttributeMetadata( brief="Vercel log output type", @@ -8118,6 +9613,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="stdout", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.project_id": AttributeMetadata( brief="Identifier for the Vercel project", @@ -8125,6 +9623,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="gdufoJxB6b9b1fEqr1jUtFkyavUU", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.project_name": AttributeMetadata( brief="Name of the Vercel project", @@ -8132,6 +9633,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="my-app", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.cache_id": AttributeMetadata( brief="Original request ID when request is served from cache", @@ -8139,6 +9643,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="pdx1::v8g4b-1744143786684-93dafbc0f70d", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.client_ip": AttributeMetadata( brief="Client IP address", @@ -8146,6 +9653,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.TRUE), is_in_otel=False, example="120.75.16.101", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.host": AttributeMetadata( brief="Hostname of the request", @@ -8153,6 +9663,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="test.vercel.app", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.lambda_region": AttributeMetadata( brief="Region where lambda function executed", @@ -8160,6 +9673,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="sfo1", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.method": AttributeMetadata( brief="HTTP method of the request", @@ -8167,6 +9683,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="GET", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.path": AttributeMetadata( brief="Request path with query parameters", @@ -8174,6 +9693,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="/dynamic/some-value.json?route=some-value", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.path_type": AttributeMetadata( brief="How the request was served based on its path and project configuration", @@ -8181,6 +9703,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="func", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.path_type_variant": AttributeMetadata( brief="Variant of the path type", @@ -8188,6 +9713,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="api", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.referer": AttributeMetadata( brief="Referer of the request", @@ -8195,6 +9723,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example="*.vercel.app", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.region": AttributeMetadata( brief="Region where the request is processed", @@ -8202,6 +9733,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="sfo1", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.response_byte_size": AttributeMetadata( brief="Size of the response in bytes", @@ -8209,6 +9743,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1024, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.scheme": AttributeMetadata( brief="Protocol of the request", @@ -8216,6 +9754,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="https", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.status_code": AttributeMetadata( brief="HTTP status code of the proxy request", @@ -8223,6 +9764,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=200, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.timestamp": AttributeMetadata( brief="Unix timestamp when the proxy request was made", @@ -8230,6 +9775,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=1573817250172, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.user_agent": AttributeMetadata( brief="User agent strings of the request", @@ -8237,6 +9786,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=["Mozilla/5.0..."], + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.vercel_cache": AttributeMetadata( brief="Cache status sent to the browser", @@ -8244,6 +9796,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="REVALIDATED", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.vercel_id": AttributeMetadata( brief="Vercel-specific identifier", @@ -8251,6 +9806,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="sfo1::abc123", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.waf_action": AttributeMetadata( brief="Action taken by firewall rules", @@ -8258,6 +9816,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="deny", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.proxy.waf_rule_id": AttributeMetadata( brief="ID of the firewall rule that matched", @@ -8265,6 +9826,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="rule_gAHz8jtSB1Gy", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.request_id": AttributeMetadata( brief="Identifier of the Vercel request", @@ -8272,6 +9836,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="643af4e3-975a-4cc7-9e7a-1eda11539d90", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.source": AttributeMetadata( brief="Origin of the Vercel log (build, edge, lambda, static, external, or firewall)", @@ -8279,6 +9846,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, example="build", + changelog=[ + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), "vercel.status_code": AttributeMetadata( brief="HTTP status code of the request (-1 means no response returned and the lambda crashed)", @@ -8286,6 +9856,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): pii=PiiInfo(isPii=IsPii.MAYBE), is_in_otel=False, example=200, + changelog=[ + ChangelogEntry(version="0.4.0", prs=[228]), + ChangelogEntry(version="0.2.0", prs=[163]), + ], ), } diff --git a/schemas/attribute.schema.json b/schemas/attribute.schema.json index 175bf0ad..1ec40abe 100644 --- a/schemas/attribute.schema.json +++ b/schemas/attribute.schema.json @@ -101,6 +101,32 @@ "items": { "type": "string" } + }, + "changelog": { + "description": "A list of changelog entries tracking how this attribute has changed across versions", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "version": { + "description": "The sentry-conventions release version", + "type": "string" + }, + "prs": { + "description": "GitHub PR numbers", + "type": "array", + "items": { + "type": "integer" + } + }, + "description": { + "description": "Optional description of what changed", + "type": "string" + } + }, + "required": ["version"] + } } }, "required": ["key", "brief", "type", "pii", "is_in_otel"] diff --git a/scripts/clear_attribute_changelog.ts b/scripts/clear_attribute_changelog.ts new file mode 100644 index 00000000..718129a2 --- /dev/null +++ b/scripts/clear_attribute_changelog.ts @@ -0,0 +1,72 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import type { AttributeJson } from './types'; +import { getAllJsonFiles } from './generate_attribute_changelog'; + +const attributesDir = path.join(__dirname, '..', 'model', 'attributes'); + +async function clearAll(): Promise { + const files = await getAllJsonFiles(attributesDir); + let count = 0; + + for (const relativeFile of files) { + const filePath = path.join(attributesDir, relativeFile); + const content = await fs.promises.readFile(filePath, 'utf-8'); + const json: AttributeJson = JSON.parse(content); + + if ('changelog' in json) { + json.changelog = undefined; + await fs.promises.writeFile(filePath, `${JSON.stringify(json, null, 2)}\n`, 'utf-8'); + count++; + } + } + + console.log(`Cleared changelog from ${count} file(s).`); +} + +async function clearByKey(key: string): Promise { + const files = await getAllJsonFiles(attributesDir); + + for (const relativeFile of files) { + const filePath = path.join(attributesDir, relativeFile); + const content = await fs.promises.readFile(filePath, 'utf-8'); + const json: AttributeJson = JSON.parse(content); + + if (json.key === key) { + if ('changelog' in json) { + json.changelog = undefined; + await fs.promises.writeFile(filePath, `${JSON.stringify(json, null, 2)}\n`, 'utf-8'); + console.log(`Cleared changelog from ${relativeFile}`); + } else { + console.log(`No changelog found for key "${key}" in ${relativeFile}`); + } + return; + } + } + + console.error(`No attribute found with key "${key}"`); + process.exit(1); +} + +const args = process.argv.slice(2); + +if (args.includes('--all')) { + clearAll().catch((err) => { + console.error(err); + process.exit(1); + }); +} else { + const keyIndex = args.indexOf('--key'); + if (keyIndex !== -1 && args[keyIndex + 1]) { + const key = args[keyIndex + 1]; + clearByKey(key).catch((err) => { + console.error(err); + process.exit(1); + }); + } else { + console.error('Usage:'); + console.error(' tsx scripts/clear_attribute_changelog.ts --all'); + console.error(' tsx scripts/clear_attribute_changelog.ts --key '); + process.exit(1); + } +} diff --git a/scripts/generate_attribute_changelog.ts b/scripts/generate_attribute_changelog.ts new file mode 100644 index 00000000..3065f27f --- /dev/null +++ b/scripts/generate_attribute_changelog.ts @@ -0,0 +1,261 @@ +import { execSync } from 'node:child_process'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import type { AttributeJson } from './types'; + +export interface ChangelogEntry { + version: string; + prs?: number[]; + description?: string; +} + +/** + * Generates attribute changelog entries for all attribute JSON files based on git history. + * + * For each attribute file, it finds all commits that touched the file, + * maps them to release versions using git tags, and extracts PR numbers + * from commit messages. + */ +export async function generateAttributeChangelog() { + const attributesDir = path.join(__dirname, '..', 'model', 'attributes'); + const tags = getReleaseTags(); + + // Build tag ranges: [{from: null, to: "0.0.0"}, {from: "0.0.0", to: "0.1.0"}, ...] + const tagRanges: Array<{ from: string | null; to: string }> = []; + for (let i = 0; i < tags.length; i++) { + tagRanges.push({ + from: i === 0 ? null : tags[i - 1], + to: tags[i] as string, + }); + } + + // Add range from latest tag (or beginning) to HEAD for unreleased changes + tagRanges.push({ + from: tags.length > 0 ? (tags[tags.length - 1] as string) : null, + to: 'next', + }); + + const allFiles = await getAllJsonFiles(attributesDir); + let updatedCount = 0; + + // TODO: This runs O(files × versions) git subprocesses. As the repo accumulates + // more releases, consider batching: for each version range, query changed files + // once with `git diff --name-only`, then map files to versions, instead of + // querying per file. + for (const relativeFile of allFiles) { + const filePath = path.join(attributesDir, relativeFile); + const gitPath = path.join('model', 'attributes', relativeFile); + const changelog = buildChangelog(gitPath, tagRanges); + + if (changelog.length === 0) { + continue; + } + + const attributeJson = JSON.parse(fs.readFileSync(filePath, 'utf-8')) as AttributeJson; + attributeJson.changelog = mergeChangelogs(attributeJson.changelog ?? [], changelog); + fs.writeFileSync(filePath, `${JSON.stringify(attributeJson, null, 2)}\n`); + updatedCount++; + } + + console.log(`Updated changelog for ${updatedCount} attribute files.`); +} + +function getReleaseTags(): string[] { + try { + const output = execSync('git tag --sort=version:refname', { encoding: 'utf-8' }); + return output + .trim() + .split('\n') + .filter((tag) => /^\d+\.\d+\.\d+$/.test(tag)); + } catch { + return []; + } +} + +function buildChangelog(gitPath: string, tagRanges: Array<{ from: string | null; to: string }>): ChangelogEntry[] { + const changelog: ChangelogEntry[] = []; + + for (const { from, to } of tagRanges) { + const range = to === 'next' ? (from ? `${from}..HEAD` : 'HEAD') : from ? `${from}..${to}` : to; + const commits = getCommitsInRange(gitPath, range); + + if (commits.length === 0) { + continue; + } + + // Extract PR numbers from all commits in this version + const prs = new Set(); + for (const commit of commits) { + const pr = extractPrNumber(commit.message); + if (pr !== undefined) { + prs.add(pr); + } + } + + // Don't create empty 'next' entries — commits without PR numbers are + // infrastructure/tooling changes, not real attribute changes + if (to === 'next' && prs.size === 0) { + continue; + } + + const entry: ChangelogEntry = { version: to }; + if (prs.size > 0) { + entry.prs = Array.from(prs).sort((a, b) => a - b); + } + changelog.push(entry); + } + + return changelog.reverse(); +} + +export function compareVersions(a: string, b: string): number { + if (a === 'next' && b === 'next') return 0; + if (a === 'next') return 1; + if (b === 'next') return -1; + + const partsA = a.split('.').map(Number); + const partsB = b.split('.').map(Number); + for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) { + const numA = partsA[i] ?? 0; + const numB = partsB[i] ?? 0; + if (numA !== numB) return numA - numB; + } + return 0; +} + +export function mergeChangelogs(existing: ChangelogEntry[], generated: ChangelogEntry[]): ChangelogEntry[] { + // If the existing changelog has a "next" entry but the generated changelog has a real version + // that accounts for those same commits, promote the old "next" entry to that version. + const existingPromoted = promoteNextEntries(existing, generated); + + const existingByVersion = new Map(); + for (const entry of existingPromoted) { + existingByVersion.set(entry.version, entry); + } + + const generatedByVersion = new Map(); + for (const entry of generated) { + generatedByVersion.set(entry.version, entry); + } + + const merged: ChangelogEntry[] = []; + + // Merge generated entries, preserving existing descriptions and unioning PRs + for (const genEntry of generated) { + const existingEntry = existingByVersion.get(genEntry.version); + if (existingEntry) { + const prSet = new Set([...(existingEntry.prs ?? []), ...(genEntry.prs ?? [])]); + const mergedEntry: ChangelogEntry = { version: genEntry.version }; + if (prSet.size > 0) { + mergedEntry.prs = Array.from(prSet).sort((a, b) => a - b); + } + if (existingEntry.description) { + mergedEntry.description = existingEntry.description; + } + merged.push(mergedEntry); + } else { + merged.push({ ...genEntry }); + } + } + + // Preserve manually-created entries not in generated + for (const existingEntry of existingPromoted) { + if (!generatedByVersion.has(existingEntry.version)) { + // Don't preserve stale 'next' entries with no description. + // If generated has no 'next', the script found no PR-bearing unreleased commits. + // A description-only 'next' is a deliberate manual annotation; preserve that. + if (existingEntry.version === 'next' && !existingEntry.description) { + continue; + } + merged.push({ ...existingEntry }); + } + } + + // Sort newest-first ("next" always comes first, handled by compareVersions) + return merged.sort((a, b) => compareVersions(b.version, a.version)); +} + +/** + * When a new release happens, the previously-generated "next" entries should be + * promoted to the newest version that now covers those commits. + * This finds the highest non-"next" version in the generated changelog and + * re-labels any existing "next" entry to that version. + */ +function promoteNextEntries(existing: ChangelogEntry[], generated: ChangelogEntry[]): ChangelogEntry[] { + const existingNext = existing.find((e) => e.version === 'next'); + if (!existingNext) { + return existing; + } + + // Check if generated still has a "next" entry — if so, no promotion needed yet + const generatedHasNext = generated.some((e) => e.version === 'next'); + + // Find the highest real version in generated + const realVersions = generated.filter((e) => e.version !== 'next').map((e) => e.version); + if (realVersions.length === 0 || generatedHasNext) { + return existing; + } + + const highestVersion = realVersions.sort((a, b) => compareVersions(b, a))[0] as string; + + // Check if this version is newer than what was previously in existing + // (i.e., was the "next" entry created before this version existed?) + const existingHasVersion = existing.some((e) => e.version === highestVersion); + if (existingHasVersion) { + return existing; + } + + // Promote: replace "next" with the new version + return existing.map((e) => (e.version === 'next' ? { ...e, version: highestVersion } : e)); +} + +interface CommitInfo { + hash: string; + message: string; +} + +function getCommitsInRange(gitPath: string, range: string): CommitInfo[] { + try { + const output = execSync(`git log --no-merges --format="%H %s" ${range} -- "${gitPath}"`, { encoding: 'utf-8' }); + return output + .trim() + .split('\n') + .filter(Boolean) + .map((line) => ({ + hash: line.substring(0, 40), + message: line.substring(41), + })); + } catch { + return []; + } +} + +function extractPrNumber(message: string): number | undefined { + const match = message.match(/\(#(\d+)\)\s*$/); + return match ? Number(match[1]) : undefined; +} + +export async function getAllJsonFiles(dir: string): Promise { + const allFiles: string[] = []; + + async function scanDir(currentDir: string, relativePath = '') { + const entries = await fs.promises.readdir(currentDir, { withFileTypes: true }); + for (const entry of entries) { + const entryPath = path.join(currentDir, entry.name); + const entryRelativePath = path.join(relativePath, entry.name); + if (entry.isDirectory()) { + await scanDir(entryPath, entryRelativePath); + } else if (entry.isFile() && path.extname(entry.name) === '.json') { + allFiles.push(entryRelativePath); + } + } + } + + await scanDir(dir); + return allFiles; +} + +// Run directly (not when imported as a module) +if (process.argv[1] === __filename) { + generateAttributeChangelog(); +} diff --git a/scripts/generate_attributes.ts b/scripts/generate_attributes.ts index 62999ea7..f70de68b 100644 --- a/scripts/generate_attributes.ts +++ b/scripts/generate_attributes.ts @@ -313,6 +313,18 @@ function writeToPython(attributesDir: string, attributeFiles: string[]) { content += ' reason: Optional[str] = None\n'; content += ' status: Optional[DeprecationStatus] = None\n\n'; + content += '@dataclass\n'; + content += 'class ChangelogEntry:\n'; + content += ' """A changelog entry tracking a change to an attribute."""\n\n'; + content += ' version: str\n'; + content += ' """The sentry-conventions release version"""\n'; + content += ' \n'; + content += ' prs: Optional[List[int]] = None\n'; + content += ' """GitHub PR numbers"""\n'; + content += ' \n'; + content += ' description: Optional[str] = None\n'; + content += ' """Optional description of what changed"""\n\n'; + content += '@dataclass\n'; content += 'class AttributeMetadata:\n'; content += ' """The metadata for an attribute."""\n\n'; @@ -344,7 +356,10 @@ function writeToPython(attributesDir: string, attributeFiles: string[]) { content += ' \n'; content += ' sdks: Optional[List[str]] = None\n'; content += - ' """If an attribute is SDK specific, list the SDKs that use this attribute. This is not an exhaustive list, there might be SDKs that send this attribute that are is not documented here."""\n\n'; + ' """If an attribute is SDK specific, list the SDKs that use this attribute. This is not an exhaustive list, there might be SDKs that send this attribute that are is not documented here."""\n'; + content += ' \n'; + content += ' changelog: Optional[List[ChangelogEntry]] = None\n'; + content += ' """Changelog entries tracking how this attribute has changed across versions"""\n\n'; let attributesTypeMembers = ''; let deprecatedAttributesTypeMembers = ''; @@ -503,6 +518,22 @@ function writeToPython(attributesDir: string, attributeFiles: string[]) { metadataDict += ` sdks=${JSON.stringify(attributeJson.sdks)},\n`; } + if (attributeJson.changelog && attributeJson.changelog.length > 0) { + metadataDict += ' changelog=[\n'; + for (const entry of attributeJson.changelog) { + metadataDict += ' ChangelogEntry('; + metadataDict += `version=${JSON.stringify(entry.version)}`; + if (entry.prs && entry.prs.length > 0) { + metadataDict += `, prs=[${entry.prs.join(', ')}]`; + } + if (entry.description) { + metadataDict += `, description=${JSON.stringify(entry.description)}`; + } + metadataDict += '),\n'; + } + metadataDict += ' ],\n'; + } + metadataDict += ' ),\n'; } @@ -629,6 +660,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; @@ -648,6 +688,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[]; } `; @@ -744,6 +786,22 @@ function generateMetadataDict( metadataDict += ` sdks: ${JSON.stringify(attributeJson.sdks)},\n`; } + if (attributeJson.changelog && attributeJson.changelog.length > 0) { + metadataDict += ' changelog: [\n'; + for (const entry of attributeJson.changelog) { + metadataDict += ' {'; + metadataDict += ` version: ${JSON.stringify(entry.version)}`; + if (entry.prs && entry.prs.length > 0) { + metadataDict += `, prs: [${entry.prs.join(', ')}]`; + } + if (entry.description) { + metadataDict += `, description: ${JSON.stringify(entry.description)}`; + } + metadataDict += ' },\n'; + } + metadataDict += ' ],\n'; + } + metadataDict += ' },\n'; } diff --git a/scripts/types.ts b/scripts/types.ts index 262770da..0b331764 100644 --- a/scripts/types.ts +++ b/scripts/types.ts @@ -16,6 +16,7 @@ export interface AttributeJson { }; alias?: string[]; sdks?: string[]; + changelog?: { version: string; prs?: number[]; description?: string }[]; } export interface NameJson { diff --git a/shared/deprecated_attributes.json b/shared/deprecated_attributes.json index d491fa19..76c15e9e 100644 --- a/shared/deprecated_attributes.json +++ b/shared/deprecated_attributes.json @@ -14,7 +14,16 @@ "_status": null, "replacement": "sentry.environment" }, - "alias": ["sentry.environment"] + "alias": ["sentry.environment"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "fs_error", @@ -30,7 +39,16 @@ "reason": "This attribute is not part of the OpenTelemetry specification and error.type fits much better." }, "example": "ENOENT: no such file or directory", - "sdks": ["javascript-node"] + "sdks": ["javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "method", @@ -46,7 +64,16 @@ "replacement": "http.request.method" }, "alias": ["http.request.method"], - "sdks": ["javascript-browser", "javascript-node"] + "sdks": ["javascript-browser", "javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "release", @@ -61,7 +88,16 @@ "_status": null, "replacement": "sentry.release" }, - "alias": ["sentry.release"] + "alias": ["sentry.release"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "replay_id", @@ -76,7 +112,16 @@ "_status": null, "replacement": "sentry.replay_id" }, - "alias": ["sentry.replay_id"] + "alias": ["sentry.replay_id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "route", @@ -92,7 +137,16 @@ "replacement": "http.route" }, "alias": ["http.route"], - "sdks": ["php-laravel", "javascript-reactnative"] + "sdks": ["php-laravel", "javascript-reactnative"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] }, { "key": "transaction", @@ -107,7 +161,16 @@ "_status": null, "replacement": "sentry.transaction" }, - "alias": ["sentry.transaction"] + "alias": ["sentry.transaction"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "url", @@ -123,7 +186,16 @@ "replacement": "url.full" }, "alias": ["url.full", "http.url"], - "sdks": ["javascript-browser", "javascript-node"] + "sdks": ["javascript-browser", "javascript-node"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.citations", @@ -136,7 +208,17 @@ "example": ["Citation 1", "Citation 2"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.completion_tokens.used", @@ -152,7 +234,20 @@ "deprecation": { "_status": null, "replacement": "gen_ai.usage.output_tokens" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.documents", @@ -165,7 +260,17 @@ "example": ["document1.txt", "document2.pdf"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.finish_reason", @@ -180,7 +285,13 @@ "_status": null, "replacement": "gen_ai.response.finish_reason" }, - "alias": ["gen_ai.response.finish_reasons"] + "alias": ["gen_ai.response.finish_reasons"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] }, { "key": "ai.frequency_penalty", @@ -195,7 +306,17 @@ "_status": null, "replacement": "gen_ai.request.frequency_penalty" }, - "alias": ["gen_ai.request.frequency_penalty"] + "alias": ["gen_ai.request.frequency_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.function_call", @@ -210,7 +331,13 @@ "_status": null, "replacement": "gen_ai.tool.name" }, - "alias": ["gen_ai.tool.name"] + "alias": ["gen_ai.tool.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.generation_id", @@ -225,7 +352,13 @@ "_status": null, "replacement": "gen_ai.response.id" }, - "alias": ["gen_ai.response.id"] + "alias": ["gen_ai.response.id"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] }, { "key": "ai.input_messages", @@ -241,7 +374,16 @@ "deprecation": { "_status": null, "replacement": "gen_ai.request.messages" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [65, 119] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.is_search_required", @@ -254,7 +396,17 @@ "example": false, "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.metadata", @@ -267,7 +419,17 @@ "example": "{\"user_id\": 123, \"session_id\": \"abc123\"}", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] }, { "key": "ai.model.provider", @@ -282,7 +444,17 @@ "_status": null, "replacement": "gen_ai.provider.name" }, - "alias": ["gen_ai.provider.name", "gen_ai.system"] + "alias": ["gen_ai.provider.name", "gen_ai.system"], + "changelog": [ + { + "version": "0.4.0", + "prs": [253] + }, + { + "version": "0.1.0", + "prs": [57, 61, 108, 127] + } + ] }, { "key": "ai.model_id", @@ -298,7 +470,16 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.model" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [57, 61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.pipeline.name", @@ -313,7 +494,13 @@ "_status": null, "replacement": "gen_ai.pipeline.name" }, - "alias": ["gen_ai.pipeline.name"] + "alias": ["gen_ai.pipeline.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [53, 76, 108, 127] + } + ] }, { "key": "ai.preamble", @@ -328,7 +515,17 @@ "_status": null, "replacement": "gen_ai.system_instructions" }, - "alias": ["gen_ai.system_instructions"] + "alias": ["gen_ai.system_instructions"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.presence_penalty", @@ -343,7 +540,17 @@ "_status": null, "replacement": "gen_ai.request.presence_penalty" }, - "alias": ["gen_ai.request.presence_penalty"] + "alias": ["gen_ai.request.presence_penalty"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.prompt_tokens.used", @@ -359,7 +566,20 @@ "deprecation": { "_status": null, "replacement": "gen_ai.usage.input_tokens" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.raw_prompting", @@ -372,7 +592,17 @@ "example": true, "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.response_format", @@ -385,7 +615,17 @@ "example": "json_object", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] }, { "key": "ai.responses", @@ -400,7 +640,16 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.text" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [65, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.search_queries", @@ -413,7 +662,17 @@ "example": ["climate change effects", "renewable energy"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.search_results", @@ -426,7 +685,17 @@ "example": ["search_result_1, search_result_2"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.seed", @@ -441,7 +710,13 @@ "_status": null, "replacement": "gen_ai.request.seed" }, - "alias": ["gen_ai.request.seed"] + "alias": ["gen_ai.request.seed"], + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 57, 61, 108, 127] + } + ] }, { "key": "ai.streaming", @@ -457,7 +732,16 @@ "_status": null, "replacement": "gen_ai.response.streaming" }, - "alias": ["gen_ai.response.streaming"] + "alias": ["gen_ai.response.streaming"], + "changelog": [ + { + "version": "0.1.0", + "prs": [76, 108] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.tags", @@ -470,7 +754,17 @@ "example": "{\"executed_function\": \"add_integers\"}", "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55, 127] + } + ] }, { "key": "ai.temperature", @@ -485,7 +779,17 @@ "_status": null, "replacement": "gen_ai.request.temperature" }, - "alias": ["gen_ai.request.temperature"] + "alias": ["gen_ai.request.temperature"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.texts", @@ -500,7 +804,17 @@ "_status": null, "replacement": "gen_ai.input.messages" }, - "alias": ["gen_ai.input.messages"] + "alias": ["gen_ai.input.messages"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "ai.tool_calls", @@ -514,7 +828,13 @@ "deprecation": { "_status": null, "replacement": "gen_ai.response.tool_calls" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 65] + } + ] }, { "key": "ai.tools", @@ -528,7 +848,13 @@ "deprecation": { "_status": null, "replacement": "gen_ai.request.available_tools" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [55, 65, 127] + } + ] }, { "key": "ai.top_k", @@ -543,7 +869,17 @@ "_status": null, "replacement": "gen_ai.request.top_k" }, - "alias": ["gen_ai.request.top_k"] + "alias": ["gen_ai.request.top_k"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.top_p", @@ -558,7 +894,17 @@ "_status": null, "replacement": "gen_ai.request.top_p" }, - "alias": ["gen_ai.request.top_p"] + "alias": ["gen_ai.request.top_p"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [55, 57, 61, 108] + } + ] }, { "key": "ai.total_cost", @@ -573,7 +919,21 @@ "_status": null, "replacement": "gen_ai.cost.total_tokens" }, - "alias": ["gen_ai.cost.total_tokens"] + "alias": ["gen_ai.cost.total_tokens"], + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [53] + } + ] }, { "key": "ai.total_tokens.used", @@ -589,7 +949,20 @@ "_status": null, "replacement": "gen_ai.usage.total_tokens" }, - "alias": ["gen_ai.usage.total_tokens"] + "alias": ["gen_ai.usage.total_tokens"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [57, 61, 108] + }, + { + "version": "0.0.0" + } + ] }, { "key": "ai.warnings", @@ -602,7 +975,17 @@ "example": ["Token limit exceeded"], "deprecation": { "_status": null - } + }, + "changelog": [ + { + "version": "next", + "prs": [264] + }, + { + "version": "0.1.0", + "prs": [55] + } + ] }, { "key": "code.filepath", @@ -617,7 +1000,16 @@ "_status": null, "replacement": "code.file.path" }, - "alias": ["code.file.path"] + "alias": ["code.file.path"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "code.function", @@ -632,7 +1024,16 @@ "_status": null, "replacement": "code.function.name" }, - "alias": ["code.function.name"] + "alias": ["code.function.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] }, { "key": "code.lineno", @@ -647,7 +1048,20 @@ "_status": null, "replacement": "code.line.number" }, - "alias": ["code.line.number"] + "alias": ["code.line.number"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61, 108] + }, + { + "version": "0.0.0" + } + ] }, { "key": "code.namespace", @@ -662,7 +1076,16 @@ "_status": null, "replacement": "code.function.name", "reason": "code.function.name should include the namespace." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 74] + }, + { + "version": "0.0.0" + } + ] }, { "key": "db.name", @@ -677,7 +1100,16 @@ "_status": null, "replacement": "db.namespace" }, - "alias": ["db.namespace"] + "alias": ["db.namespace"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "db.operation", @@ -692,7 +1124,20 @@ "_status": "normalize", "replacement": "db.operation.name" }, - "alias": ["db.operation.name"] + "alias": ["db.operation.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "db.sql.bindings", @@ -708,7 +1153,16 @@ "reason": "Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter.." }, "example": ["1", "foo"], - "sdks": ["php-laravel"] + "sdks": ["php-laravel"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "db.statement", @@ -723,7 +1177,20 @@ "_status": "normalize", "replacement": "db.query.text" }, - "alias": ["db.query.text"] + "alias": ["db.query.text"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "db.system", @@ -738,7 +1205,20 @@ "_status": "backfill", "replacement": "db.system.name" }, - "alias": ["db.system.name"] + "alias": ["db.system.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [199, 224] + }, + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "gen_ai.prompt", @@ -752,7 +1232,16 @@ "deprecation": { "_status": null, "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" + } + ] }, { "key": "gen_ai.request.available_tools", @@ -767,7 +1256,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.definitions" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 127] + } + ] }, { "key": "gen_ai.request.messages", @@ -782,7 +1281,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.input.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74, 108, 119, 122] + } + ] }, { "key": "gen_ai.response.text", @@ -797,7 +1306,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.output.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] }, { "key": "gen_ai.response.tool_calls", @@ -812,7 +1331,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.output.messages" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] }, { "key": "gen_ai.system", @@ -827,7 +1356,17 @@ "_status": null, "replacement": "gen_ai.provider.name" }, - "alias": ["ai.model.provider", "gen_ai.provider.name"] + "alias": ["ai.model.provider", "gen_ai.provider.name"], + "changelog": [ + { + "version": "0.4.0", + "prs": [253] + }, + { + "version": "0.1.0", + "prs": [57, 127] + } + ] }, { "key": "gen_ai.system.message", @@ -841,7 +1380,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.system_instructions" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [221] + }, + { + "version": "0.1.0", + "prs": [62] + } + ] }, { "key": "gen_ai.tool.input", @@ -856,7 +1405,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.arguments" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] }, { "key": "gen_ai.tool.message", @@ -871,7 +1430,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.result" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [62] + } + ] }, { "key": "gen_ai.tool.output", @@ -886,7 +1455,17 @@ "deprecation": { "_status": null, "replacement": "gen_ai.tool.call.result" - } + }, + "changelog": [ + { + "version": "next", + "prs": [265] + }, + { + "version": "0.1.0", + "prs": [63, 74] + } + ] }, { "key": "gen_ai.usage.completion_tokens", @@ -901,7 +1480,20 @@ "_status": null, "replacement": "gen_ai.usage.output_tokens" }, - "alias": ["ai.completion_tokens.used", "gen_ai.usage.output_tokens"] + "alias": ["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" + } + ] }, { "key": "gen_ai.usage.prompt_tokens", @@ -916,7 +1508,20 @@ "_status": null, "replacement": "gen_ai.usage.input_tokens" }, - "alias": ["ai.prompt_tokens.used", "gen_ai.usage.input_tokens"] + "alias": ["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" + } + ] }, { "key": "http.client_ip", @@ -931,7 +1536,16 @@ "_status": null, "replacement": "client.address" }, - "alias": ["client.address"] + "alias": ["client.address"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 106, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.flavor", @@ -946,7 +1560,16 @@ "_status": null, "replacement": "network.protocol.version" }, - "alias": ["network.protocol.version", "net.protocol.version"] + "alias": ["network.protocol.version", "net.protocol.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.host", @@ -962,7 +1585,16 @@ "replacement": "server.address", "reason": "Deprecated, use one of `server.address` or `client.address`, depending on the usage" }, - "alias": ["server.address", "client.address", "http.server_name", "net.host.name"] + "alias": ["server.address", "client.address", "http.server_name", "net.host.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.method", @@ -977,7 +1609,16 @@ "_status": null, "replacement": "http.request.method" }, - "alias": ["http.request.method"] + "alias": ["http.request.method"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.response_content_length", @@ -992,7 +1633,20 @@ "_status": "backfill", "replacement": "http.response.body.size" }, - "alias": ["http.response.body.size", "http.response.header.content-length"] + "alias": ["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" + } + ] }, { "key": "http.response_transfer_size", @@ -1007,7 +1661,20 @@ "_status": "backfill", "replacement": "http.response.size" }, - "alias": ["http.response.size"] + "alias": ["http.response.size"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.scheme", @@ -1022,7 +1689,16 @@ "_status": null, "replacement": "url.scheme" }, - "alias": ["url.scheme"] + "alias": ["url.scheme"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.server_name", @@ -1037,7 +1713,16 @@ "_status": null, "replacement": "server.address" }, - "alias": ["server.address", "net.host.name", "http.host"] + "alias": ["server.address", "net.host.name", "http.host"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.status_code", @@ -1052,7 +1737,20 @@ "_status": null, "replacement": "http.response.status_code" }, - "alias": ["http.response.status_code"] + "alias": ["http.response.status_code"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.target", @@ -1067,7 +1765,16 @@ "_status": null, "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" + } + ] }, { "key": "http.url", @@ -1082,7 +1789,16 @@ "_status": null, "replacement": "url.full" }, - "alias": ["url.full", "url"] + "alias": ["url.full", "url"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108] + }, + { + "version": "0.0.0" + } + ] }, { "key": "http.user_agent", @@ -1097,7 +1813,16 @@ "_status": null, "replacement": "user_agent.original" }, - "alias": ["user_agent.original"] + "alias": ["user_agent.original"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.host.ip", @@ -1112,7 +1837,16 @@ "_status": null, "replacement": "network.local.address" }, - "alias": ["network.local.address", "net.sock.host.addr"] + "alias": ["network.local.address", "net.sock.host.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.host.name", @@ -1127,7 +1861,16 @@ "_status": null, "replacement": "server.address" }, - "alias": ["server.address", "http.server_name", "http.host"] + "alias": ["server.address", "http.server_name", "http.host"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.host.port", @@ -1142,7 +1885,20 @@ "_status": null, "replacement": "server.port" }, - "alias": ["server.port"] + "alias": ["server.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.peer.ip", @@ -1157,7 +1913,16 @@ "_status": null, "replacement": "network.peer.address" }, - "alias": ["network.peer.address", "net.sock.peer.addr"] + "alias": ["network.peer.address", "net.sock.peer.addr"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.peer.name", @@ -1172,7 +1937,16 @@ "_status": null, "replacement": "server.address", "reason": "Deprecated, use server.address on client spans and client.address on server spans." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.peer.port", @@ -1187,7 +1961,20 @@ "_status": null, "replacement": "server.port", "reason": "Deprecated, use server.port on client spans and client.port on server spans." - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.protocol.name", @@ -1202,7 +1989,16 @@ "_status": null, "replacement": "network.protocol.name" }, - "alias": ["network.protocol.name"] + "alias": ["network.protocol.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.protocol.version", @@ -1217,7 +2013,16 @@ "_status": null, "replacement": "network.protocol.version" }, - "alias": ["network.protocol.version", "http.flavor"] + "alias": ["network.protocol.version", "http.flavor"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.family", @@ -1232,7 +2037,16 @@ "_status": null, "replacement": "network.transport", "reason": "Deprecated, use network.transport and network.type." - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.host.addr", @@ -1247,7 +2061,16 @@ "_status": null, "replacement": "network.local.address" }, - "alias": ["network.local.address", "net.host.ip"] + "alias": ["network.local.address", "net.host.ip"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.host.port", @@ -1262,7 +2085,20 @@ "_status": null, "replacement": "network.local.port" }, - "alias": ["network.local.port"] + "alias": ["network.local.port"], + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.peer.addr", @@ -1277,7 +2113,16 @@ "_status": null, "replacement": "network.peer.address" }, - "alias": ["network.peer.address", "net.peer.ip"] + "alias": ["network.peer.address", "net.peer.ip"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 108, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.peer.name", @@ -1291,7 +2136,16 @@ "deprecation": { "_status": null, "reason": "Deprecated from OTEL, no replacement at this time" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 119, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.sock.peer.port", @@ -1305,7 +2159,20 @@ "deprecation": { "_status": null, "replacement": "network.peer.port" - } + }, + "changelog": [ + { + "version": "0.4.0", + "prs": [228] + }, + { + "version": "0.1.0", + "prs": [61] + }, + { + "version": "0.0.0" + } + ] }, { "key": "net.transport", @@ -1320,7 +2187,16 @@ "_status": null, "replacement": "network.transport" }, - "alias": ["network.transport"] + "alias": ["network.transport"], + "changelog": [ + { + "version": "0.1.0", + "prs": [61, 127] + }, + { + "version": "0.0.0" + } + ] }, { "key": "query.", @@ -1336,7 +2212,13 @@ "replacement": "url.query", "reason": "Instead of sending items individually in query., they should be sent all together with url.query." }, - "example": "query.id='123'" + "example": "query.id='123'", + "changelog": [ + { + "version": "0.1.0", + "prs": [103] + } + ] }, { "key": "resource.deployment.environment", @@ -1350,7 +2232,13 @@ "deprecation": { "_status": "backfill", "replacement": "sentry.environment" - } + }, + "changelog": [ + { + "version": "next", + "prs": [266] + } + ] }, { "key": "resource.deployment.environment.name", @@ -1364,7 +2252,13 @@ "deprecation": { "_status": "backfill", "replacement": "sentry.environment" - } + }, + "changelog": [ + { + "version": "0.3.1", + "prs": [196] + } + ] }, { "key": "sentry.browser.name", @@ -1379,7 +2273,13 @@ "_status": null, "replacement": "browser.name" }, - "alias": ["browser.name"] + "alias": ["browser.name"], + "changelog": [ + { + "version": "0.1.0", + "prs": [139] + } + ] }, { "key": "sentry.browser.version", @@ -1394,7 +2294,13 @@ "_status": null, "replacement": "browser.version" }, - "alias": ["browser.version"] + "alias": ["browser.version"], + "changelog": [ + { + "version": "0.1.0", + "prs": [139] + } + ] }, { "key": "sentry.segment_id", @@ -1409,7 +2315,13 @@ "deprecation": { "_status": null, "replacement": "sentry.segment.id" - } + }, + "changelog": [ + { + "version": "0.1.0", + "prs": [124] + } + ] } ] } diff --git a/test/attributes.test.ts b/test/attributes.test.ts index 2c61dc30..925276b6 100644 --- a/test/attributes.test.ts +++ b/test/attributes.test.ts @@ -6,6 +6,7 @@ import { describe, expect, it } from 'vitest'; import schema from '../schemas/attribute.schema.json'; import type { AttributeJson } from '../scripts/types'; +import { compareVersions } from '../scripts/generate_attribute_changelog'; import { attributeKeyToFileName, fileNameToAttributeKey } from '../scripts/utils'; const traceFolders = path.resolve(__dirname, '../model/attributes'); @@ -136,6 +137,39 @@ describe('attribute json', async () => { expect(content.key !== alias); } }); + + it('should have valid changelog entries', () => { + if (!content.changelog || content.changelog.length === 0) { + return; + } + + for (const entry of content.changelog) { + expect(entry.version).toBeDefined(); + expect(typeof entry.version).toBe('string'); + expect(entry.version.length).toBeGreaterThan(0); + + if (entry.prs !== undefined) { + expect(Array.isArray(entry.prs)).toBe(true); + for (const pr of entry.prs) { + expect(Number.isInteger(pr)).toBe(true); + expect(pr).toBeGreaterThan(0); + } + } + } + }); + + it('should have changelog entries ordered by version (newest first)', () => { + if (!content.changelog || content.changelog.length < 2) { + return; + } + + for (let i = 1; i < content.changelog.length; i++) { + const prev = content.changelog[i - 1]?.version; + const curr = content.changelog[i]?.version; + const cmp = compareVersions(prev, curr); + expect(cmp).toBeGreaterThanOrEqual(0); + } + }); }); } }); diff --git a/test/merge-changelogs.test.ts b/test/merge-changelogs.test.ts new file mode 100644 index 00000000..b1eedccb --- /dev/null +++ b/test/merge-changelogs.test.ts @@ -0,0 +1,184 @@ +import { describe, expect, it } from 'vitest'; +import { type ChangelogEntry, mergeChangelogs } from '../scripts/generate_attribute_changelog'; + +describe('mergeChangelogs', () => { + it('should return generated entries when existing is empty', () => { + const generated: ChangelogEntry[] = [ + { version: '0.2.0', prs: [10] }, + { version: '0.1.0', prs: [5] }, + ]; + const result = mergeChangelogs([], generated); + expect(result).toEqual([ + { version: '0.2.0', prs: [10] }, + { version: '0.1.0', prs: [5] }, + ]); + }); + + it('should preserve manual-only entries not in generated', () => { + const existing: ChangelogEntry[] = [ + { version: '0.3.0', description: 'Manual entry for unreleased work' }, + { version: '0.1.0', prs: [5] }, + ]; + const generated: ChangelogEntry[] = [{ version: '0.1.0', prs: [5] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([ + { version: '0.3.0', description: 'Manual entry for unreleased work' }, + { version: '0.1.0', prs: [5] }, + ]); + }); + + it('should preserve descriptions from existing entries on overlapping versions', () => { + const existing: ChangelogEntry[] = [{ version: '0.2.0', prs: [10], description: 'Added new field' }]; + const generated: ChangelogEntry[] = [{ version: '0.2.0', prs: [10] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([{ version: '0.2.0', prs: [10], description: 'Added new field' }]); + }); + + it('should union PR numbers from both existing and generated', () => { + const existing: ChangelogEntry[] = [{ version: '0.2.0', prs: [10, 15] }]; + const generated: ChangelogEntry[] = [{ version: '0.2.0', prs: [10, 20] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([{ version: '0.2.0', prs: [10, 15, 20] }]); + }); + + it('should sort results newest-first', () => { + const existing: ChangelogEntry[] = [{ version: '0.1.0', prs: [1] }]; + const generated: ChangelogEntry[] = [ + { version: '0.1.0', prs: [1] }, + { version: '0.3.0', prs: [15] }, + { version: '0.2.0', prs: [10] }, + ]; + const result = mergeChangelogs(existing, generated); + expect(result.map((e) => e.version)).toEqual(['0.3.0', '0.2.0', '0.1.0']); + }); + + it('should handle both empty inputs', () => { + const result = mergeChangelogs([], []); + expect(result).toEqual([]); + }); + + it('should return existing entries when generated is empty', () => { + const existing: ChangelogEntry[] = [{ version: '0.1.0', description: 'Manual note' }]; + const result = mergeChangelogs(existing, []); + expect(result).toEqual([{ version: '0.1.0', description: 'Manual note' }]); + }); + + it('should handle entries with no PRs on either side', () => { + const existing: ChangelogEntry[] = [{ version: '0.1.0', description: 'Initial release' }]; + const generated: ChangelogEntry[] = [{ version: '0.1.0' }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([{ version: '0.1.0', description: 'Initial release' }]); + }); + + it('should place "next" entries first when sorting', () => { + const generated: ChangelogEntry[] = [ + { version: 'next', prs: [30] }, + { version: '0.2.0', prs: [20] }, + { version: '0.1.0', prs: [10] }, + ]; + const result = mergeChangelogs([], generated); + expect(result.map((e) => e.version)).toEqual(['next', '0.2.0', '0.1.0']); + }); + + it('should promote existing "next" entry to new version when release happens', () => { + // Previously, there were unreleased changes under "next" + const existing: ChangelogEntry[] = [ + { version: 'next', prs: [25] }, + { version: '0.1.0', prs: [10] }, + ]; + // Now a new version 0.2.0 has been released that covers those commits + // and there are no more unreleased changes + const generated: ChangelogEntry[] = [ + { version: '0.2.0', prs: [25] }, + { version: '0.1.0', prs: [10] }, + ]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([ + { version: '0.2.0', prs: [25] }, + { version: '0.1.0', prs: [10] }, + ]); + }); + + it('should promote "next" and preserve its description when release happens', () => { + const existing: ChangelogEntry[] = [ + { version: 'next', prs: [25], description: 'Added new field' }, + { version: '0.1.0', prs: [10] }, + ]; + const generated: ChangelogEntry[] = [ + { version: '0.2.0', prs: [25] }, + { version: '0.1.0', prs: [10] }, + ]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([ + { version: '0.2.0', prs: [25], description: 'Added new field' }, + { version: '0.1.0', prs: [10] }, + ]); + }); + + it('should not promote "next" if generated still has "next" (no release yet)', () => { + const existing: ChangelogEntry[] = [ + { version: 'next', prs: [25] }, + { version: '0.1.0', prs: [10] }, + ]; + const generated: ChangelogEntry[] = [ + { version: 'next', prs: [25, 30] }, + { version: '0.1.0', prs: [10] }, + ]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([ + { version: 'next', prs: [25, 30] }, + { version: '0.1.0', prs: [10] }, + ]); + }); + + it('should merge PRs between existing and generated "next" entries', () => { + const existing: ChangelogEntry[] = [{ version: 'next', prs: [25] }]; + const generated: ChangelogEntry[] = [{ version: 'next', prs: [25, 30] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([{ version: 'next', prs: [25, 30] }]); + }); + + it('should handle "next" as the only generated entry with no prior tags', () => { + const generated: ChangelogEntry[] = [{ version: 'next', prs: [5] }]; + const result = mergeChangelogs([], generated); + expect(result).toEqual([{ version: 'next', prs: [5] }]); + }); + + it('should drop stale empty "next" entry when generated has no "next"', () => { + const existing: ChangelogEntry[] = [{ version: 'next' }, { version: '0.2.0', prs: [163] }]; + const generated: ChangelogEntry[] = [{ version: '0.2.0', prs: [163] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([{ version: '0.2.0', prs: [163] }]); + }); + + it('should preserve "next" with description even when generated has no "next"', () => { + const existing: ChangelogEntry[] = [ + { version: 'next', description: 'Planned change' }, + { version: '0.2.0', prs: [163] }, + ]; + const generated: ChangelogEntry[] = [{ version: '0.2.0', prs: [163] }]; + const result = mergeChangelogs(existing, generated); + expect(result).toEqual([ + { version: 'next', description: 'Planned change' }, + { version: '0.2.0', prs: [163] }, + ]); + }); + + it('should promote "next" to highest new version and union PRs from generated', () => { + const existing: ChangelogEntry[] = [ + { version: 'next', prs: [25, 26] }, + { version: '0.1.0', prs: [10] }, + ]; + // A release happened and there are additional PRs discovered by git + const generated: ChangelogEntry[] = [ + { version: '0.2.0', prs: [25, 26, 27] }, + { version: '0.1.0', prs: [10] }, + ]; + const result = mergeChangelogs(existing, generated); + // The promoted "next" (now 0.2.0) merges with generated 0.2.0 + expect(result).toEqual([ + { version: '0.2.0', prs: [25, 26, 27] }, + { version: '0.1.0', prs: [10] }, + ]); + }); +});