Skip to content

ESQL: Add description to status and profile (#121783) #127942

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

Merged
merged 1 commit into from
May 19, 2025

Conversation

nik9000
Copy link
Member

@nik9000 nik9000 commented May 8, 2025

This adds a task_description field to profile output and task status. This looks like:

...
  "profile" : {
    "drivers" : [
      {
        "task_description" : "final",
        "start_millis" : 1738768795349,
        "stop_millis" : 1738768795405,
...
        "task_description" : "node_reduce",
        "start_millis" : 1738768795392,
        "stop_millis" : 1738768795406,
...
        "task_description" : "data",
        "start_millis" : 1738768795391,
        "stop_millis" : 1738768795404,
...

Previously you had to look at the signature of the operators in the driver to figure out what the driver is doing. You had to know enough about how ESQL works to guess. Now you can look at this description to see what the server thinks it is doing. No more manual classification.

This will be useful when debugging failures and performance regressions because it is much easier to use jq to group on it:

| jq '.profile[] | group_by(.task_description)[]'

This adds a `task_description` field to `profile` output and task
`status`. This looks like:
```
...
  "profile" : {
    "drivers" : [
      {
        "task_description" : "final",
        "start_millis" : 1738768795349,
        "stop_millis" : 1738768795405,
...
        "task_description" : "node_reduce",
        "start_millis" : 1738768795392,
        "stop_millis" : 1738768795406,
...
        "task_description" : "data",
        "start_millis" : 1738768795391,
        "stop_millis" : 1738768795404,
...
```

Previously you had to look at the signature of the operators in the
driver to figure out what the driver is *doing*. You had to know enough
about how ESQL works to guess. Now you can look at this description to
see what the server *thinks* it is doing. No more manual classification.

This will be useful when debugging failures and performance regressions
because it is much easier to use `jq` to group on it:
```
| jq '.profile[] | group_by(.task_description)[]'
```
@nik9000
Copy link
Member Author

nik9000 commented May 8, 2025

Needs a transport version claimed in main before we merge it.

@nik9000
Copy link
Member Author

nik9000 commented May 9, 2025

Claimed in #127997

@nik9000 nik9000 merged commit 3e88802 into elastic:8.19 May 19, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant