Skip to content

Comments

Remaining work attributes table#224723

Merged
MiriamAparicio merged 16 commits intoelastic:mainfrom
MiriamAparicio:221928-remaining-work-attributes-table
Jun 26, 2025
Merged

Remaining work attributes table#224723
MiriamAparicio merged 16 commits intoelastic:mainfrom
MiriamAparicio:221928-remaining-work-attributes-table

Conversation

@MiriamAparicio
Copy link
Contributor

@MiriamAparicio MiriamAparicio commented Jun 20, 2025

Closes #221928

Add ES|QL logic

Screen.Recording.2025-06-24.at.12.15.17.mov

Empty message for accordion

  • Empty message when there are no attributes fields at all
  • For now we kept the accordion closed when fields count is zero, with an empty message inside, waiting for UI/UX team to review this implementation
Screenshot 2025-06-24 at 12 27 18

Simplify attribute display names

  • the field name should not show the full field name. The tooltip will show both, simplify and full name, this is part of the implementation FieldName component from platform
Screenshot 2025-06-24 at 12 19 48 Screenshot 2025-06-24 at 12 20 07

Filtering controls use full field name

Screen.Recording.2025-06-24.at.12.23.23.mov

Add explanatory tooltip for attribute namespaces

Screenshot 2025-06-24 at 12 24 33 Screenshot 2025-06-24 at 12 24 51 Screenshot 2025-06-24 at 12 24 57

Test:

How to generate OTel data

How to test

  • Make sure your solution view is Observability
  • update your kibana.yml
discover.experimental.enabledProfiles:
   - observability-root-profile-with-attributes-tab
   #  if you want to test it with the additional profiles add the following to your `kibana.yaml` 
   - observability-traces-data-source-profile
   - observability-traces-transaction-document-profile
   - observability-traces-span-document-profile

@MiriamAparicio MiriamAparicio added release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-infra_services - DEPRECATED DEPRECATED - Use Team:obs-presentation. backport:version Backport to applied version labels v9.1.0 v8.19.0 labels Jun 24, 2025
@MiriamAparicio MiriamAparicio marked this pull request as ready for review June 24, 2025 11:31
@MiriamAparicio MiriamAparicio requested a review from a team as a code owner June 24, 2025 11:31
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-infra_services-team (Team:obs-ux-infra_services)

@MiriamAparicio MiriamAparicio force-pushed the 221928-remaining-work-attributes-table branch from e38a45a to 6e7c325 Compare June 24, 2025 12:09
@MiriamAparicio MiriamAparicio requested a review from a team June 24, 2025 12:14
@MiriamAparicio MiriamAparicio force-pushed the 221928-remaining-work-attributes-table branch from 3b39533 to 13ed0bc Compare June 24, 2025 14:44
@kpatticha kpatticha self-requested a review June 24, 2025 17:08
Copy link
Member

@jennypavlova jennypavlova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, well done 👏
NIT: One small visual thing: The icon and the tooltip position are off by some pixels:
image

<EuiFlexItem grow={false}>
<EuiFlexGroup
responsive={false}
wrap={true}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit

Suggested change
wrap={true}
wrap

Comment on lines 180 to 184
const noFields =
groupedFields.attributesFields.length === 0 &&
groupedFields.resourceAttributesFields.length === 0 &&
groupedFields.scopeAttributesFields.length === 0;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: to avoid repeating groupedFields, we can do:

Suggested change
const noFields =
groupedFields.attributesFields.length === 0 &&
groupedFields.resourceAttributesFields.length === 0 &&
groupedFields.scopeAttributesFields.length === 0;
const {attributesFields, resourceAttributesFields, scopeAttributesFields} = groupedFields
const noFields =
attributesFields.length === 0 &&
resourceAttributesFields.length === 0 &&
scopeAttributesFields.length === 0;

Maybe define them on top, and use them everywhere

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it can be simplified a bit more

 const noFields = Object.values(groupedFields).every(
    (arr) => Array.isArray(arr) && arr.length === 0
  );

Comment on lines 40 to 44
const fieldDisplayName = displayName
? displayName
: fieldMapping && fieldMapping.displayName
? fieldMapping.displayName
: fieldName;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit we can simplify this to avoid chaining conditions, something like:

Suggested change
const fieldDisplayName = displayName
? displayName
: fieldMapping && fieldMapping.displayName
? fieldMapping.displayName
: fieldName;
const dipslayNameFromFieldMapping = fieldMapping?.displayName ? fieldMapping.displayName : fieldName;
const fieldDisplayName = displayName ?? dipslayNameFromFieldMapping;

@jennypavlova
Copy link
Member

I managed to see an error by adding 2 ES|QL conditions using the filters:
image
It is also visible in the other tabs so not a blocker for the PR, but it would be nice to fix that (I am using oblt lite cluster and it is not easy to reproduce this error 🫠 )

Copy link
Contributor

@davismcphee davismcphee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code-only review. Data Discovery changes look good for the most part, but I noticed an issue related to field display names in the Table tab.

@MiriamAparicio
Copy link
Contributor Author

@jennypavlova

One small visual thing: The icon and the tooltip position are off by some pixels:

Yeah, I added a bit of a margin, so it looks as in the fields column, but I can get rid of it
Screenshot 2025-06-25 at 09 36 59
Screenshot 2025-06-25 at 09 37 07

@jennypavlova
Copy link
Member

jennypavlova commented Jun 25, 2025

Yeah, I added a bit of a margin, so it looks as in the fields column, but I can get rid of it

The margin is OK, I think that wasn't clear. I meant the tooltip arrow should move up a bit so it points to the ? , it is barely visible and just 1-2 pixels off, so all good 😉
image

(or the ? should be centered but that would not match the other discover ?, it is OK to leave it 😅 )

@MiriamAparicio
Copy link
Contributor Author

@jennypavlova No idea what was wrong with the position of the tooltip, I just changed position and now looks better
image

[allFields, shouldShowFieldHandler]
);

const groupedFields = useMemo(() => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we move the field grouping functionality into a separate utility file to keep things cleaner and add some unit tests?


if (lowerFieldName.startsWith('resource.attributes.')) {
resourceAttributesFields.push(fieldName);
resourceAttributesFields.push({
Copy link
Contributor

@kpatticha kpatticha Jun 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s some repetition in this approach.
Can we improve it a bit? We could use a mapping something like or something similar

const fieldTypeMap = [
  { prefix: 'resource.attributes.', target: resourceAttributesFields },
  { prefix: 'scope.attributes.', target: scopeAttributesFields },
  { prefix: 'attributes.', target: attributesFields },
];

for (const { prefix, target } of fieldTypeMap) {
  if (lowerFieldName.startsWith(prefix)) {
    target.push({
      name: fieldName,
      displayName: getAttributeDisplayName(fieldName),
    });
  }
}
```
wdyt?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A forEach() will work better here

return acc;
}

if (isEsqlMode && areNullValuesHidden && flattened[fieldName] == null) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in lines 85-95 all return acc. Can we combine them?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, I think in this case is better to use a forEach() I will modify and extract the function in to a separate file + unit tests

* License v3.0 only", or the "Server Side Public License, v 1".
*/

export function getAttributeDisplayName(fieldName: string): string {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add some tests for this function?

@MiriamAparicio
Copy link
Contributor Author

Found a bug, I'm fixing now, related with the search, when filtering by 'attr' in Table tab it shows the fields but when changing to Attributes tab the search term is kept, but the tables are shown empty, although the accordion shows the count of fields. In this case I think the search should take into account the whole, not simplified name and show the fields in the table
Screenshot 2025-06-25 at 14 30 31
Screenshot 2025-06-25 at 14 30 38

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
unifiedDocViewer 336 339 +3

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
unifiedDocViewer 219.5KB 222.8KB +3.3KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
unifiedDocViewer 12.9KB 12.8KB -18.0B

History

Copy link
Contributor

@davismcphee davismcphee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed the custom label issue I was seeing is resolved now, Data Discovery changes LGTM 👍

Copy link
Contributor

@kpatticha kpatticha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick fixes, great work 💯

@MiriamAparicio MiriamAparicio merged commit 75ba373 into elastic:main Jun 26, 2025
10 checks passed
@MiriamAparicio MiriamAparicio deleted the 221928-remaining-work-attributes-table branch June 26, 2025 12:13
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.19

https://github.com/elastic/kibana/actions/runs/15901517587

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Jun 26, 2025
Closes elastic#221928

#### Add ES|QL logic

https://github.com/user-attachments/assets/d29f939a-7b82-4873-92d4-8210c2202339

#### Empty message for accordion

- Empty message when there are no attributes fields at all
- For now we kept the accordion closed when fields count is zero, with
an empty message inside, waiting for UI/UX team to review this
implementation

<img width="524" alt="Screenshot 2025-06-24 at 12 27 18"
src="https://github.com/user-attachments/assets/4015ed6a-5977-486d-93e6-d8b5714af9fd"
/>

#### Simplify attribute display names

- the field name should not show the full field name. The tooltip will
show both, simplify and full name, this is part of the implementation
`FieldName` component from platform

<img width="624" alt="Screenshot 2025-06-24 at 12 19 48"
src="https://github.com/user-attachments/assets/634b4ef0-0934-4721-9217-334286b6464a"
/>

<img width="624" alt="Screenshot 2025-06-24 at 12 20 07"
src="https://github.com/user-attachments/assets/bdc6de9c-784f-4c78-bf18-1f37b645429d"
/>

#### Filtering controls use full field name

https://github.com/user-attachments/assets/7858d803-271e-4913-9aae-385dd7bc9e25

#### Add explanatory tooltip for attribute namespaces

<img width="525" alt="Screenshot 2025-06-24 at 12 24 33"
src="https://github.com/user-attachments/assets/a76b1419-c1d9-4e46-a289-a819b7533b18"
/>

<img width="525" alt="Screenshot 2025-06-24 at 12 24 51"
src="https://github.com/user-attachments/assets/e48b19a3-85a8-4a13-b527-3a4494aef2af"
/>

<img width="525" alt="Screenshot 2025-06-24 at 12 24 57"
src="https://github.com/user-attachments/assets/50501672-4d75-43ce-b61b-646108b4b14a"
/>

### Test:
#### How to generate OTel data
- Follow
https://github.com/smith/elastic-stack-docker-compose?tab=readme-ov-file#elastic-stack-docker-compose

#### How to test
- Make sure your solution view is Observability
- update your `kibana.yml`

```
discover.experimental.enabledProfiles:
   - observability-root-profile-with-attributes-tab
   #  if you want to test it with the additional profiles add the following to your `kibana.yaml`
   - observability-traces-data-source-profile
   - observability-traces-transaction-document-profile
   - observability-traces-span-document-profile
```

(cherry picked from commit 75ba373)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.19

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Jun 26, 2025
# Backport

This will backport the following commits from `main` to `8.19`:
- [Remaining work attributes table
(#224723)](#224723)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"Miriam","email":"31922082+MiriamAparicio@users.noreply.github.com"},"sourceCommit":{"committedDate":"2025-06-26T12:13:27Z","message":"Remaining
work attributes table (#224723)\n\nCloses
https://github.com/elastic/kibana/issues/221928\n\n#### Add ES|QL
logic\n\n\nhttps://github.com/user-attachments/assets/d29f939a-7b82-4873-92d4-8210c2202339\n\n####
Empty message for accordion\n\n- Empty message when there are no
attributes fields at all\n- For now we kept the accordion closed when
fields count is zero, with\nan empty message inside, waiting for UI/UX
team to review this\nimplementation\n\n<img width=\"524\"
alt=\"Screenshot 2025-06-24 at 12 27
18\"\nsrc=\"https://github.com/user-attachments/assets/4015ed6a-5977-486d-93e6-d8b5714af9fd\"\n/>\n\n####
Simplify attribute display names\n\n- the field name should not show the
full field name. The tooltip will\nshow both, simplify and full name,
this is part of the implementation\n`FieldName` component from
platform\n\n<img width=\"624\" alt=\"Screenshot 2025-06-24 at 12 19
48\"\nsrc=\"https://github.com/user-attachments/assets/634b4ef0-0934-4721-9217-334286b6464a\"\n/>\n\n<img
width=\"624\" alt=\"Screenshot 2025-06-24 at 12 20
07\"\nsrc=\"https://github.com/user-attachments/assets/bdc6de9c-784f-4c78-bf18-1f37b645429d\"\n/>\n\n####
Filtering controls use full field
name\n\n\nhttps://github.com/user-attachments/assets/7858d803-271e-4913-9aae-385dd7bc9e25\n\n####
Add explanatory tooltip for attribute namespaces\n\n<img width=\"525\"
alt=\"Screenshot 2025-06-24 at 12 24
33\"\nsrc=\"https://github.com/user-attachments/assets/a76b1419-c1d9-4e46-a289-a819b7533b18\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
51\"\nsrc=\"https://github.com/user-attachments/assets/e48b19a3-85a8-4a13-b527-3a4494aef2af\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
57\"\nsrc=\"https://github.com/user-attachments/assets/50501672-4d75-43ce-b61b-646108b4b14a\"\n/>\n\n\n###
Test:\n#### How to generate OTel data\n-
Follow\nhttps://github.com/smith/elastic-stack-docker-compose?tab=readme-ov-file#elastic-stack-docker-compose\n\n####
How to test\n- Make sure your solution view is Observability\n- update
your `kibana.yml` \n\n```\ndiscover.experimental.enabledProfiles:\n -
observability-root-profile-with-attributes-tab\n # if you want to test
it with the additional profiles add the following to your `kibana.yaml`
\n - observability-traces-data-source-profile\n -
observability-traces-transaction-document-profile\n -
observability-traces-span-document-profile\n```","sha":"75ba373fbdd6a2ee52da6a1e9604c6ff7036b704","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:obs-ux-infra_services","backport:version","v9.1.0","v8.19.0"],"title":"Remaining
work attributes
table","number":224723,"url":"https://github.com/elastic/kibana/pull/224723","mergeCommit":{"message":"Remaining
work attributes table (#224723)\n\nCloses
https://github.com/elastic/kibana/issues/221928\n\n#### Add ES|QL
logic\n\n\nhttps://github.com/user-attachments/assets/d29f939a-7b82-4873-92d4-8210c2202339\n\n####
Empty message for accordion\n\n- Empty message when there are no
attributes fields at all\n- For now we kept the accordion closed when
fields count is zero, with\nan empty message inside, waiting for UI/UX
team to review this\nimplementation\n\n<img width=\"524\"
alt=\"Screenshot 2025-06-24 at 12 27
18\"\nsrc=\"https://github.com/user-attachments/assets/4015ed6a-5977-486d-93e6-d8b5714af9fd\"\n/>\n\n####
Simplify attribute display names\n\n- the field name should not show the
full field name. The tooltip will\nshow both, simplify and full name,
this is part of the implementation\n`FieldName` component from
platform\n\n<img width=\"624\" alt=\"Screenshot 2025-06-24 at 12 19
48\"\nsrc=\"https://github.com/user-attachments/assets/634b4ef0-0934-4721-9217-334286b6464a\"\n/>\n\n<img
width=\"624\" alt=\"Screenshot 2025-06-24 at 12 20
07\"\nsrc=\"https://github.com/user-attachments/assets/bdc6de9c-784f-4c78-bf18-1f37b645429d\"\n/>\n\n####
Filtering controls use full field
name\n\n\nhttps://github.com/user-attachments/assets/7858d803-271e-4913-9aae-385dd7bc9e25\n\n####
Add explanatory tooltip for attribute namespaces\n\n<img width=\"525\"
alt=\"Screenshot 2025-06-24 at 12 24
33\"\nsrc=\"https://github.com/user-attachments/assets/a76b1419-c1d9-4e46-a289-a819b7533b18\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
51\"\nsrc=\"https://github.com/user-attachments/assets/e48b19a3-85a8-4a13-b527-3a4494aef2af\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
57\"\nsrc=\"https://github.com/user-attachments/assets/50501672-4d75-43ce-b61b-646108b4b14a\"\n/>\n\n\n###
Test:\n#### How to generate OTel data\n-
Follow\nhttps://github.com/smith/elastic-stack-docker-compose?tab=readme-ov-file#elastic-stack-docker-compose\n\n####
How to test\n- Make sure your solution view is Observability\n- update
your `kibana.yml` \n\n```\ndiscover.experimental.enabledProfiles:\n -
observability-root-profile-with-attributes-tab\n # if you want to test
it with the additional profiles add the following to your `kibana.yaml`
\n - observability-traces-data-source-profile\n -
observability-traces-transaction-document-profile\n -
observability-traces-span-document-profile\n```","sha":"75ba373fbdd6a2ee52da6a1e9604c6ff7036b704"}},"sourceBranch":"main","suggestedTargetBranches":["8.19"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/224723","number":224723,"mergeCommit":{"message":"Remaining
work attributes table (#224723)\n\nCloses
https://github.com/elastic/kibana/issues/221928\n\n#### Add ES|QL
logic\n\n\nhttps://github.com/user-attachments/assets/d29f939a-7b82-4873-92d4-8210c2202339\n\n####
Empty message for accordion\n\n- Empty message when there are no
attributes fields at all\n- For now we kept the accordion closed when
fields count is zero, with\nan empty message inside, waiting for UI/UX
team to review this\nimplementation\n\n<img width=\"524\"
alt=\"Screenshot 2025-06-24 at 12 27
18\"\nsrc=\"https://github.com/user-attachments/assets/4015ed6a-5977-486d-93e6-d8b5714af9fd\"\n/>\n\n####
Simplify attribute display names\n\n- the field name should not show the
full field name. The tooltip will\nshow both, simplify and full name,
this is part of the implementation\n`FieldName` component from
platform\n\n<img width=\"624\" alt=\"Screenshot 2025-06-24 at 12 19
48\"\nsrc=\"https://github.com/user-attachments/assets/634b4ef0-0934-4721-9217-334286b6464a\"\n/>\n\n<img
width=\"624\" alt=\"Screenshot 2025-06-24 at 12 20
07\"\nsrc=\"https://github.com/user-attachments/assets/bdc6de9c-784f-4c78-bf18-1f37b645429d\"\n/>\n\n####
Filtering controls use full field
name\n\n\nhttps://github.com/user-attachments/assets/7858d803-271e-4913-9aae-385dd7bc9e25\n\n####
Add explanatory tooltip for attribute namespaces\n\n<img width=\"525\"
alt=\"Screenshot 2025-06-24 at 12 24
33\"\nsrc=\"https://github.com/user-attachments/assets/a76b1419-c1d9-4e46-a289-a819b7533b18\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
51\"\nsrc=\"https://github.com/user-attachments/assets/e48b19a3-85a8-4a13-b527-3a4494aef2af\"\n/>\n\n<img
width=\"525\" alt=\"Screenshot 2025-06-24 at 12 24
57\"\nsrc=\"https://github.com/user-attachments/assets/50501672-4d75-43ce-b61b-646108b4b14a\"\n/>\n\n\n###
Test:\n#### How to generate OTel data\n-
Follow\nhttps://github.com/smith/elastic-stack-docker-compose?tab=readme-ov-file#elastic-stack-docker-compose\n\n####
How to test\n- Make sure your solution view is Observability\n- update
your `kibana.yml` \n\n```\ndiscover.experimental.enabledProfiles:\n -
observability-root-profile-with-attributes-tab\n # if you want to test
it with the additional profiles add the following to your `kibana.yaml`
\n - observability-traces-data-source-profile\n -
observability-traces-transaction-document-profile\n -
observability-traces-span-document-profile\n```","sha":"75ba373fbdd6a2ee52da6a1e9604c6ff7036b704"}},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Miriam <31922082+MiriamAparicio@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-infra_services - DEPRECATED DEPRECATED - Use Team:obs-presentation. v8.19.0 v9.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Discover][OTel] Remaining Work for Attributes Tab

6 participants