diff --git a/docs/reference/ecs-gen_ai.md b/docs/reference/ecs-gen_ai.md index 23300697b2..de4b9cb95c 100644 --- a/docs/reference/ecs-gen_ai.md +++ b/docs/reference/ecs-gen_ai.md @@ -20,7 +20,9 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr | $$$field-gen-ai-agent-description$$$ [gen_ai.agent.description](#field-gen-ai-agent-description) | _This field is beta and subject to change._ Free-form description of the GenAI agent provided by the application.

type: keyword

example: `Helps with math problems; Generates fiction stories`

![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.agent.description](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-description) | extended | | $$$field-gen-ai-agent-id$$$ [gen_ai.agent.id](#field-gen-ai-agent-id) | _This field is beta and subject to change._ The unique identifier of the GenAI agent.

type: keyword

example: `asst_5j66UpCpwteGg4YSxUnt7lPY`

![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.agent.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-id) | extended | | $$$field-gen-ai-agent-name$$$ [gen_ai.agent.name](#field-gen-ai-agent-name) | _This field is beta and subject to change._ Human-readable name of the GenAI agent provided by the application.

type: keyword

example: `Math Tutor; Fiction Writer`

![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.agent.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-name) | extended | +| $$$field-gen-ai-input-messages$$$ [gen_ai.input.messages](#field-gen-ai-input-messages) | _This field is beta and subject to change._ The chat history provided to the model as an input.

type: nested

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

![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.input.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-input-messages) | extended | | $$$field-gen-ai-operation-name$$$ [gen_ai.operation.name](#field-gen-ai-operation-name) | _This field is beta and subject to change._ The name of the operation being performed.

type: keyword

example: `chat; text_completion; embeddings`

![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.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended | +| $$$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: nested

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-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-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 | @@ -37,8 +39,12 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr | $$$field-gen-ai-response-id$$$ [gen_ai.response.id](#field-gen-ai-response-id) | _This field is beta and subject to change._ The unique identifier for the completion.

type: keyword

example: `chatcmpl-123`

![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.response.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-id) | extended | | $$$field-gen-ai-response-model$$$ [gen_ai.response.model](#field-gen-ai-response-model) | _This field is beta and subject to change._ The name of the model that generated the response.

type: keyword

example: `gpt-4-0613`

![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.response.model](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-model) | extended | | $$$field-gen-ai-system$$$ [gen_ai.system](#field-gen-ai-system) | _This field is beta and subject to change._ The Generative AI product 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) [![equivalent](https://img.shields.io/badge/equivalent-1ba9f5?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-system-instructions$$$ [gen_ai.system_instructions](#field-gen-ai-system-instructions) | _This field is beta and subject to change._ The system message or instructions provided to the GenAI model separately from the chat history.

type: flattened

example: `{ "type": "text", "content": "You are an Agent that greet users, always use greetings tool to respond"}`

![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.system_instructions](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-system-instructions) | extended | | $$$field-gen-ai-token-type$$$ [gen_ai.token.type](#field-gen-ai-token-type) | _This field is beta and subject to change._ The type of token being counted.

type: keyword

example: `input; output`

![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.token.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-token-type) | extended | +| $$$field-gen-ai-tool-call-arguments$$$ [gen_ai.tool.call.arguments](#field-gen-ai-tool-call-arguments) | _This field is beta and subject to change._ Parameters passed to the tool call.

type: flattened

example: `{ "location": "San Francisco?", "date": "2025-10-01"}`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended | | $$$field-gen-ai-tool-call-id$$$ [gen_ai.tool.call.id](#field-gen-ai-tool-call-id) | _This field is beta and subject to change._ The tool call identifier.

type: keyword

example: `call_mszuSIzqtI65i1wAUOE8w5H4`

![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.call.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-call-id) | extended | +| $$$field-gen-ai-tool-call-result$$$ [gen_ai.tool.call.result](#field-gen-ai-tool-call-result) | _This field is beta and subject to change._ The result returned by the tool call (if any and if execution was successful).

type: flattened

example: `{ "temperature_range": { "high": 75, "low": 60 }, "conditions": "sunny"}`

![OTel Badge](https://img.shields.io/badge/OpenTelemetry-4a5ca6?style=flat&logo=opentelemetry) [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended | +| $$$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: nested

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) [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | 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 | diff --git a/docs/reference/ecs-otel-alignment-details.md b/docs/reference/ecs-otel-alignment-details.md index 351f7c6db7..e9578cab0f 100644 --- a/docs/reference/ecs-otel-alignment-details.md +++ b/docs/reference/ecs-otel-alignment-details.md @@ -86,7 +86,9 @@ The following table gives an overview of mappings between individual ECS fields | $$$otel-mapping-for-gen-ai-agent-description$$$ [gen_ai.agent.description](/reference/ecs-gen_ai.md#field-gen-ai-agent-description) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.description](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-description) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-agent-id$$$ [gen_ai.agent.id](/reference/ecs-gen_ai.md#field-gen-ai-agent-id) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-id) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-agent-name$$$ [gen_ai.agent.name](/reference/ecs-gen_ai.md#field-gen-ai-agent-name) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-name) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-input-messages$$$ [gen_ai.input.messages](/reference/ecs-gen_ai.md#field-gen-ai-input-messages) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.input.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-input-messages) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-operation-name$$$ [gen_ai.operation.name](/reference/ecs-gen_ai.md#field-gen-ai-operation-name) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-output-messages$$$ [gen_ai.output.messages](/reference/ecs-gen_ai.md#field-gen-ai-output-messages) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-output-type$$$ [gen_ai.output.type](/reference/ecs-gen_ai.md#field-gen-ai-output-type) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-request-choice-count$$$ [gen_ai.request.choice.count](/reference/ecs-gen_ai.md#field-gen-ai-request-choice-count) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-request-encoding-formats$$$ [gen_ai.request.encoding_formats](/reference/ecs-gen_ai.md#field-gen-ai-request-encoding-formats) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | @@ -103,8 +105,12 @@ The following table gives an overview of mappings between individual ECS fields | $$$otel-mapping-for-gen-ai-response-id$$$ [gen_ai.response.id](/reference/ecs-gen_ai.md#field-gen-ai-response-id) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.response.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-id) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-response-model$$$ [gen_ai.response.model](/reference/ecs-gen_ai.md#field-gen-ai-response-model) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.response.model](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-model) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-system$$$ [gen_ai.system](/reference/ecs-gen_ai.md#field-gen-ai-system) | [![equivalent](https://img.shields.io/badge/equivalent-1ba9f5?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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-system-instructions$$$ [gen_ai.system_instructions](/reference/ecs-gen_ai.md#field-gen-ai-system-instructions) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.system_instructions](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-system-instructions) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-token-type$$$ [gen_ai.token.type](/reference/ecs-gen_ai.md#field-gen-ai-token-type) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.token.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-token-type) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-tool-call-arguments$$$ [gen_ai.tool.call.arguments](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-arguments) | [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-tool-call-id$$$ [gen_ai.tool.call.id](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-id) | [![match](https://img.shields.io/badge/match-93c93e?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.tool.call.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-call-id) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-tool-call-result$$$ [gen_ai.tool.call.result](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-result) | [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | +| $$$otel-mapping-for-gen-ai-tool-definitions$$$ [gen_ai.tool.definitions](/reference/ecs-gen_ai.md#field-gen-ai-tool-definitions) | [![related](https://img.shields.io/badge/related-efc20d?style=flat)](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-tool-name$$$ [gen_ai.tool.name](/reference/ecs-gen_ai.md#field-gen-ai-tool-name) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-tool-type$$$ [gen_ai.tool.type](/reference/ecs-gen_ai.md#field-gen-ai-tool-type) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | | $$$otel-mapping-for-gen-ai-usage-input-tokens$$$ [gen_ai.usage.input_tokens](/reference/ecs-gen_ai.md#field-gen-ai-usage-input-tokens) | [![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) | ![development](https://img.shields.io/badge/✘-fed10c?style=flat) | diff --git a/docs/reference/ecs-otel-alignment-overview.md b/docs/reference/ecs-otel-alignment-overview.md index 83968d8b81..c64c8e6333 100644 --- a/docs/reference/ecs-otel-alignment-overview.md +++ b/docs/reference/ecs-otel-alignment-overview.md @@ -55,7 +55,7 @@ The following table summarizes the alignment status by namespaces between ECS in | Feature Flag | · | [8](https://opentelemetry.io/docs/specs/semconv/attributes-registry/feature-flag) | · | · | · | · | · | · | | | File | [24](/reference/ecs-file.md) | [18](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file) | 11 | 7 | · | · | · | · | · | | GCP Client | · | [14](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gcp) | · | · | · | · | · | · | | -| Gen AI | [26](/reference/ecs-gen_ai.md) | [32](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai) | 25 | 1 | · | · | · | · | · | +| Gen AI | [32](/reference/ecs-gen_ai.md) | [32](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai) | 28 | 1 | 3 | · | · | · | · | | Geo | [11](/reference/ecs-geo.md) | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo) | 1 | 4 | 2 | · | · | · | · | | Go | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/go) | · | · | · | · | · | · | | | GraphQL | · | [3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/graphql) | · | · | · | · | · | · | | diff --git a/experimental/generated/beats/fields.ecs.yml b/experimental/generated/beats/fields.ecs.yml index 3a51a50f2c..8adea495ae 100644 --- a/experimental/generated/beats/fields.ecs.yml +++ b/experimental/generated/beats/fields.ecs.yml @@ -3808,6 +3808,19 @@ description: Human-readable name of the GenAI agent provided by the application. example: Math Tutor; Fiction Writer default_field: false + - name: input.messages + level: extended + type: nested + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\ + text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\ + role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\ + ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\ + ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\ + \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\ + \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\ + ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}" + default_field: false - name: operation.name level: extended type: keyword @@ -3815,6 +3828,16 @@ description: The name of the operation being performed. example: chat; text_completion; embeddings default_field: false + - name: output.messages + level: extended + type: nested + description: Messages returned by the model where each message represents a + specific model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\ + : \"text\",\n \"content\": \"The weather in Paris is currently rainy\ + \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\ + \n}" + default_field: false - name: output.type level: extended type: keyword @@ -3919,6 +3942,14 @@ instrumentation. example: openai default_field: false + - name: system_instructions + level: extended + type: flattened + description: The system message or instructions provided to the GenAI model + separately from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + default_field: false - name: token.type level: extended type: keyword @@ -3926,6 +3957,13 @@ description: The type of token being counted. example: input; output default_field: false + - name: tool.call.arguments + level: extended + type: flattened + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + default_field: false - name: tool.call.id level: extended type: keyword @@ -3933,6 +3971,28 @@ description: The tool call identifier. example: call_mszuSIzqtI65i1wAUOE8w5H4 default_field: false + - name: tool.call.result + level: extended + type: flattened + description: The result returned by the tool call (if any and if execution was + successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\ + \ },\n \"conditions\": \"sunny\"\n}" + default_field: false + - name: tool.definitions + level: extended + type: nested + description: The list of source system tool definitions available to the GenAI + agent or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\ + ,\n \"description\": \"Get the current weather in a given location\",\n \ + \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"location\": {\n \"type\": \"string\",\n \"description\"\ + : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\ + : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\ + ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\ + : [\n \"location\",\n \"unit\"\n ]\n }\n}" + default_field: false - name: tool.name level: extended type: keyword diff --git a/experimental/generated/csv/fields.csv b/experimental/generated/csv/fields.csv index f0116869c8..b3d7698c7e 100644 --- a/experimental/generated/csv/fields.csv +++ b/experimental/generated/csv/fields.csv @@ -463,7 +463,47 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description 9.3.0-dev+exp,false,gen_ai,gen_ai.agent.description,keyword,extended,,Helps with math problems; Generates fiction stories,Free-form description of the GenAI agent provided by the application. 9.3.0-dev+exp,true,gen_ai,gen_ai.agent.id,keyword,extended,,asst_5j66UpCpwteGg4YSxUnt7lPY,The unique identifier of the GenAI agent. 9.3.0-dev+exp,true,gen_ai,gen_ai.agent.name,keyword,extended,,Math Tutor; Fiction Writer,Human-readable name of the GenAI agent provided by the application. +9.3.0-dev+exp,true,gen_ai,gen_ai.input.messages,nested,extended,,"{ + ""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"" + } + ] +}",The chat history provided to the model as an input. 9.3.0-dev+exp,true,gen_ai,gen_ai.operation.name,keyword,extended,,chat; text_completion; embeddings,The name of the operation being performed. +9.3.0-dev+exp,true,gen_ai,gen_ai.output.messages,nested,extended,,"{ + ""role"": ""assistant"", + ""parts"": [ + { + ""type"": ""text"", + ""content"": ""The weather in Paris is currently rainy with a temperature of 57°F."" + } + ], + ""finish_reason"": ""stop"" +}","Messages returned by the model where each message represents a specific model response (choice, candidate)." 9.3.0-dev+exp,true,gen_ai,gen_ai.output.type,keyword,extended,,text; json; image,Represents the content type requested by the client. 9.3.0-dev+exp,true,gen_ai,gen_ai.request.choice.count,integer,extended,,3,The target number of candidate completions to return. 9.3.0-dev+exp,true,gen_ai,gen_ai.request.encoding_formats,nested,extended,,"[""float"", ""binary""]","The encoding formats requested in an embeddings operation, if specified." @@ -480,8 +520,48 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description 9.3.0-dev+exp,true,gen_ai,gen_ai.response.id,keyword,extended,,chatcmpl-123,The unique identifier for the completion. 9.3.0-dev+exp,true,gen_ai,gen_ai.response.model,keyword,extended,,gpt-4-0613,The name of the model that generated the response. 9.3.0-dev+exp,true,gen_ai,gen_ai.system,keyword,extended,,openai,The Generative AI product as identified by the client or server instrumentation. +9.3.0-dev+exp,true,gen_ai,gen_ai.system_instructions,flattened,extended,,"{ + ""type"": ""text"", + ""content"": ""You are an Agent that greet users, always use greetings tool to respond"" +}",The system message or instructions provided to the GenAI model separately from the chat history. 9.3.0-dev+exp,true,gen_ai,gen_ai.token.type,keyword,extended,,input; output,The type of token being counted. +9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.arguments,flattened,extended,,"{ + ""location"": ""San Francisco?"", + ""date"": ""2025-10-01"" +}",Parameters passed to the tool call. 9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.id,keyword,extended,,call_mszuSIzqtI65i1wAUOE8w5H4,The tool call identifier. +9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.result,flattened,extended,,"{ + ""temperature_range"": { + ""high"": 75, + ""low"": 60 + }, + ""conditions"": ""sunny"" +}",The result returned by the tool call (if any and if execution was successful). +9.3.0-dev+exp,true,gen_ai,gen_ai.tool.definitions,nested,extended,,"{ + ""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"" + ] + } +}",The list of source system tool definitions available to the GenAI agent or model. 9.3.0-dev+exp,true,gen_ai,gen_ai.tool.name,keyword,extended,,Flights,Name of the tool utilized by the agent. 9.3.0-dev+exp,true,gen_ai,gen_ai.tool.type,keyword,extended,,function; extension; datastore,Type of the tool utilized by the agent 9.3.0-dev+exp,true,gen_ai,gen_ai.usage.input_tokens,integer,extended,,100,The number of tokens used in the GenAI input (prompt). diff --git a/experimental/generated/ecs/ecs_flat.yml b/experimental/generated/ecs/ecs_flat.yml index 82935b7df5..3de8ab87be 100644 --- a/experimental/generated/ecs/ecs_flat.yml +++ b/experimental/generated/ecs/ecs_flat.yml @@ -6551,6 +6551,27 @@ gen_ai.agent.name: stability: development short: Human-readable name of the GenAI agent provided by the application. type: keyword +gen_ai.input.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-input-messages + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"text\"\ + ,\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"role\": \"\ + assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\",\n \"\ + id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\",\n \ + \ \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n ]\n\ + }, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\": \"tool_call_response\"\ + ,\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"result\": \"rainy,\ + \ 57°F\"\n }\n ]\n}" + flat_name: gen_ai.input.messages + level: extended + name: input.messages + normalize: [] + otel: + - relation: match + stability: development + short: The chat history provided to the model as an input. + type: nested gen_ai.operation.name: beta: This field is beta and subject to change. dashed_name: gen-ai-operation-name @@ -6566,6 +6587,24 @@ gen_ai.operation.name: stability: development short: The name of the operation being performed. type: keyword +gen_ai.output.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-output-messages + description: Messages returned by the model where each message represents a specific + model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\":\ + \ \"text\",\n \"content\": \"The weather in Paris is currently rainy with\ + \ a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\n}" + flat_name: gen_ai.output.messages + level: extended + name: output.messages + normalize: [] + otel: + - relation: match + stability: development + short: Messages returned by the model where each message represents a specific model + response (choice, candidate). + type: nested gen_ai.output.type: beta: This field is beta and subject to change. dashed_name: gen-ai-output-type @@ -6799,6 +6838,23 @@ gen_ai.system: stability: development short: The Generative AI product as identified by the client or server instrumentation. type: keyword +gen_ai.system_instructions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-system-instructions + description: The system message or instructions provided to the GenAI model separately + from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + flat_name: gen_ai.system_instructions + level: extended + name: system_instructions + normalize: [] + otel: + - relation: match + stability: development + short: The system message or instructions provided to the GenAI model separately + from the chat history. + type: flattened gen_ai.token.type: beta: This field is beta and subject to change. dashed_name: gen-ai-token-type @@ -6814,6 +6870,22 @@ gen_ai.token.type: stability: development short: The type of token being counted. type: keyword +gen_ai.tool.call.arguments: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-arguments + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + flat_name: gen_ai.tool.call.arguments + level: extended + name: tool.call.arguments + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: Parameters passed to the tool call. + type: flattened gen_ai.tool.call.id: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-call-id @@ -6829,6 +6901,46 @@ gen_ai.tool.call.id: stability: development short: The tool call identifier. type: keyword +gen_ai.tool.call.result: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-result + description: The result returned by the tool call (if any and if execution was successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n },\n\ + \ \"conditions\": \"sunny\"\n}" + flat_name: gen_ai.tool.call.result + level: extended + name: tool.call.result + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The result returned by the tool call (if any and if execution was successful). + type: flattened +gen_ai.tool.definitions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-definitions + description: The list of source system tool definitions available to the GenAI agent + or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\",\n \ + \ \"description\": \"Get the current weather in a given location\",\n \"parameters\"\ + : {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n\ + \ \"type\": \"string\",\n \"description\": \"The city and state,\ + \ e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"\ + string\",\n \"enum\": [\n \"celsius\",\n \"fahrenheit\"\ + \n ]\n }\n },\n \"required\": [\n \"location\",\n \ + \ \"unit\"\n ]\n }\n}" + flat_name: gen_ai.tool.definitions + level: extended + name: tool.definitions + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The list of source system tool definitions available to the GenAI agent or + model. + type: nested gen_ai.tool.name: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-name diff --git a/experimental/generated/ecs/ecs_nested.yml b/experimental/generated/ecs/ecs_nested.yml index e9f9f1a261..0dffbd4c3b 100644 --- a/experimental/generated/ecs/ecs_nested.yml +++ b/experimental/generated/ecs/ecs_nested.yml @@ -7714,6 +7714,27 @@ gen_ai: stability: development short: Human-readable name of the GenAI agent provided by the application. type: keyword + gen_ai.input.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-input-messages + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\ + text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\ + role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\ + ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\ + ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\ + \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\ + \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\ + ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}" + flat_name: gen_ai.input.messages + level: extended + name: input.messages + normalize: [] + otel: + - relation: match + stability: development + short: The chat history provided to the model as an input. + type: nested gen_ai.operation.name: beta: This field is beta and subject to change. dashed_name: gen-ai-operation-name @@ -7729,6 +7750,25 @@ gen_ai: stability: development short: The name of the operation being performed. type: keyword + gen_ai.output.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-output-messages + description: Messages returned by the model where each message represents a + specific model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\ + : \"text\",\n \"content\": \"The weather in Paris is currently rainy\ + \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\ + \n}" + flat_name: gen_ai.output.messages + level: extended + name: output.messages + normalize: [] + otel: + - relation: match + stability: development + short: Messages returned by the model where each message represents a specific + model response (choice, candidate). + type: nested gen_ai.output.type: beta: This field is beta and subject to change. dashed_name: gen-ai-output-type @@ -7964,6 +8004,23 @@ gen_ai: stability: development short: The Generative AI product as identified by the client or server instrumentation. type: keyword + gen_ai.system_instructions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-system-instructions + description: The system message or instructions provided to the GenAI model + separately from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + flat_name: gen_ai.system_instructions + level: extended + name: system_instructions + normalize: [] + otel: + - relation: match + stability: development + short: The system message or instructions provided to the GenAI model separately + from the chat history. + type: flattened gen_ai.token.type: beta: This field is beta and subject to change. dashed_name: gen-ai-token-type @@ -7979,6 +8036,22 @@ gen_ai: stability: development short: The type of token being counted. type: keyword + gen_ai.tool.call.arguments: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-arguments + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + flat_name: gen_ai.tool.call.arguments + level: extended + name: tool.call.arguments + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: Parameters passed to the tool call. + type: flattened gen_ai.tool.call.id: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-call-id @@ -7994,6 +8067,47 @@ gen_ai: stability: development short: The tool call identifier. type: keyword + gen_ai.tool.call.result: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-result + description: The result returned by the tool call (if any and if execution was + successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\ + \ },\n \"conditions\": \"sunny\"\n}" + flat_name: gen_ai.tool.call.result + level: extended + name: tool.call.result + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The result returned by the tool call (if any and if execution was successful). + type: flattened + gen_ai.tool.definitions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-definitions + description: The list of source system tool definitions available to the GenAI + agent or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\ + ,\n \"description\": \"Get the current weather in a given location\",\n \ + \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"location\": {\n \"type\": \"string\",\n \"description\"\ + : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\ + : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\ + ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\ + : [\n \"location\",\n \"unit\"\n ]\n }\n}" + flat_name: gen_ai.tool.definitions + level: extended + name: tool.definitions + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The list of source system tool definitions available to the GenAI agent + or model. + type: nested gen_ai.tool.name: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-name diff --git a/experimental/generated/elasticsearch/composable/component/gen_ai.json b/experimental/generated/elasticsearch/composable/component/gen_ai.json index 769bf2ba63..9f32e2f9ff 100644 --- a/experimental/generated/elasticsearch/composable/component/gen_ai.json +++ b/experimental/generated/elasticsearch/composable/component/gen_ai.json @@ -25,6 +25,13 @@ } } }, + "input": { + "properties": { + "messages": { + "type": "nested" + } + } + }, "operation": { "properties": { "name": { @@ -35,6 +42,9 @@ }, "output": { "properties": { + "messages": { + "type": "nested" + }, "type": { "ignore_above": 1024, "type": "keyword" @@ -102,6 +112,9 @@ "ignore_above": 1024, "type": "keyword" }, + "system_instructions": { + "type": "flattened" + }, "token": { "properties": { "type": { @@ -114,12 +127,21 @@ "properties": { "call": { "properties": { + "arguments": { + "type": "flattened" + }, "id": { "ignore_above": 1024, "type": "keyword" + }, + "result": { + "type": "flattened" } } }, + "definitions": { + "type": "nested" + }, "name": { "ignore_above": 1024, "type": "keyword" diff --git a/experimental/generated/elasticsearch/legacy/template.json b/experimental/generated/elasticsearch/legacy/template.json index 4b5250eb7c..21aedf58cb 100644 --- a/experimental/generated/elasticsearch/legacy/template.json +++ b/experimental/generated/elasticsearch/legacy/template.json @@ -2131,6 +2131,13 @@ } } }, + "input": { + "properties": { + "messages": { + "type": "nested" + } + } + }, "operation": { "properties": { "name": { @@ -2141,6 +2148,9 @@ }, "output": { "properties": { + "messages": { + "type": "nested" + }, "type": { "ignore_above": 1024, "type": "keyword" @@ -2208,6 +2218,9 @@ "ignore_above": 1024, "type": "keyword" }, + "system_instructions": { + "type": "flattened" + }, "token": { "properties": { "type": { @@ -2220,12 +2233,21 @@ "properties": { "call": { "properties": { + "arguments": { + "type": "flattened" + }, "id": { "ignore_above": 1024, "type": "keyword" + }, + "result": { + "type": "flattened" } } }, + "definitions": { + "type": "nested" + }, "name": { "ignore_above": 1024, "type": "keyword" diff --git a/generated/beats/fields.ecs.yml b/generated/beats/fields.ecs.yml index 4f18299a56..c7a5695911 100644 --- a/generated/beats/fields.ecs.yml +++ b/generated/beats/fields.ecs.yml @@ -3758,6 +3758,19 @@ description: Human-readable name of the GenAI agent provided by the application. example: Math Tutor; Fiction Writer default_field: false + - name: input.messages + level: extended + type: nested + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\ + text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\ + role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\ + ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\ + ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\ + \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\ + \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\ + ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}" + default_field: false - name: operation.name level: extended type: keyword @@ -3765,6 +3778,16 @@ description: The name of the operation being performed. example: chat; text_completion; embeddings default_field: false + - name: output.messages + level: extended + type: nested + description: Messages returned by the model where each message represents a + specific model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\ + : \"text\",\n \"content\": \"The weather in Paris is currently rainy\ + \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\ + \n}" + default_field: false - name: output.type level: extended type: keyword @@ -3869,6 +3892,14 @@ instrumentation. example: openai default_field: false + - name: system_instructions + level: extended + type: flattened + description: The system message or instructions provided to the GenAI model + separately from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + default_field: false - name: token.type level: extended type: keyword @@ -3876,6 +3907,13 @@ description: The type of token being counted. example: input; output default_field: false + - name: tool.call.arguments + level: extended + type: flattened + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + default_field: false - name: tool.call.id level: extended type: keyword @@ -3883,6 +3921,28 @@ description: The tool call identifier. example: call_mszuSIzqtI65i1wAUOE8w5H4 default_field: false + - name: tool.call.result + level: extended + type: flattened + description: The result returned by the tool call (if any and if execution was + successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\ + \ },\n \"conditions\": \"sunny\"\n}" + default_field: false + - name: tool.definitions + level: extended + type: nested + description: The list of source system tool definitions available to the GenAI + agent or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\ + ,\n \"description\": \"Get the current weather in a given location\",\n \ + \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"location\": {\n \"type\": \"string\",\n \"description\"\ + : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\ + : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\ + ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\ + : [\n \"location\",\n \"unit\"\n ]\n }\n}" + default_field: false - name: tool.name level: extended type: keyword diff --git a/generated/csv/fields.csv b/generated/csv/fields.csv index efafe871d7..3c39053e39 100644 --- a/generated/csv/fields.csv +++ b/generated/csv/fields.csv @@ -456,7 +456,47 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description 9.3.0-dev,false,gen_ai,gen_ai.agent.description,keyword,extended,,Helps with math problems; Generates fiction stories,Free-form description of the GenAI agent provided by the application. 9.3.0-dev,true,gen_ai,gen_ai.agent.id,keyword,extended,,asst_5j66UpCpwteGg4YSxUnt7lPY,The unique identifier of the GenAI agent. 9.3.0-dev,true,gen_ai,gen_ai.agent.name,keyword,extended,,Math Tutor; Fiction Writer,Human-readable name of the GenAI agent provided by the application. +9.3.0-dev,true,gen_ai,gen_ai.input.messages,nested,extended,,"{ + ""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"" + } + ] +}",The chat history provided to the model as an input. 9.3.0-dev,true,gen_ai,gen_ai.operation.name,keyword,extended,,chat; text_completion; embeddings,The name of the operation being performed. +9.3.0-dev,true,gen_ai,gen_ai.output.messages,nested,extended,,"{ + ""role"": ""assistant"", + ""parts"": [ + { + ""type"": ""text"", + ""content"": ""The weather in Paris is currently rainy with a temperature of 57°F."" + } + ], + ""finish_reason"": ""stop"" +}","Messages returned by the model where each message represents a specific model response (choice, candidate)." 9.3.0-dev,true,gen_ai,gen_ai.output.type,keyword,extended,,text; json; image,Represents the content type requested by the client. 9.3.0-dev,true,gen_ai,gen_ai.request.choice.count,integer,extended,,3,The target number of candidate completions to return. 9.3.0-dev,true,gen_ai,gen_ai.request.encoding_formats,nested,extended,,"[""float"", ""binary""]","The encoding formats requested in an embeddings operation, if specified." @@ -473,8 +513,48 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description 9.3.0-dev,true,gen_ai,gen_ai.response.id,keyword,extended,,chatcmpl-123,The unique identifier for the completion. 9.3.0-dev,true,gen_ai,gen_ai.response.model,keyword,extended,,gpt-4-0613,The name of the model that generated the response. 9.3.0-dev,true,gen_ai,gen_ai.system,keyword,extended,,openai,The Generative AI product as identified by the client or server instrumentation. +9.3.0-dev,true,gen_ai,gen_ai.system_instructions,flattened,extended,,"{ + ""type"": ""text"", + ""content"": ""You are an Agent that greet users, always use greetings tool to respond"" +}",The system message or instructions provided to the GenAI model separately from the chat history. 9.3.0-dev,true,gen_ai,gen_ai.token.type,keyword,extended,,input; output,The type of token being counted. +9.3.0-dev,true,gen_ai,gen_ai.tool.call.arguments,flattened,extended,,"{ + ""location"": ""San Francisco?"", + ""date"": ""2025-10-01"" +}",Parameters passed to the tool call. 9.3.0-dev,true,gen_ai,gen_ai.tool.call.id,keyword,extended,,call_mszuSIzqtI65i1wAUOE8w5H4,The tool call identifier. +9.3.0-dev,true,gen_ai,gen_ai.tool.call.result,flattened,extended,,"{ + ""temperature_range"": { + ""high"": 75, + ""low"": 60 + }, + ""conditions"": ""sunny"" +}",The result returned by the tool call (if any and if execution was successful). +9.3.0-dev,true,gen_ai,gen_ai.tool.definitions,nested,extended,,"{ + ""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"" + ] + } +}",The list of source system tool definitions available to the GenAI agent or model. 9.3.0-dev,true,gen_ai,gen_ai.tool.name,keyword,extended,,Flights,Name of the tool utilized by the agent. 9.3.0-dev,true,gen_ai,gen_ai.tool.type,keyword,extended,,function; extension; datastore,Type of the tool utilized by the agent 9.3.0-dev,true,gen_ai,gen_ai.usage.input_tokens,integer,extended,,100,The number of tokens used in the GenAI input (prompt). diff --git a/generated/ecs/ecs_flat.yml b/generated/ecs/ecs_flat.yml index 8336eaac97..f2af89d5fb 100644 --- a/generated/ecs/ecs_flat.yml +++ b/generated/ecs/ecs_flat.yml @@ -6482,6 +6482,27 @@ gen_ai.agent.name: stability: development short: Human-readable name of the GenAI agent provided by the application. type: keyword +gen_ai.input.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-input-messages + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"text\"\ + ,\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"role\": \"\ + assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\",\n \"\ + id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\",\n \ + \ \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n ]\n\ + }, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\": \"tool_call_response\"\ + ,\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"result\": \"rainy,\ + \ 57°F\"\n }\n ]\n}" + flat_name: gen_ai.input.messages + level: extended + name: input.messages + normalize: [] + otel: + - relation: match + stability: development + short: The chat history provided to the model as an input. + type: nested gen_ai.operation.name: beta: This field is beta and subject to change. dashed_name: gen-ai-operation-name @@ -6497,6 +6518,24 @@ gen_ai.operation.name: stability: development short: The name of the operation being performed. type: keyword +gen_ai.output.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-output-messages + description: Messages returned by the model where each message represents a specific + model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\":\ + \ \"text\",\n \"content\": \"The weather in Paris is currently rainy with\ + \ a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\n}" + flat_name: gen_ai.output.messages + level: extended + name: output.messages + normalize: [] + otel: + - relation: match + stability: development + short: Messages returned by the model where each message represents a specific model + response (choice, candidate). + type: nested gen_ai.output.type: beta: This field is beta and subject to change. dashed_name: gen-ai-output-type @@ -6730,6 +6769,23 @@ gen_ai.system: stability: development short: The Generative AI product as identified by the client or server instrumentation. type: keyword +gen_ai.system_instructions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-system-instructions + description: The system message or instructions provided to the GenAI model separately + from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + flat_name: gen_ai.system_instructions + level: extended + name: system_instructions + normalize: [] + otel: + - relation: match + stability: development + short: The system message or instructions provided to the GenAI model separately + from the chat history. + type: flattened gen_ai.token.type: beta: This field is beta and subject to change. dashed_name: gen-ai-token-type @@ -6745,6 +6801,22 @@ gen_ai.token.type: stability: development short: The type of token being counted. type: keyword +gen_ai.tool.call.arguments: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-arguments + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + flat_name: gen_ai.tool.call.arguments + level: extended + name: tool.call.arguments + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: Parameters passed to the tool call. + type: flattened gen_ai.tool.call.id: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-call-id @@ -6760,6 +6832,46 @@ gen_ai.tool.call.id: stability: development short: The tool call identifier. type: keyword +gen_ai.tool.call.result: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-result + description: The result returned by the tool call (if any and if execution was successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n },\n\ + \ \"conditions\": \"sunny\"\n}" + flat_name: gen_ai.tool.call.result + level: extended + name: tool.call.result + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The result returned by the tool call (if any and if execution was successful). + type: flattened +gen_ai.tool.definitions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-definitions + description: The list of source system tool definitions available to the GenAI agent + or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\",\n \ + \ \"description\": \"Get the current weather in a given location\",\n \"parameters\"\ + : {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n\ + \ \"type\": \"string\",\n \"description\": \"The city and state,\ + \ e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"\ + string\",\n \"enum\": [\n \"celsius\",\n \"fahrenheit\"\ + \n ]\n }\n },\n \"required\": [\n \"location\",\n \ + \ \"unit\"\n ]\n }\n}" + flat_name: gen_ai.tool.definitions + level: extended + name: tool.definitions + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The list of source system tool definitions available to the GenAI agent or + model. + type: nested gen_ai.tool.name: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-name diff --git a/generated/ecs/ecs_nested.yml b/generated/ecs/ecs_nested.yml index af8b28777f..15a1ad4b48 100644 --- a/generated/ecs/ecs_nested.yml +++ b/generated/ecs/ecs_nested.yml @@ -7634,6 +7634,27 @@ gen_ai: stability: development short: Human-readable name of the GenAI agent provided by the application. type: keyword + gen_ai.input.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-input-messages + description: The chat history provided to the model as an input. + example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\ + text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\ + role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\ + ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\ + ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\ + \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\ + \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\ + ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}" + flat_name: gen_ai.input.messages + level: extended + name: input.messages + normalize: [] + otel: + - relation: match + stability: development + short: The chat history provided to the model as an input. + type: nested gen_ai.operation.name: beta: This field is beta and subject to change. dashed_name: gen-ai-operation-name @@ -7649,6 +7670,25 @@ gen_ai: stability: development short: The name of the operation being performed. type: keyword + gen_ai.output.messages: + beta: This field is beta and subject to change. + dashed_name: gen-ai-output-messages + description: Messages returned by the model where each message represents a + specific model response (choice, candidate). + example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\ + : \"text\",\n \"content\": \"The weather in Paris is currently rainy\ + \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\ + \n}" + flat_name: gen_ai.output.messages + level: extended + name: output.messages + normalize: [] + otel: + - relation: match + stability: development + short: Messages returned by the model where each message represents a specific + model response (choice, candidate). + type: nested gen_ai.output.type: beta: This field is beta and subject to change. dashed_name: gen-ai-output-type @@ -7884,6 +7924,23 @@ gen_ai: stability: development short: The Generative AI product as identified by the client or server instrumentation. type: keyword + gen_ai.system_instructions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-system-instructions + description: The system message or instructions provided to the GenAI model + separately from the chat history. + example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\ + \ users, always use greetings tool to respond\"\n}" + flat_name: gen_ai.system_instructions + level: extended + name: system_instructions + normalize: [] + otel: + - relation: match + stability: development + short: The system message or instructions provided to the GenAI model separately + from the chat history. + type: flattened gen_ai.token.type: beta: This field is beta and subject to change. dashed_name: gen-ai-token-type @@ -7899,6 +7956,22 @@ gen_ai: stability: development short: The type of token being counted. type: keyword + gen_ai.tool.call.arguments: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-arguments + description: Parameters passed to the tool call. + example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\ + \n}" + flat_name: gen_ai.tool.call.arguments + level: extended + name: tool.call.arguments + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: Parameters passed to the tool call. + type: flattened gen_ai.tool.call.id: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-call-id @@ -7914,6 +7987,47 @@ gen_ai: stability: development short: The tool call identifier. type: keyword + gen_ai.tool.call.result: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-call-result + description: The result returned by the tool call (if any and if execution was + successful). + example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\ + \ },\n \"conditions\": \"sunny\"\n}" + flat_name: gen_ai.tool.call.result + level: extended + name: tool.call.result + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The result returned by the tool call (if any and if execution was successful). + type: flattened + gen_ai.tool.definitions: + beta: This field is beta and subject to change. + dashed_name: gen-ai-tool-definitions + description: The list of source system tool definitions available to the GenAI + agent or model. + example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\ + ,\n \"description\": \"Get the current weather in a given location\",\n \ + \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"location\": {\n \"type\": \"string\",\n \"description\"\ + : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\ + : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\ + ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\ + : [\n \"location\",\n \"unit\"\n ]\n }\n}" + flat_name: gen_ai.tool.definitions + level: extended + name: tool.definitions + normalize: [] + otel: + - attribute: gen_ai.operation.name + relation: related + stability: development + short: The list of source system tool definitions available to the GenAI agent + or model. + type: nested gen_ai.tool.name: beta: This field is beta and subject to change. dashed_name: gen-ai-tool-name diff --git a/generated/elasticsearch/composable/component/gen_ai.json b/generated/elasticsearch/composable/component/gen_ai.json index de78621d19..b1ce0aee83 100644 --- a/generated/elasticsearch/composable/component/gen_ai.json +++ b/generated/elasticsearch/composable/component/gen_ai.json @@ -25,6 +25,13 @@ } } }, + "input": { + "properties": { + "messages": { + "type": "nested" + } + } + }, "operation": { "properties": { "name": { @@ -35,6 +42,9 @@ }, "output": { "properties": { + "messages": { + "type": "nested" + }, "type": { "ignore_above": 1024, "type": "keyword" @@ -102,6 +112,9 @@ "ignore_above": 1024, "type": "keyword" }, + "system_instructions": { + "type": "flattened" + }, "token": { "properties": { "type": { @@ -114,12 +127,21 @@ "properties": { "call": { "properties": { + "arguments": { + "type": "flattened" + }, "id": { "ignore_above": 1024, "type": "keyword" + }, + "result": { + "type": "flattened" } } }, + "definitions": { + "type": "nested" + }, "name": { "ignore_above": 1024, "type": "keyword" diff --git a/generated/elasticsearch/legacy/template.json b/generated/elasticsearch/legacy/template.json index 511251bfc9..e05047e074 100644 --- a/generated/elasticsearch/legacy/template.json +++ b/generated/elasticsearch/legacy/template.json @@ -2089,6 +2089,13 @@ } } }, + "input": { + "properties": { + "messages": { + "type": "nested" + } + } + }, "operation": { "properties": { "name": { @@ -2099,6 +2106,9 @@ }, "output": { "properties": { + "messages": { + "type": "nested" + }, "type": { "ignore_above": 1024, "type": "keyword" @@ -2166,6 +2176,9 @@ "ignore_above": 1024, "type": "keyword" }, + "system_instructions": { + "type": "flattened" + }, "token": { "properties": { "type": { @@ -2178,12 +2191,21 @@ "properties": { "call": { "properties": { + "arguments": { + "type": "flattened" + }, "id": { "ignore_above": 1024, "type": "keyword" + }, + "result": { + "type": "flattened" } } }, + "definitions": { + "type": "nested" + }, "name": { "ignore_above": 1024, "type": "keyword" diff --git a/rfcs/text/0052-gen_ai-additional-fields.md b/rfcs/text/0052-gen_ai-additional-fields.md index 5569bd35a8..42377df9eb 100644 --- a/rfcs/text/0052-gen_ai-additional-fields.md +++ b/rfcs/text/0052-gen_ai-additional-fields.md @@ -31,12 +31,12 @@ Stage 1: Describe at a high level how this change affects fields. Include new or Field | Type | Description /Usage -- | -- | -- -gen_ai.system_instructions | (Looking for feedback) flattened | The system message or instructions provided to the GenAI model separately from the chat history. -gen_ai.input.messages | (Looking for feedback) flattened | The chat history provided to the model as an input. -gen_ai.output.messages | (Looking for feedback) flattened | Messages returned by the model where each message represents a specific model response (choice, candidate). -gen_ai.tool.definitions | (Looking for feedback) nested | (Part of invoke_agent span) The list of source system tool definitions available to the GenAI agent or model. -gen_ai.tool.call.arguments | (Looking for feedback) nested | (Part of OTel execute_tool span) Parameters passed to the tool call. -gen_ai.tool.call.result | (Looking for feedback) nested | (Part of OTel execute_tool span) The result returned by the tool call (if any and if execution was successful). +gen_ai.system_instructions | flattened | The system message or instructions provided to the GenAI model separately from the chat history. +gen_ai.input.messages | nested | The chat history provided to the model as an input. +gen_ai.output.messages | nested | Messages returned by the model where each message represents a specific model response (choice, candidate). +gen_ai.tool.definitions | nested | (Part of invoke_agent span) The list of source system tool definitions available to the GenAI agent or model. +gen_ai.tool.call.arguments | flattened | (Part of OTel execute_tool span) Parameters passed to the tool call. +gen_ai.tool.call.result | flattened | (Part of OTel execute_tool span) The result returned by the tool call (if any and if execution was successful). Changes based on OTel https://github.com/open-telemetry/semantic-conventions/pull/2179/files @@ -62,97 +62,73 @@ Example usage: { "gen_ai": { "system_instructions": { - [ - { - "type": "text", - "content": "You are a assistant for frequent travelers." - }, - { - "type": "text", - "content": "Your mission is to assist travelers with their queries about locations around the world." - } + [ + { + "type": "text", + "content": "You are a assistant for frequent travelers." + }, + { + "type": "text", + "content": "Your mission is to assist travelers with their queries about locations around the world." + } ] }, "input": { "messages": { [ - { - "role": "user", - "parts": [ { - "type": "text", - "content": "Weather in Paris?" - } - ] - }, - { - "role": "assistant", - "parts": [ + "role": "user", + "parts": [ + { + "type": "text", + "content": "Weather in Paris?" + } + ] + }, { - "type": "tool_call", - "id": "call_VSPygqKTWdrhaFErNvMV18Yl", - "name": "get_weather", - "arguments": { - "location": "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" + "role": "tool", + "parts": [ + { + "type": "tool_call_response", + "id": " call_VSPygqKTWdrhaFErNvMV18Yl", + "result": "rainy, 57°F" + } + ] } - ] - } ] } }, "output" :{ "messages": { [ - { - "role": "assistant", - "parts": [ { - "type": "text", - "content": "The weather in Paris is currently rainy with a temperature of 57°F." - } - ], - "finish_reason": "stop" - } - ] - }, - - // Below needs to be updated, but keeping in this commit for illustration purposes. - "assistant": { - "message": { - "content": "To carry a 5lb package, you would need a drone with sufficient payload capacity. Drones designed for heavy lifting often fall in the industrial or commercial category. Consider drones with a payload capacity of at least 6-7lbs to ensure safe transport and account for additional factors like battery and stability.", - "role": "assistant", - "tool_calls": [ - { - "function": "getDroneSpecifications", - "arguments": {"payloadWeight": 5}, - "name": "getDroneSpecifications", - "id": "toolCall1", - "type": "function_call", - }, - { - "function": "retrieveAvailableDronesDocument", - "arguments": {"documentType": "availableDrones", "payloadRequirement": 5}, - "name": "retrieveAvailableDronesDocument", - "id": "toolCall2", - "type": "function_call", + "role": "assistant", + "parts": [ + { + "type": "text", + "content": "The weather in Paris is currently rainy with a temperature of 57°F." + } + ], + "finish_reason": "stop" } - ], - } - }, + ] + }, + } } } -} ``` @@ -226,8 +202,4 @@ e.g.: * Stage 0: https://github.com/elastic/ecs/pull/2519 - - +* Stage 1: https://github.com/elastic/ecs/pull/2525 diff --git a/rfcs/text/0052/gen_ai.yaml b/rfcs/text/0052/gen_ai.yaml new file mode 100644 index 0000000000..923af8f6c8 --- /dev/null +++ b/rfcs/text/0052/gen_ai.yaml @@ -0,0 +1,136 @@ +--- +- name: gen_ai + fields: + - name: system_instructions + type: flattened + description: The system message or instructions provided to the GenAI model separately from the chat history. + example: > + { + "type": "text", + "content": "You are an Agent that greet users, always use greetings tool to respond" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: input.messages + type: nested + description: The chat history provided to the model as an input. + 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" + } + ] + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: output.messages + type: nested + description: Messages returned by the model where each message represents a specific model response (choice, candidate). + example: > + { + "role": "assistant", + "parts": [ + { + "type": "text", + "content": "The weather in Paris is currently rainy with a temperature of 57°F." + } + ], + "finish_reason": "stop" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: tool.definitions + type: nested + description: The list of source system tool definitions available to the GenAI agent or model. + 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" + ] + } + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name + - name: tool.call.arguments + type: flattened + description: Parameters passed to the tool call. + example: > + { + "location": "San Francisco?", + "date": "2025-10-01" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name + - name: tool.call.result + type: flattened + description: The result returned by the tool call (if any and if execution was successful). + example: > + { + "temperature_range": { + "high": 75, + "low": 60 + }, + "conditions": "sunny" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name diff --git a/schemas/gen_ai.yml b/schemas/gen_ai.yml index c7dd9d5df3..ec471b45f2 100644 --- a/schemas/gen_ai.yml +++ b/schemas/gen_ai.yml @@ -236,3 +236,136 @@ beta: This field is beta and subject to change. otel: - relation: match + - name: system_instructions + type: flattened + description: The system message or instructions provided to the GenAI model separately from the chat history. + example: > + { + "type": "text", + "content": "You are an Agent that greet users, always use greetings tool to respond" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: input.messages + type: nested + description: The chat history provided to the model as an input. + 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" + } + ] + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: output.messages + type: nested + description: Messages returned by the model where each message represents a specific model response (choice, candidate). + example: > + { + "role": "assistant", + "parts": [ + { + "type": "text", + "content": "The weather in Paris is currently rainy with a temperature of 57°F." + } + ], + "finish_reason": "stop" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: match + - name: tool.definitions + type: nested + description: The list of source system tool definitions available to the GenAI agent or model. + 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" + ] + } + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name + - name: tool.call.arguments + type: flattened + description: Parameters passed to the tool call. + example: > + { + "location": "San Francisco?", + "date": "2025-10-01" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name + - name: tool.call.result + type: flattened + description: The result returned by the tool call (if any and if execution was successful). + example: > + { + "temperature_range": { + "high": 75, + "low": 60 + }, + "conditions": "sunny" + } + level: extended + beta: This field is beta and subject to change. + otel: + - relation: related + attribute: gen_ai.operation.name