-
Notifications
You must be signed in to change notification settings - Fork 449
[RFC 0052] Stage 2: Update additional GenAI fields #2532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
|
Documentation changes preview: https://docs-v3-preview.elastic.dev/elastic/ecs/pull/2532/reference/ |
🔍 Preview links for changed docs |
8ece5e6 to
9b177e4
Compare
1b04b05 to
22cdf78
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as stage 2 is a final stage, please update all examples and generate all fields
|
Hi @flash1293 there are a few: Flattened: Nested: |
|
Thanks for the comments all. I've updated the following:
However, when I try to run Also getting a failure in tests OTel reference: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-output-messages |
|
Migrating a slack thought to the issue for posterity. Here are a couple things we should consider before pushing this forward.
|
|
@susan-shu-c you error about not finding As an idea we can just always work against main in otel. There are no things deleted anymore, everything is deprecated. |
|
hi, for now, I have marked the
|
|
@susan-shu-c As expected, one potential issue with nested is that the roles are not included with the content. E.g. Sample Doc
This means without additional complexity, it complicates our ability to detect |
|
@Mikaayenson any suggestions for workaround? |
Without complicated ESQL queries, we may have to develop custom ingest pipelines to concat the role and content fields (especially with messages being variable length). There is another fundamental issue where ESQL doesn't currently support type FWIW, there are open issues tracking the gap, but it's unclear when this will be addressed.
IINM, there are no native ESQL ways to walk the array and keep each message's role paired with the content. ESQL does support type On a different topic, I also think we need to include other fields (e.g. bedrock) or at least used in our prebuilt rules. Examples:
|
|
@AlexanderWert can you get your input regarding the type for complex values such as
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After talking with @trisch-me and @joe-desimone, we need to do two additional things:
- Get input from the ESQL team on their ability to support nested/flattened types
- Get input from the other solutions (observability and search) to weigh in on their use cases.
| - name: system_instructions | ||
| level: extended | ||
| type: flattened |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: Some of the points I brought up in #2532 (comment) will apply to flattened as well.
|
@joe-desimone does it gives any disadvantages to the types in PR? or saying differently - are we good to go with the PR and proposed types? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See some comments on the OTel relation of some of the attributes / fields.
Also, please give us a bit more, time! I'd like to discuss this within the Observability / OTel team, since with this OTel any-typed attributes it's a new use case for our OTel ingest handling.
I'd like us to make sure we pick a proper type for these attributes so we don't run into issues later.
| level: extended | ||
| beta: This field is beta and subject to change. | ||
| otel: | ||
| - relation: related |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is that related? There's an exact match for this in SemConv: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-definitions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It wasn’t released yet when this PR was created, now it can be defined as match. The same for comments below
| level: extended | ||
| beta: This field is beta and subject to change. | ||
| otel: | ||
| - relation: related |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above: why is the relation related instead of match ?
https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-call-arguments
| level: extended | ||
| beta: This field is beta and subject to change. | ||
| otel: | ||
| - relation: related |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why related and not match ?
https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-call-result
|
Nested fields are not supported under Complex attributes types are currently always mapped to flattened in the OTel Collector ES exporter. |
I think we are good for nested or flattened, but in either case we will have a dependency on ES|QL for |


1. What does this PR do?
2. Which ECS fields are affected/introduced?
Changes based on OTel:
3. Why is this change necessary?
4. Have you added/updated documentation?
YES / NO / N/A
5. Have you built ECS and committed any newly generated files?
YES / NO
6. Have you run the ECS validation tests locally?
YES / NO
7. Anything else for the reviewers?
Looking for feedback
[Edit: see comment]
For the fields where it would be more useful to keep the associations and have more cases for searching, I changed the field type to nested, and for those that don't need the associations and probably don't need nested searching, I changed them to flattened.
For most of the fields, they are lists of .json objects, or .json objects. For fields whose content could be very long (input.messages,output.messages), I have proposed that they are theflattenedtype due to costs.via docs for
nestedtype:Though as I am not a subject matter expert on the field types and efficiency, looking for additional feedback or comments.
Commit Message