From 5c3297c4b6458bc01f6dfeec059fff288d2bb196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Tarti=C3=A8re?= Date: Fri, 8 May 2026 18:53:18 -1000 Subject: [PATCH 1/3] Fix GenAI numbers datatype According to the ECS conventions, the datatype for integers (numbers) should be `long`: https://www.elastic.co/docs/reference/ecs/ecs-conventions#_datatype_for_integers When GenAI fields where added in #2475, a bunch of `integer` fields where added, but their datatype was not discussed. This introduced some inconsistency, and without a strong reason for preferring `integer` to `long`, breaks the ECS conventions. Update these fields to use the `long` datatype as expected by the ECS conventions. --- schemas/gen_ai.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/schemas/gen_ai.yml b/schemas/gen_ai.yml index 8d7680842..fe1fcc4d0 100644 --- a/schemas/gen_ai.yml +++ b/schemas/gen_ai.yml @@ -68,7 +68,7 @@ otel: - relation: match - name: request.choice.count - type: integer + type: long description: The target number of candidate completions to return. example: 3 level: extended @@ -92,7 +92,7 @@ otel: - relation: match - name: request.max_tokens - type: integer + type: long description: The maximum number of tokens the model generates for a request. example: 100 level: extended @@ -116,7 +116,7 @@ otel: - relation: match - name: request.seed - type: integer + type: long description: Requests with same seed value more likely to return same result. example: 100 level: extended @@ -220,7 +220,7 @@ otel: - relation: match - name: usage.input_tokens - type: integer + type: long description: The number of tokens used in the GenAI input (prompt). example: 100 level: extended @@ -228,7 +228,7 @@ otel: - relation: match - name: usage.output_tokens - type: integer + type: long description: The number of tokens used in the GenAI response (completion). example: 180 level: extended From 45a97360b56e9b39edd63fa97a0e12f2d7399142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Tarti=C3=A8re?= Date: Fri, 8 May 2026 19:10:06 -1000 Subject: [PATCH 2/3] Regenerate artifacts Regenerate artifacts after the last commit to keep them in sync in the repo. --- docs/reference/ecs-gen_ai.md | 10 +++++----- generated/beats/fields.ecs.yml | 10 +++++----- generated/csv/fields.csv | 10 +++++----- generated/ecs/ecs_flat.yml | 10 +++++----- generated/ecs/ecs_nested.yml | 10 +++++----- .../elasticsearch/composable/component/gen_ai.json | 10 +++++----- generated/elasticsearch/legacy/template.json | 10 +++++----- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/reference/ecs-gen_ai.md b/docs/reference/ecs-gen_ai.md index 03fe63eff..77ccb9b2b 100644 --- a/docs/reference/ecs-gen_ai.md +++ b/docs/reference/ecs-gen_ai.md @@ -25,13 +25,13 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr | $$$field-gen-ai-output-messages$$$ [gen_ai.output.messages](#field-gen-ai-output-messages) | _This field is beta and subject to change._ Messages returned by the model where each message represents a specific model response (choice, candidate).

type: flattened

example: `{ "role": "assistant", "parts": [ { "type": "text", "content": "The weather in Paris is currently rainy with a temperature of 57°F." } ], "finish_reason": "stop"}`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.output.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-messages) | extended | | $$$field-gen-ai-output-type$$$ [gen_ai.output.type](#field-gen-ai-output-type) | _This field is beta and subject to change._ Represents the content type requested by the client.

type: keyword

example: `text; json; image`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.output.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-type) | extended | | $$$field-gen-ai-provider-name$$$ [gen_ai.provider.name](#field-gen-ai-provider-name) | _This field is beta and subject to change._ The Generative AI provider as identified by the client or server instrumentation.

type: keyword

example: `openai`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.provider.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-provider-name) | extended | -| $$$field-gen-ai-request-choice-count$$$ [gen_ai.request.choice.count](#field-gen-ai-request-choice-count) | _This field is beta and subject to change._ The target number of candidate completions to return.

type: integer

example: `3`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.choice.count](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-choice-count) | extended | +| $$$field-gen-ai-request-choice-count$$$ [gen_ai.request.choice.count](#field-gen-ai-request-choice-count) | _This field is beta and subject to change._ The target number of candidate completions to return.

type: long

example: `3`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.choice.count](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-choice-count) | extended | | $$$field-gen-ai-request-encoding-formats$$$ [gen_ai.request.encoding_formats](#field-gen-ai-request-encoding-formats) | _This field is beta and subject to change._ The encoding formats requested in an embeddings operation, if specified.

type: nested

example: `["float", "binary"]`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.encoding_formats](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-encoding-formats) | extended | | $$$field-gen-ai-request-frequency-penalty$$$ [gen_ai.request.frequency_penalty](#field-gen-ai-request-frequency-penalty) | _This field is beta and subject to change._ The frequency penalty setting for the GenAI request.

type: double

example: `0.1`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.frequency_penalty](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-frequency-penalty) | extended | -| $$$field-gen-ai-request-max-tokens$$$ [gen_ai.request.max_tokens](#field-gen-ai-request-max-tokens) | _This field is beta and subject to change._ The maximum number of tokens the model generates for a request.

type: integer

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.max_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-max-tokens) | extended | +| $$$field-gen-ai-request-max-tokens$$$ [gen_ai.request.max_tokens](#field-gen-ai-request-max-tokens) | _This field is beta and subject to change._ The maximum number of tokens the model generates for a request.

type: long

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.max_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-max-tokens) | extended | | $$$field-gen-ai-request-model$$$ [gen_ai.request.model](#field-gen-ai-request-model) | _This field is beta and subject to change._ The name of the GenAI model a request is being made to.

type: keyword

example: `gpt-4`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.model](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-model) | extended | | $$$field-gen-ai-request-presence-penalty$$$ [gen_ai.request.presence_penalty](#field-gen-ai-request-presence-penalty) | _This field is beta and subject to change._ The presence penalty setting for the GenAI request.

type: double

example: `0.1`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.presence_penalty](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-presence-penalty) | extended | -| $$$field-gen-ai-request-seed$$$ [gen_ai.request.seed](#field-gen-ai-request-seed) | _This field is beta and subject to change._ Requests with same seed value more likely to return same result.

type: integer

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.seed](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-seed) | extended | +| $$$field-gen-ai-request-seed$$$ [gen_ai.request.seed](#field-gen-ai-request-seed) | _This field is beta and subject to change._ Requests with same seed value more likely to return same result.

type: long

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.seed](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-seed) | extended | | $$$field-gen-ai-request-stop-sequences$$$ [gen_ai.request.stop_sequences](#field-gen-ai-request-stop-sequences) | _This field is beta and subject to change._ List of sequences that the model will use to stop generating further tokens.

type: nested

example: `["forest", "lived"]`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.stop_sequences](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-stop-sequences) | extended | | $$$field-gen-ai-request-temperature$$$ [gen_ai.request.temperature](#field-gen-ai-request-temperature) | _This field is beta and subject to change._ The temperature setting for the GenAI request.

type: double

example: `0.0`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.temperature](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-temperature) | extended | | $$$field-gen-ai-request-top-k$$$ [gen_ai.request.top_k](#field-gen-ai-request-top-k) | _This field is beta and subject to change._ The top_k sampling setting for the GenAI request.

type: double

example: `1.0`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.top_k](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-top-k) | extended | @@ -47,7 +47,7 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr | $$$field-gen-ai-tool-definitions$$$ [gen_ai.tool.definitions](#field-gen-ai-tool-definitions) | _This field is beta and subject to change._ The list of source system tool definitions available to the GenAI agent or model.

type: flattened

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" ] }}`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.definitions](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-definitions) | extended | | $$$field-gen-ai-tool-name$$$ [gen_ai.tool.name](#field-gen-ai-tool-name) | _This field is beta and subject to change._ Name of the tool utilized by the agent.

type: keyword

example: `Flights`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-name) | extended | | $$$field-gen-ai-tool-type$$$ [gen_ai.tool.type](#field-gen-ai-tool-type) | _This field is beta and subject to change._ Type of the tool utilized by the agent

type: keyword

example: `function; extension; datastore`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-type) | extended | -| $$$field-gen-ai-usage-input-tokens$$$ [gen_ai.usage.input_tokens](#field-gen-ai-usage-input-tokens) | _This field is beta and subject to change._ The number of tokens used in the GenAI input (prompt).

type: integer

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.usage.input_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-input-tokens) | extended | -| $$$field-gen-ai-usage-output-tokens$$$ [gen_ai.usage.output_tokens](#field-gen-ai-usage-output-tokens) | _This field is beta and subject to change._ The number of tokens used in the GenAI response (completion).

type: integer

example: `180`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.usage.output_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-output-tokens) | extended | +| $$$field-gen-ai-usage-input-tokens$$$ [gen_ai.usage.input_tokens](#field-gen-ai-usage-input-tokens) | _This field is beta and subject to change._ The number of tokens used in the GenAI input (prompt).

type: long

example: `100`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.usage.input_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-input-tokens) | extended | +| $$$field-gen-ai-usage-output-tokens$$$ [gen_ai.usage.output_tokens](#field-gen-ai-usage-output-tokens) | _This field is beta and subject to change._ The number of tokens used in the GenAI response (completion).

type: long

example: `180`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.usage.output_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-output-tokens) | extended | diff --git a/generated/beats/fields.ecs.yml b/generated/beats/fields.ecs.yml index 258883f25..331eb5c2e 100644 --- a/generated/beats/fields.ecs.yml +++ b/generated/beats/fields.ecs.yml @@ -4179,7 +4179,7 @@ default_field: false - name: request.choice.count level: extended - type: integer + type: long description: The target number of candidate completions to return. example: 3 default_field: false @@ -4197,7 +4197,7 @@ default_field: false - name: request.max_tokens level: extended - type: integer + type: long description: The maximum number of tokens the model generates for a request. example: 100 default_field: false @@ -4216,7 +4216,7 @@ default_field: false - name: request.seed level: extended - type: integer + type: long description: Requests with same seed value more likely to return same result. example: 100 default_field: false @@ -4333,13 +4333,13 @@ default_field: false - name: usage.input_tokens level: extended - type: integer + type: long description: The number of tokens used in the GenAI input (prompt). example: 100 default_field: false - name: usage.output_tokens level: extended - type: integer + type: long description: The number of tokens used in the GenAI response (completion). example: 180 default_field: false diff --git a/generated/csv/fields.csv b/generated/csv/fields.csv index f03affc21..2c31aca11 100644 --- a/generated/csv/fields.csv +++ b/generated/csv/fields.csv @@ -544,13 +544,13 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description }","Messages returned by the model where each message represents a specific model response (choice, candidate)." 9.5.0-dev,true,gen_ai,gen_ai.output.type,keyword,extended,,text; json; image,Represents the content type requested by the client. 9.5.0-dev,true,gen_ai,gen_ai.provider.name,keyword,extended,,openai,The Generative AI provider as identified by the client or server instrumentation. -9.5.0-dev,true,gen_ai,gen_ai.request.choice.count,integer,extended,,3,The target number of candidate completions to return. +9.5.0-dev,true,gen_ai,gen_ai.request.choice.count,long,extended,,3,The target number of candidate completions to return. 9.5.0-dev,true,gen_ai,gen_ai.request.encoding_formats,nested,extended,,"[""float"", ""binary""]","The encoding formats requested in an embeddings operation, if specified." 9.5.0-dev,true,gen_ai,gen_ai.request.frequency_penalty,double,extended,,0.1,The frequency penalty setting for the GenAI request. -9.5.0-dev,true,gen_ai,gen_ai.request.max_tokens,integer,extended,,100,The maximum number of tokens the model generates for a request. +9.5.0-dev,true,gen_ai,gen_ai.request.max_tokens,long,extended,,100,The maximum number of tokens the model generates for a request. 9.5.0-dev,true,gen_ai,gen_ai.request.model,keyword,extended,,gpt-4,The name of the GenAI model a request is being made to. 9.5.0-dev,true,gen_ai,gen_ai.request.presence_penalty,double,extended,,0.1,The presence penalty setting for the GenAI request. -9.5.0-dev,true,gen_ai,gen_ai.request.seed,integer,extended,,100,Requests with same seed value more likely to return same result. +9.5.0-dev,true,gen_ai,gen_ai.request.seed,long,extended,,100,Requests with same seed value more likely to return same result. 9.5.0-dev,true,gen_ai,gen_ai.request.stop_sequences,nested,extended,,"[""forest"", ""lived""]",List of sequences that the model will use to stop generating further tokens. 9.5.0-dev,true,gen_ai,gen_ai.request.temperature,double,extended,,0.0,The temperature setting for the GenAI request. 9.5.0-dev,true,gen_ai,gen_ai.request.top_k,double,extended,,1.0,The top_k sampling setting for the GenAI request. @@ -602,8 +602,8 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description }",The list of source system tool definitions available to the GenAI agent or model. 9.5.0-dev,true,gen_ai,gen_ai.tool.name,keyword,extended,,Flights,Name of the tool utilized by the agent. 9.5.0-dev,true,gen_ai,gen_ai.tool.type,keyword,extended,,function; extension; datastore,Type of the tool utilized by the agent -9.5.0-dev,true,gen_ai,gen_ai.usage.input_tokens,integer,extended,,100,The number of tokens used in the GenAI input (prompt). -9.5.0-dev,true,gen_ai,gen_ai.usage.output_tokens,integer,extended,,180,The number of tokens used in the GenAI response (completion). +9.5.0-dev,true,gen_ai,gen_ai.usage.input_tokens,long,extended,,100,The number of tokens used in the GenAI input (prompt). +9.5.0-dev,true,gen_ai,gen_ai.usage.output_tokens,long,extended,,180,The number of tokens used in the GenAI response (completion). 9.5.0-dev,true,group,group.domain,keyword,extended,,,Name of the directory the group is a member of. 9.5.0-dev,true,group,group.id,keyword,extended,,,Unique identifier for the group on the system/platform. 9.5.0-dev,true,group,group.name,keyword,extended,,,Name of the group. diff --git a/generated/ecs/ecs_flat.yml b/generated/ecs/ecs_flat.yml index b4962710b..eca043835 100644 --- a/generated/ecs/ecs_flat.yml +++ b/generated/ecs/ecs_flat.yml @@ -7378,7 +7378,7 @@ gen_ai.request.choice.count: - relation: match stability: development short: The target number of candidate completions to return. - type: integer + type: long gen_ai.request.encoding_formats: beta: This field is beta and subject to change. dashed_name: gen-ai-request-encoding-formats @@ -7420,7 +7420,7 @@ gen_ai.request.max_tokens: - relation: match stability: development short: The maximum number of tokens the model generates for a request. - type: integer + type: long gen_ai.request.model: beta: This field is beta and subject to change. dashed_name: gen-ai-request-model @@ -7463,7 +7463,7 @@ gen_ai.request.seed: - relation: match stability: development short: Requests with same seed value more likely to return same result. - type: integer + type: long gen_ai.request.stop_sequences: beta: This field is beta and subject to change. dashed_name: gen-ai-request-stop-sequences @@ -7710,7 +7710,7 @@ gen_ai.usage.input_tokens: - relation: match stability: development short: The number of tokens used in the GenAI input (prompt). - type: integer + type: long gen_ai.usage.output_tokens: beta: This field is beta and subject to change. dashed_name: gen-ai-usage-output-tokens @@ -7724,7 +7724,7 @@ gen_ai.usage.output_tokens: - relation: match stability: development short: The number of tokens used in the GenAI response (completion). - type: integer + type: long group.domain: dashed_name: group-domain description: 'Name of the directory the group is a member of. diff --git a/generated/ecs/ecs_nested.yml b/generated/ecs/ecs_nested.yml index f1410a8c9..a17c60c39 100644 --- a/generated/ecs/ecs_nested.yml +++ b/generated/ecs/ecs_nested.yml @@ -8567,7 +8567,7 @@ gen_ai: - relation: match stability: development short: The target number of candidate completions to return. - type: integer + type: long gen_ai.request.encoding_formats: beta: This field is beta and subject to change. dashed_name: gen-ai-request-encoding-formats @@ -8609,7 +8609,7 @@ gen_ai: - relation: match stability: development short: The maximum number of tokens the model generates for a request. - type: integer + type: long gen_ai.request.model: beta: This field is beta and subject to change. dashed_name: gen-ai-request-model @@ -8652,7 +8652,7 @@ gen_ai: - relation: match stability: development short: Requests with same seed value more likely to return same result. - type: integer + type: long gen_ai.request.stop_sequences: beta: This field is beta and subject to change. dashed_name: gen-ai-request-stop-sequences @@ -8901,7 +8901,7 @@ gen_ai: - relation: match stability: development short: The number of tokens used in the GenAI input (prompt). - type: integer + type: long gen_ai.usage.output_tokens: beta: This field is beta and subject to change. dashed_name: gen-ai-usage-output-tokens @@ -8915,7 +8915,7 @@ gen_ai: - relation: match stability: development short: The number of tokens used in the GenAI response (completion). - type: integer + type: long group: 2 name: gen_ai prefix: gen_ai. diff --git a/generated/elasticsearch/composable/component/gen_ai.json b/generated/elasticsearch/composable/component/gen_ai.json index 571c3fc1a..807a64f27 100644 --- a/generated/elasticsearch/composable/component/gen_ai.json +++ b/generated/elasticsearch/composable/component/gen_ai.json @@ -64,7 +64,7 @@ "choice": { "properties": { "count": { - "type": "integer" + "type": "long" } } }, @@ -75,7 +75,7 @@ "type": "double" }, "max_tokens": { - "type": "integer" + "type": "long" }, "model": { "ignore_above": 1024, @@ -85,7 +85,7 @@ "type": "double" }, "seed": { - "type": "integer" + "type": "long" }, "stop_sequences": { "type": "nested" @@ -159,10 +159,10 @@ "usage": { "properties": { "input_tokens": { - "type": "integer" + "type": "long" }, "output_tokens": { - "type": "integer" + "type": "long" } } } diff --git a/generated/elasticsearch/legacy/template.json b/generated/elasticsearch/legacy/template.json index 40e4e8d93..d09ad34b9 100644 --- a/generated/elasticsearch/legacy/template.json +++ b/generated/elasticsearch/legacy/template.json @@ -2308,7 +2308,7 @@ "choice": { "properties": { "count": { - "type": "integer" + "type": "long" } } }, @@ -2319,7 +2319,7 @@ "type": "double" }, "max_tokens": { - "type": "integer" + "type": "long" }, "model": { "ignore_above": 1024, @@ -2329,7 +2329,7 @@ "type": "double" }, "seed": { - "type": "integer" + "type": "long" }, "stop_sequences": { "type": "nested" @@ -2403,10 +2403,10 @@ "usage": { "properties": { "input_tokens": { - "type": "integer" + "type": "long" }, "output_tokens": { - "type": "integer" + "type": "long" } } } From 344fd5098491dc22e5917f46ca8c2ae41a567a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Tarti=C3=A8re?= Date: Fri, 8 May 2026 19:21:03 -1000 Subject: [PATCH 3/3] Add ChangeLog entry as suggested --- CHANGELOG.next.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.next.md b/CHANGELOG.next.md index 9de7f4787..e7a2a7509 100644 --- a/CHANGELOG.next.md +++ b/CHANGELOG.next.md @@ -14,6 +14,8 @@ Thanks, you're awesome :-) --> #### Bugfixes +* Fix GenAI integer fields to use `long` datatype per ECS conventions. #2646 + #### Added #### Improvements