Skip to content

Conversation

@planga82
Copy link
Contributor

@planga82 planga82 commented Sep 8, 2019

What changes were proposed in this pull request?

Some of the columns of JDBC/ODBC server tab in Web UI are hard to understand.
We have documented it at SPARK-28373 but I think it is better to have some tooltips in the SQL statistics table to explain the columns
image
The columns with new tooltips are finish time, close time, execution time and duration
image
Improvements in UIUtils can be used in other tables in WebUI to add tooltips

Why are the changes needed?

It is interesting to improve the undestanding of the WebUI

Does this PR introduce any user-facing change?

No

How was this patch tested?

Unit tests are added and manual test.

@wangyum
Copy link
Member

wangyum commented Sep 8, 2019

ok to test

@maropu
Copy link
Member

maropu commented Sep 8, 2019

hi, @wangyum. You need a permission for the Spark jenkins to say "ok to test". So, you need to ask @shaneknapp for the permission, first.

@maropu
Copy link
Member

maropu commented Sep 8, 2019

ok to test

@SparkQA
Copy link

SparkQA commented Sep 8, 2019

Test build #110318 has finished for PR 25723 at commit c4a209f.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@wangyum
Copy link
Member

wangyum commented Sep 9, 2019

Thank you @maropu I should have this permission: #25694

@maropu
Copy link
Member

maropu commented Sep 9, 2019

Oh, I see

@SparkQA
Copy link

SparkQA commented Sep 9, 2019

Test build #110370 has finished for PR 25723 at commit 681b534.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

"Finish time of the execution, before fetching the results"

val THRIFT_SERVER_CLOSE_TIME =
"Close time of the process after fetching the results"
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe process -> statement or operation?

val table = if (numStatement > 0) {
val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time",
"Execution Time", "Duration", "Statement", "State", "Detail")
val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME),
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we add the same to ThriftServerSessionPage?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I thought it was the same code to generate this two pages. I forgot test it. Thanks!!

@SparkQA
Copy link

SparkQA commented Sep 10, 2019

Test build #110438 has finished for PR 25723 at commit 2d278d0.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

"""

val THRIFT_SERVER_FINISH_TIME =
"Finish time of the execution, before fetching the results"
Copy link
Contributor

Choose a reason for hiding this comment

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

I think "Execution finish time" would sound better than "Finish time of the execution"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm Sorry, spanish common error when we write in english :-)

"Finish time of the execution, before fetching the results"

val THRIFT_SERVER_CLOSE_TIME =
"Close time of the operation after fetching the results"
Copy link
Contributor

Choose a reason for hiding this comment

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

Likewise, "Operation close time"

"Execution Time", "Duration", "Statement", "State", "Detail")
val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME),
Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION),
Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None)
Copy link
Contributor

Choose a reason for hiding this comment

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

Or, if not inside UIUtils.listingTable, maybe add assert(headerRow.length == tooltips.length) here and in ThriftServerSessionPage?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've been thinking about it, yes, it's a good idea, in that way we don't break the homogeneous way of treating the parameters at UIUtils.listingTable and we ensure it is going to be less problems if new headers are added

@SparkQA
Copy link

SparkQA commented Sep 10, 2019

Test build #110440 has finished for PR 25723 at commit 793ef92.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Sep 11, 2019

Test build #110441 has finished for PR 25723 at commit 344fd6f.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

Copy link
Contributor

@juliuszsompolski juliuszsompolski left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks.

@SparkQA
Copy link

SparkQA commented Sep 11, 2019

Test build #110482 has finished for PR 25723 at commit 6474935.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@planga82
Copy link
Contributor Author

Thanks @juliuszsompolski for your work.

@planga82
Copy link
Contributor Author

the tests has failed but in two tests that don't have any relation with my last changes. Someone knows if it is normal?

@juliuszsompolski
Copy link
Contributor

retest this please

@SparkQA
Copy link

SparkQA commented Sep 12, 2019

Test build #110508 has finished for PR 25723 at commit 6474935.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

Copy link
Contributor

@juliuszsompolski juliuszsompolski left a comment

Choose a reason for hiding this comment

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

@wangyum
Copy link
Member

wangyum commented Sep 23, 2019

retest this please

@SparkQA
Copy link

SparkQA commented Sep 23, 2019

Test build #111217 has finished for PR 25723 at commit 6474935.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@gengliangwang
Copy link
Member

retest this please

@SparkQA
Copy link

SparkQA commented Sep 23, 2019

Test build #111224 has finished for PR 25723 at commit 6474935.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

ephemerally when executors are being killed.
"""

val THRIFT_SERVER_FINISH_TIME =
Copy link
Member

Choose a reason for hiding this comment

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

Could we move these changes and tests to hive-thriftserver module? @srowen @dongjoon-hyun What do you think?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, if these are only relevant to the thrift server UI, they could go with the other thrift server UI code.

Copy link
Member

Choose a reason for hiding this comment

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

+1, too.

Copy link
Contributor Author

@planga82 planga82 Sep 26, 2019

Choose a reason for hiding this comment

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

Ok, it make sense to have the tooltips in thriftserver module, i'm going to move it.
To generate the tables for this pages we use UIUtils from spark core module so I needed to improve this utils to add this new functionality.
Also, this improvements could be use in other pages to add tooltips to the tables.

@SparkQA
Copy link

SparkQA commented Sep 26, 2019

Test build #111448 has finished for PR 25723 at commit 1bb6196.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Sep 27, 2019

Test build #111451 has finished for PR 25723 at commit 6ab97b8.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Sep 27, 2019

Test build #111490 has finished for PR 25723 at commit 281c8ce.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Sep 27, 2019

Test build #4887 has finished for PR 25723 at commit 281c8ce.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@planga82
Copy link
Contributor Author

retest this please

val tooltips = Seq(None, None, None, None, Some(THRIFT_SERVER_FINISH_TIME),
Some(THRIFT_SERVER_CLOSE_TIME), Some(THRIFT_SERVER_EXECUTION),
Some(THRIFT_SERVER_DURATION), None, None, None)
assert(headerRow.length == tooltips.length)
Copy link
Member

Choose a reason for hiding this comment

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

Oh I see, you check it here. Usually I'd say use require but this is a good case for assert instead

Copy link
Member

@wangyum wangyum left a comment

Choose a reason for hiding this comment

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

Also tested in my local:
image

@srowen srowen closed this in 3ea9d68 Sep 29, 2019
@srowen
Copy link
Member

srowen commented Sep 29, 2019

Merged to master

@gatorsmile
Copy link
Member

It looks great! @planga82 @wangyum @gengliangwang Could we do the similar enhancements for the other UI pages?

@planga82
Copy link
Contributor Author

planga82 commented Oct 6, 2019

@gatorsmile Ok, I can review it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants