[jira] [Updated] (SPARK-34898) Send ExecutorMetricsUpdate EventLog appropriately

2021-04-06 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34898:
---
Description: 
In current EventLoggingListener, we won't write 
SparkListenerExecutorMetricsUpdate message at all
{code:java}
override def onExecutorMetricsUpdate(event: 
SparkListenerExecutorMetricsUpdate): Unit = {
  if (shouldLogStageExecutorMetrics) {
event.executorUpdates.foreach { case (stageKey1, newPeaks) =>
  liveStageExecutorMetrics.foreach { case (stageKey2, metricsPerExecutor) =>
// If the update came from the driver, stageKey1 will be the dummy key 
(-1, -1),
// so record those peaks for all active stages.
// Otherwise, record the peaks for the matching stage.
if (stageKey1 == DRIVER_STAGE_KEY || stageKey1 == stageKey2) {
  val metrics = metricsPerExecutor.getOrElseUpdate(
event.execId, new ExecutorMetrics())
  metrics.compareAndUpdatePeakValues(newPeaks)
}
  }
}
  }
}
{code}
It causes this effect that we can't get driver peakMemoryMetrics in SHS.  We 
can get executor's since it will update with TaskEnd events.

  was:
In current EventLoggingListener, we won't write 
SparkListenerExecutorMetricsUpdate message at all
{code:java}
override def onExecutorMetricsUpdate(event: 
SparkListenerExecutorMetricsUpdate): Unit = {
  if (shouldLogStageExecutorMetrics) {
event.executorUpdates.foreach { case (stageKey1, newPeaks) =>
  liveStageExecutorMetrics.foreach { case (stageKey2, metricsPerExecutor) =>
// If the update came from the driver, stageKey1 will be the dummy key 
(-1, -1),
// so record those peaks for all active stages.
// Otherwise, record the peaks for the matching stage.
if (stageKey1 == DRIVER_STAGE_KEY || stageKey1 == stageKey2) {
  val metrics = metricsPerExecutor.getOrElseUpdate(
event.execId, new ExecutorMetrics())
  metrics.compareAndUpdatePeakValues(newPeaks)
}
  }
}
  }
}
{code}

It cause we can't get driver executor peakMemoryMetrics in SHS. We can got 
executor's since it will update with TaskEnd events.



> Send ExecutorMetricsUpdate EventLog appropriately
> -
>
> Key: SPARK-34898
> URL: https://issues.apache.org/jira/browse/SPARK-34898
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Assignee: Apache Spark
>Priority: Major
>
> In current EventLoggingListener, we won't write 
> SparkListenerExecutorMetricsUpdate message at all
> {code:java}
> override def onExecutorMetricsUpdate(event: 
> SparkListenerExecutorMetricsUpdate): Unit = {
>   if (shouldLogStageExecutorMetrics) {
> event.executorUpdates.foreach { case (stageKey1, newPeaks) =>
>   liveStageExecutorMetrics.foreach { case (stageKey2, metricsPerExecutor) 
> =>
> // If the update came from the driver, stageKey1 will be the dummy 
> key (-1, -1),
> // so record those peaks for all active stages.
> // Otherwise, record the peaks for the matching stage.
> if (stageKey1 == DRIVER_STAGE_KEY || stageKey1 == stageKey2) {
>   val metrics = metricsPerExecutor.getOrElseUpdate(
> event.execId, new ExecutorMetrics())
>   metrics.compareAndUpdatePeakValues(newPeaks)
> }
>   }
> }
>   }
> }
> {code}
> It causes this effect that we can't get driver peakMemoryMetrics in SHS.  We 
> can get executor's since it will update with TaskEnd events.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Issue Comment Deleted] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-03-28 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Comment: was deleted

(was: Hi [~Baohe Zhang] , This ticket proposes a new REST API: 

http://:18080/api/v1/applicationsexecutorSummary.
 

It means to display the percentile distribution of peak memory metrics among 
the executors used in a given stage.  It can help Spark users debug/monitor a 
bottleneck of a stage.

In the ticket https://issues.apache.org/jira/browse/SPARK-32446, it proposed to 
add a REST API,  which can display the percentile distribution of peak memory 
metrics for all executors used in an application.  The REST API is: 

http://:18080/api/v1/applications///executorSummary

Hence this ticket displays executorSummary for a given stage inside an 
application.  SPARK-32446 wants to display executorSummary for the entire 
application.  They are different.

 )

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> overall stages, i.e. endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task metrics summary 
> information in percentile distribution (see example of a single stage in 
> [^taskMetricsDistributions.json] ) and executor metrics summary information 
> in percentile distribution (see example of a single stage in 
> [^executorMetricsDistributions.json]  ).  The default value is 
> withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).
> The output is an aggregate of all stages meeting the filtering conditions for 
> a given application.   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-03-26 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Description: 
When we want to get a specific stage's detail info with task information, it 
will return all tasks.  The content is huge for a stage with thousands of 
tasks.  And we often just want to know some failed tasks/running tasks with 
whole stage info to judge whether or not a task has some problem.  Query 
parameter taskStatus can be used to filter the tasks meeting a specific status 
in the REST API call for a given stage.   We want to support the following REST 
API calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.

  was:
When we want to get a specific stage's detail info with task information, it 
will return all tasks.  The content is huge for a stage with hundreds of tasks. 
 And we often just want to know some failed tasks/running tasks with whole 
stage info to judge whether or not a task has some problem.  Query parameter 
taskStatus can be used to filter the tasks meeting a specific status in the 
REST API call for a given stage.   We want to support the following REST API 
calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.


> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> When we want to get a specific stage's detail info with task information, it 
> will return all tasks.  The content is huge for a stage with thousands of 
> tasks.  And we often just want to know some failed tasks/running tasks with 
> whole stage info to judge whether or not a task has some problem.  Query 
> parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-03-24 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17308305#comment-17308305
 ] 

Ron Hu commented on SPARK-34488:


Hi [~srowen], Thanks for merging this PR.  [~angerszhuuu] and I worked closely 
on this JIRA.  Angers presented the PR for this ticket.  Please put 
[~angerszhuuu] into the assignee field in this ticket.  He deserves the credit. 
 Thanks. 

> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Assignee: Ron Hu
>Priority: Major
> Fix For: 3.2.0
>
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
>  * When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  * Query parameter quantiles define the quantiles we use to calculate metrics 
> distributions.  It takes effect only when {{withSummaries=true.}}  Its 
> default value is {{0.0,0.25,0.5,0.75,1.0.}}  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-03-09 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Description: 
When we want to get a specific stage's detail info with task information, it 
will return all tasks.  The content is huge for a stage with hundreds of tasks. 
 And we often just want to know some failed tasks/running tasks with whole 
stage info to judge whether or not a task has some problem.  Query parameter 
taskStatus can be used to filter the tasks meeting a specific status in the 
REST API call for a given stage.   We want to support the following REST API 
calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.

  was:
When we want to get a specific stage's detail info with task information, it 
will return all tasks.  The content is huge for a stage with hundreds of tasks. 
 And we often just want to know some failed tasks/running tasks with whole 
stage info to judge whether or not a task has some problem.  Query parameter 
taskStatus can be used to filter the tasks meeting a specific status in the 
REST API call for a given stage.   We want to support the following REST APIc 
calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.


> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> When we want to get a specific stage's detail info with task information, it 
> will return all tasks.  The content is huge for a stage with hundreds of 
> tasks.  And we often just want to know some failed tasks/running tasks with 
> whole stage info to judge whether or not a task has some problem.  Query 
> parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-03-01 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
 * When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.
 * Query parameter quantiles define the quantiles we use to calculate metrics 
distributions.  It takes effect only when {{withSummaries=true.}}  Its default 
value is {{0.0,0.25,0.5,0.75,1.0.}}  

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
 * When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.
 * Query parameter quantiles define the quantiles we use to calculate metrics 
distributions.  It takes effect only when {{withSummaries=true.}}  Its default 
is {{0.0,0.25,0.5,0.75,1.0.}}  

 


> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
>  * When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  * Query parameter quantiles define the quantiles we use to calculate metrics 
> distributions.  It takes effect only when {{withSummaries=true.}}  Its 
> default value is {{0.0,0.25,0.5,0.75,1.0.}}  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-02-28 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
 * When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.
 * Query parameter quantiles define the quantiles we use to calculate metrics 
distributions.  It takes effect only when {{withSummaries=true.}}  Its default 
is {{0.0,0.25,0.5,0.75,1.0.}}  

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
 * When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.
 * Query parameter quantiles define the quantiles we use when calculating 
metrics distributions.  It takes effect only when {{withSummaries=true.}}  Its 
default is {{0.0,0.25,0.5,0.75,1.0.}}  

 


> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
>  * When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  * Query parameter quantiles define the quantiles we use to calculate metrics 
> distributions.  It takes effect only when {{withSummaries=true.}}  Its 
> default is {{0.0,0.25,0.5,0.75,1.0.}}  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-02-28 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
 * When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.
 * Query parameter quantiles define the quantiles we use when calculating 
metrics distributions.  It takes effect only when {{withSummaries=true.}}  Its 
default is {{0.0,0.25,0.5,0.75,1.0.}}  

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.

 


> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]=0.0,0.25,0.5,0.75,1.0
>  * When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  * Query parameter quantiles define the quantiles we use when calculating 
> metrics distributions.  It takes effect only when {{withSummaries=true.}}  
> Its default is {{0.0,0.25,0.5,0.75,1.0.}}  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-02-25 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17291067#comment-17291067
 ] 

Ron Hu commented on SPARK-34092:


We clarified the need for query parameter taskStatus for a specific stage.

> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> When we want to get a specific stage's detail info with task information, it 
> will return all tasks.  The content is huge for a stage with hundreds of 
> tasks.  And we often just want to know some failed tasks/running tasks with 
> whole stage info to judge whether or not a task has some problem.  Query 
> parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST APIc calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-02-25 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Description: 
When we want to get a specific stage's detail info with task information, it 
will return all tasks.  The content is huge for a stage with hundreds of tasks. 
 And we often just want to know some failed tasks/running tasks with whole 
stage info to judge whether or not a task has some problem.  Query parameter 
taskStatus can be used to filter the tasks meeting a specific status in the 
REST API call for a given stage.   We want to support the following REST APIc 
calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.

  was:
Query parameter taskStatus can be used to filter the tasks meeting a specific 
status in the REST API call for a given stage.   We want to support the 
following REST API calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.


> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> When we want to get a specific stage's detail info with task information, it 
> will return all tasks.  The content is huge for a stage with hundreds of 
> tasks.  And we often just want to know some failed tasks/running tasks with 
> whole stage info to judge whether or not a task has some problem.  Query 
> parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST APIc calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-02-23 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17289646#comment-17289646
 ] 

Ron Hu commented on SPARK-34488:


It should be noted that this Jira  addresses query parameter withSummaries for 
a specific stage.  In another Jira 
https://issues.apache.org/jira/browse/SPARK-26399, we address query parameter 
withSummaries for overall stages.

> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]
> When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-02-23 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17289644#comment-17289644
 ] 

Ron Hu commented on SPARK-34092:


It should be noted that this Jira  addresses query parameter taskStatus for a 
specific stage.  In another Jira 
https://issues.apache.org/jira/browse/SPARK-26399, we address query parameter 
taskStatus for overall stages.

> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> Query parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for overall 
stages, i.e. endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task metrics summary 
information in percentile distribution (see example of a single stage in 
[^taskMetricsDistributions.json] ) and executor metrics summary information in 
percentile distribution (see example of a single stage in 
[^executorMetricsDistributions.json]  ).  The default value is 
withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

The output is an aggregate of all stages meeting the filtering conditions for a 
given application.   

  was:
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for overall 
stages, i.e. endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task metrics summary 
information in percentile distribution (see example of a single stage in 
[^taskMetricsDistributions.json] ) and executor metrics summary information in 
percentile distribution (see example of a single stage in 
[^executorMetricsDistributions.json]  ).  The default value is 
withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

The output is an aggregate of all stages meeting the filtering conditions.   


> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> overall stages, i.e. endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task metrics summary 
> information in percentile distribution (see example of a single stage in 
> [^taskMetricsDistributions.json] ) and executor metrics summary information 
> in percentile distribution (see example of a single stage in 
> [^executorMetricsDistributions.json]  ).  The default value is 
> withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).
> The output is an aggregate of all stages meeting the filtering conditions for 
> a given application.   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for overall 
stages, i.e. endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task metrics summary 
information in percentile distribution (see example of a single stage in 
[^taskMetricsDistributions.json] ) and executor metrics summary information in 
percentile distribution (see example of a single stage in 
[^executorMetricsDistributions.json]  ).  The default value is 
withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

The output is an aggregate of all stages meeting the filtering conditions.   

  was:
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task metrics summary 
information in percentile distribution (see example in 
[^taskMetricsDistributions.json] ) and executor metrics summary information in 
percentile distribution (see example in [^executorMetricsDistributions.json]  
).  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).


> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> overall stages, i.e. endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task metrics summary 
> information in percentile distribution (see example of a single stage in 
> [^taskMetricsDistributions.json] ) and executor metrics summary information 
> in percentile distribution (see example of a single stage in 
> [^executorMetricsDistributions.json]  ).  The default value is 
> withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).
> The output is an aggregate of all stages meeting the filtering conditions.   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task metrics summary 
information in percentile distribution (see example in 
[^taskMetricsDistributions.json] ) and executor metrics summary information in 
percentile distribution (see example in [^executorMetricsDistributions.json]  
).  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

  was:
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).


> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task metrics summary 
> information in percentile distribution (see example in 
> [^taskMetricsDistributions.json] ) and executor metrics summary information 
> in percentile distribution (see example in 
> [^executorMetricsDistributions.json]  ).  The default value is 
> withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17288026#comment-17288026
 ] 

Ron Hu commented on SPARK-26399:


Add an example of task Metrics percentile Distributions. 
[^taskMetricsDistributions.json]  

Add an example of executor Metrics percentile Distributions.  
[^executorMetricsDistributions.json]    

  

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: executorMetricsDistributions.json

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: taskMetricsDistributions.json

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> executorMetricsSummary.json, lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-21 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: taskMetricsDistributions.json

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png, taskMetricsDistributions.json
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Summary: Define query parameters to support various filtering conditions in 
REST API for overall stages  (was: Add new stage-level REST APIs and parameters)

> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Define query parameters to support various filtering conditions in REST API for overall stages

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).


> Define query parameters to support various filtering conditions in REST API 
> for overall stages
> --
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> [~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
> endpoint /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter can be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API call for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Summary: Support task Metrics Distributions and executor Metrics 
Distributions in the REST API call for a specified stage  (was: Support task 
Metrics Distributions and executor Metrics Distributions in the REST API entry 
for a specified stage)

> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API call for a specified stage
> 
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]
> When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage. This information can show whether or not there is a 
skewed load on some executors.  We list an example in 
[^executorMetricsDistributions.json]

 

We define withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

When withSummaries=true, both task metrics in percentile distribution and 
executor metrics in percentile distribution are included in the REST API 
output.  The default value of withSummaries is false, i.e. no metrics 
percentile distribution will be included in the REST API output.

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.  We list an example in 
[^executorMetricsDistributions.json]

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 


> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API entry for a specified stage
> -
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> [^taskMetricsDistributions.json]
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage. This information can show whether or not 
> there is a skewed load on some executors.  We list an example in 
> [^executorMetricsDistributions.json]
>  
> We define withSummaries query parameter in the REST API for a specific stage 
> as:
> applications///?withSummaries=[true|false]
> When withSummaries=true, both task metrics in percentile distribution and 
> executor metrics in percentile distribution are included in the REST API 
> output.  The default value of withSummaries is false, i.e. no metrics 
> percentile distribution will be included in the REST API output.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 
[^taskMetricsDistributions.json]

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.  We list an example in 
[^executorMetricsDistributions.json]

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 

Here is an example,

 

  "taskMetricsDistributions" :

{     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
"executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
"executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
1195000.0 ],     "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],     
"executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 ],  
   "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],     "jvmGcTime" : 
[ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "resultSerializationTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],     "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     
"schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],     "peakExecutionMemory" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ],     "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "inputMetrics" : 

{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  "recordsRead" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

,

    "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },

    "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 236.0 
],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
"remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "localBlocksFetched" 
: [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },

    "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

  }

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.

Here is an example:

 

  "executorMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],

    "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

    "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

    "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "peakMemoryMetrics" :

{       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "JVMOffHeapMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],       "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "DirectPoolMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCCount" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],       "MajorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MajorGCTime" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ]     }

  }

 

We use withSummaries query parameter in the REST API for a 

[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 

Here is an example,

 

  "taskMetricsDistributions" :

{     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
"executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
"executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
1195000.0 ],     "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],     
"executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 ],  
   "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],     "jvmGcTime" : 
[ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "resultSerializationTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],     "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     
"schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],     "peakExecutionMemory" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ],     "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "inputMetrics" : 

{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  "recordsRead" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

,

    "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },

    "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 236.0 
],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
"remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "localBlocksFetched" 
: [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },

    "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

  }

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.

Here is an example:

 

  "executorMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],

    "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

    "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

    "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "peakMemoryMetrics" :

{       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "JVMOffHeapMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],       "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "DirectPoolMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCCount" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],       "MajorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MajorGCTime" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ]     }

  }

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 

Here is an example,

 

  "taskMetricsDistributions" :

{     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
"executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
"executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
1195000.0 ],    

[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Attachment: executorMetricsDistributions.json

> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API entry for a specified stage
> -
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> Here is an example,
>  
>   "taskMetricsDistributions" :
> {     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
> "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
> "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
> 1195000.0 ],     "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],     
> "executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 
> ],     "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],     
> "jvmGcTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "resultSerializationTime" : [ 
> 0.0, 0.0, 0.0, 0.0, 0.0 ],     "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],     "schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],     
> "peakExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "memoryBytesSpilled" 
> : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],     "inputMetrics" : \\{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  
> "recordsRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] }
> ,
>     "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
> "recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },
>     "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 
> 236.0 ],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
> "remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "localBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 
> 0.0, 0.0, 0.0, 0.0, 0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],       "remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },
>     "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
> "writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
> 0.0, 0.0 ] }
>   }
>  
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage.
> Here is an example:
>  
>   "executorMetricsDistributions" : {
>     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],
>     "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],
>     "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],
>     "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],
>     "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],
>     "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "peakMemoryMetrics" :
> {       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "JVMOffHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "DirectPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : 
> [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 
> 0.0, 0.0 ],       "ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],    
>    "ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "MinorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 

[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Attachment: taskMetricsDistributions.json

> Support task Metrics Distributions and executor Metrics Distributions in the 
> REST API entry for a specified stage
> -
>
> Key: SPARK-34488
> URL: https://issues.apache.org/jira/browse/SPARK-34488
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.0.2
>Reporter: Ron Hu
>Priority: Major
> Attachments: executorMetricsDistributions.json, 
> taskMetricsDistributions.json
>
>
> For a specific stage, it is useful to show the task metrics in percentile 
> distribution.  This information can help users know whether or not there is a 
> skew/bottleneck among tasks in a given stage.  We list an example in 
> Here is an example,
>  
>   "taskMetricsDistributions" :
> {     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
> "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
> "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
> 1195000.0 ],     "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],     
> "executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 
> ],     "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],     
> "jvmGcTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "resultSerializationTime" : [ 
> 0.0, 0.0, 0.0, 0.0, 0.0 ],     "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],     "schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],     
> "peakExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "memoryBytesSpilled" 
> : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],     "inputMetrics" : \\{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  
> "recordsRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] }
> ,
>     "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
> "recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },
>     "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 
> 236.0 ],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
> "remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "localBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 
> 0.0, 0.0, 0.0, 0.0, 0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 
> 0.0 ],       "remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },
>     "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
> "writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
> 0.0, 0.0 ] }
>   }
>  
> Similarly, it is useful to show the executor metrics in percentile 
> distribution for a specific stage.
> Here is an example:
>  
>   "executorMetricsDistributions" : {
>     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],
>     "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],
>     "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],
>     "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],
>     "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],
>     "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
>     "peakMemoryMetrics" :
> {       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "JVMOffHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "DirectPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : 
> [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 
> 0.0, 0.0 ],       "ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],    
>    "ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
> "MinorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 0.0, 

[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.  This information can help users know whether or not there is a 
skew/bottleneck among tasks in a given stage.  We list an example in 

Here is an example,

 

  "taskMetricsDistributions" :

{     "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],     
"executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],     
"executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 1195000.0, 
1195000.0 ],     "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],     
"executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 ],  
   "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],     "jvmGcTime" : 
[ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "resultSerializationTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],     "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     
"schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],     "peakExecutionMemory" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ],     "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],     "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],     "inputMetrics" : 
\\{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  "recordsRead" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

,

    "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },

    "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 236.0 
],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
"remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "localBlocksFetched" 
: [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },

    "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

  }

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.

Here is an example:

 

  "executorMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],

    "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

    "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

    "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "peakMemoryMetrics" :

{       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "JVMOffHeapMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],       "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "DirectPoolMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCCount" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],       "MajorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MajorGCTime" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ]     }

  }

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.

This information can help users know whether or not there is a skew/bottleneck 
among tasks in a given stage.

Here is an example,

 

  "taskMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 
1195000.0, 1195000.0 ],

    "executorRunTime" : 

[jira] [Updated] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34488:
---
Description: 
For a specific stage, it is useful to show the task metrics in percentile 
distribution.

This information can help users know whether or not there is a skew/bottleneck 
among tasks in a given stage.

Here is an example,

 

  "taskMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 
1195000.0, 1195000.0 ],

    "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],

    "executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 
],

    "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],

    "jvmGcTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "resultSerializationTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],

    "peakExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputMetrics" : \{"bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],  
"recordsRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },

    "outputMetrics" : \{"bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ] },

    "shuffleReadMetrics" : \{"readBytes" : [ 236.0, 236.0, 236.0, 236.0, 236.0 
],       "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       
"remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "localBlocksFetched" 
: [ 4.0, 4.0, 4.0, 4.0, 4.0 ],       "fetchWaitTime" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]     },

    "shuffleWriteMetrics" : \{"writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], 
"writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ], "writeTime" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ] }

  }

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.

Here is an example:

 

  "executorMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],

    "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

    "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

    "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "peakMemoryMetrics" :

{       "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "JVMOffHeapMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 
0.0, 0.0 ],       "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "DirectPoolMemory" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 
0.0 ],       "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       
"ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCCount" 
: [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MinorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 
],       "MajorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],       "MajorGCTime" : [ 
0.0, 0.0, 0.0, 0.0, 0.0 ]     }

  }

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 

  was:
For a specific stage, it is useful to show the task metrics in percentile 
distribution.

This information can help users know whether or not there is a skew/bottleneck 
among tasks in a given stage.

Here is an example,

 

  "taskMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 
1195000.0, 1195000.0 ],

    "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 

[jira] [Created] (SPARK-34488) Support task Metrics Distributions and executor Metrics Distributions in the REST API entry for a specified stage

2021-02-20 Thread Ron Hu (Jira)
Ron Hu created SPARK-34488:
--

 Summary: Support task Metrics Distributions and executor Metrics 
Distributions in the REST API entry for a specified stage
 Key: SPARK-34488
 URL: https://issues.apache.org/jira/browse/SPARK-34488
 Project: Spark
  Issue Type: Sub-task
  Components: Spark Core
Affects Versions: 3.0.2
Reporter: Ron Hu


For a specific stage, it is useful to show the task metrics in percentile 
distribution.

This information can help users know whether or not there is a skew/bottleneck 
among tasks in a given stage.

Here is an example,

 

  "taskMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "executorDeserializeTime" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "executorDeserializeCpuTime" : [ 1195000.0, 1195000.0, 1195000.0, 
1195000.0, 1195000.0 ],

    "executorRunTime" : [ 3.0, 3.0, 3.0, 3.0, 3.0 ],

    "executorCpuTime" : [ 321.0, 321.0, 321.0, 321.0, 321.0 
],

    "resultSize" : [ 2648.0, 2648.0, 2648.0, 2648.0, 2648.0 ],

    "jvmGcTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "resultSerializationTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "gettingResultTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "schedulerDelay" : [ 2.0, 2.0, 2.0, 2.0, 2.0 ],

    "peakExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputMetrics" : {

      "bytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "recordsRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]

    },

    "outputMetrics" : {

      "bytesWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "recordsWritten" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]

    },

    "shuffleReadMetrics" : {

      "readBytes" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

      "readRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

      "remoteBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "localBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

      "fetchWaitTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "totalBlocksFetched" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ]

    },

    "shuffleWriteMetrics" : {

      "writeBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "writeTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]

    }

  }

 

Similarly, it is useful to show the executor metrics in percentile distribution 
for a specific stage.

Here is an example:

 

  "executorMetricsDistributions" : {

    "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

    "taskTime" : [ 6.0, 6.0, 6.0, 6.0, 6.0 ],

    "failedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "succeededTasks" : [ 1.0, 1.0, 1.0, 1.0, 1.0 ],

    "killedTasks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleRead" : [ 236.0, 236.0, 236.0, 236.0, 236.0 ],

    "shuffleReadRecords" : [ 4.0, 4.0, 4.0, 4.0, 4.0 ],

    "shuffleWrite" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "shuffleWriteRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

    "peakMemoryMetrics" : {

      "JVMHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "JVMOffHeapMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OnHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OnHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "OffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "DirectPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "MappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreeJVMVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreeJVMRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreePythonVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreePythonRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreeOtherVMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "ProcessTreeOtherRSSMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "MinorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "MinorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "MajorGCCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

      "MajorGCTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]

    }

  }

 

We use withSummaries query parameter in the REST API for a specific stage as:

applications///?withSummaries=[true|false]

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For 

[jira] [Updated] (SPARK-34092) support filtering by task status in REST API call for a specific stage

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Summary: support filtering by task status in REST API call for a specific 
stage  (was: Stage level RestFul API support filter by task status)

> support filtering by task status in REST API call for a specific stage
> --
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> Query parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34092) Stage level RestFul API support filter by task status

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Description: 
Query parameter taskStatus can be used to filter the tasks meeting a specific 
status in the REST API call for a given stage.   We want to support the 
following REST API calls: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need to set details=true in order to drill down to the task level within a 
specified stage.

  was:
Query parameter taskStatus can be used to filter the tasks meeting a specific 
status in the REST API call for a given stage.   We want to support the 
following REST API call: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need


> Stage level RestFul API support filter by task status
> -
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> Query parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API calls: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need to set details=true in order to drill down to the task level within a 
> specified stage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-34092) Stage level RestFul API support filter by task status

2021-02-20 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-34092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-34092:
---
Description: 
Query parameter taskStatus can be used to filter the tasks meeting a specific 
status in the REST API call for a given stage.   We want to support the 
following REST API call: 

applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

Need

  was:Support filter Task by taskstatus when details is true


> Stage level RestFul API support filter by task status
> -
>
> Key: SPARK-34092
> URL: https://issues.apache.org/jira/browse/SPARK-34092
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 3.2.0
>Reporter: angerszhu
>Priority: Major
>
> Query parameter taskStatus can be used to filter the tasks meeting a specific 
> status in the REST API call for a given stage.   We want to support the 
> following REST API call: 
> applications///stages/?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> applications///stages//?details=true=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> Need



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-02-04 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set when 
details=true (i.e. this parameter will be ignored when details=false).

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter 

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-22 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/23/21, 3:39 AM:
--

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter is meaningful only 
when details=true (i.e. this parameter will be ignored when details=false).


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter is meaningful only 
when details=true (i.e. this parameter will be ignored when details=false).

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter will be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-22 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|KILLED|PENDING]
> where
>  * query parameter details=true is 

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/10/21, 6:22 PM:
--

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter is meaningful when 
details=true (i.e. this parameter will be ignored when details=false).


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter will be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/10/21, 6:22 PM:
--

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter is meaningful only 
when details=true (i.e. this parameter will be ignored when details=false).


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter is meaningful when 
details=true (i.e. this parameter will be ignored when details=false).

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter will be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/10/21, 6:20 PM:
--

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set only when 
details=true.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.  This parameter will be set when 
> details=true (i.e. this parameter will be ignored when details=false).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter will be set when 
details=true (i.e. this parameter will be ignored when details=false).

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter 

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/10/21, 6:18 PM:
--

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated. 
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.  This parameter can be set only when 
details=true.


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-10 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status.  
When status parameter is not specified, a list of all stages are generated.  
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status.  
> When status parameter is not specified, a list of all stages are generated.  
>  * query parameter withSummaries=true is to 

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu edited comment on SPARK-26399 at 1/9/21, 9:25 PM:
-

[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.


was (Author: ron8hu):
[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be: 

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status;
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * query parameter taskStatus is to show only those tasks with the specified 
> status within their corresponding stages.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * query parameter taskStatus is to show only those tasks with the specified 
status within their corresponding stages.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * taskStatus is to show only those tasks with the specified status within 
their corresponding stages.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status;
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * 

[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where
 * query parameter details=true is to show the detailed task information within 
each stage.  The default value is details=false;
 * query parameter status can select those stages with the specified status;
 * query parameter withSummaries=true is to show both task summary information 
in percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.
 * taskStatus is to show only those tasks with the specified status within 
their corresponding stages.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where
>  * query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
>  * query parameter status can select those stages with the specified status;
>  * query parameter withSummaries=true is to show both task summary 
> information in percentile distribution and executor summary information in 
> percentile distribution.  The default value is withSummaries=false.
>  * taskStatus is to show 

[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

*. *. *

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> *. *. *
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
> query parameter status can select those stages with the specified status;
> query parameter withSummaries=true is to show both task summary information 
> in percentile distribution and executor summary information in percentile 
> distribution.  The default value is withSummaries=false.
> taskStatus is to show only those tasks with the specified status 

[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

Note that the above description is too brief to be clear.  [~angerszhuuu] and 
[~ron8hu] discussed a generic and consistent way for endpoint 
/application/\{app-id}/stages.  It can be:

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

Note that the above description is too brief to be clear.  Ron Hu added the 
additional details to explain the use cases from the downstream products.  See 
the comments dated 1/07/2021 with a couple of sample json files.


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> Note that the above description is too brief to be clear.  [~angerszhuuu] and 
> [~ron8hu] discussed a generic and consistent way for endpoint 
> /application/\{app-id}/stages.  It can be:
> /application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]
> where query parameter details=true is to show the detailed task information 
> within each stage.  The default value is details=false;
> query parameter status can select those stages with the specified status;
> query parameter withSummaries=true is to show both task summary information 
> in percentile distribution and executor summary information in percentile 
> distribution.  The default value is withSummaries=false.
> taskStatus is to show only those tasks with the specified status within their 
> corresponding stages.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-09 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17261948#comment-17261948
 ] 

Ron Hu commented on SPARK-26399:


[~angerszhuuu] and [~ron8hu] discussed a generic and consistent way for 
endpoint /application/\{app-id}/stages.  It can be: 

/application/\{app-id}/stages?details=[true|false]=[ACTIVE|COMPLETE|FAILED|PENDING|SKIPPED]=[true|false]=[RUNNING|SUCCESS|FAILED|PENDING]

where query parameter details=true is to show the detailed task information 
within each stage.  The default value is details=false;

query parameter status can select those stages with the specified status;

query parameter withSummaries=true is to show both task summary information in 
percentile distribution and executor summary information in percentile 
distribution.  The default value is withSummaries=false.

taskStatus is to show only those tasks with the specified status within their 
corresponding stages.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> Note that the above description is too brief to be clear.  Ron Hu added the 
> additional details to explain the use cases from the downstream products.  
> See the comments dated 1/07/2021 with a couple of sample json files.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260856#comment-17260856
 ] 

Ron Hu edited comment on SPARK-26399 at 1/8/21, 5:18 AM:
-

The initial description of this jira has this statement:  "filtering for task 
status, and returning tasks that match (for example, FAILED tasks)"

To achieve the above statement, we need an new endpoint like this: 
/applications/[app-id]/stages?taskstatus=[FAILED|KILLED|SUCCESS]

If a user specifies /applications/[app-id]/stages?taskstatus=KILLED, then we 
generate a json file to contain all the killed task information from all the 
stages.  This way can help users monitor all the killed tasks.  For example, 
when a Spark user enables speculation, he needs the information of all the 
killed tasks so that he can monitor the benefit/cost brought by speculation.

I attach a sample json file  [^lispark230_restapi_ex2_stages_failedTasks.json]  
which contains the failed tasks and the corresponding stages for reference.


was (Author: ron8hu):
The initial description of this jira has this statement:  "filtering for task 
status, and returning tasks that match (for example, FAILED tasks)"

To achieve the above statement, we need an new endpoint like this: 
/applications/[app-id]/stages?taskstatus=[FAILED|KILLED|SUCCESS]

If a user specifies /applications/[app-id]/stages?taskstatus=KILLED, then we 
generate a json file to contain all the killed task information from all the 
stages.  This way can help users monitor all the killed tasks.  For example, a 
Spark user enables speculation, he needs the information of all the killed 
tasks so that he can monitor the benefit/cost brought by speculation.

I attach a sample json file  [^lispark230_restapi_ex2_stages_failedTasks.json]  
which contains the failed tasks and the corresponding stages for reference.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> Note that the above description is too brief to be clear.  Ron Hu added the 
> additional details to explain the use cases from the downstream products.  
> See the comments dated 1/07/2021 with a couple of sample json files.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

Note that the above description is too brief to be clear.  Ron Hu added the 
additional details to explain the use cases from the downstream products.  See 
the comments dated 1/07/2021 with a couple of sample json files.

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified
> Note that the above description is too brief to be clear.  Ron Hu added the 
> additional details to explain the use cases from the downstream products.  
> See the comments dated 1/07/2021 with a couple of sample json files.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260856#comment-17260856
 ] 

Ron Hu commented on SPARK-26399:


The initial description of this jira has this statement:  "filtering for task 
status, and returning tasks that match (for example, FAILED tasks)"

To achieve the above statement, we need an new endpoint like this: 
/applications/[app-id]/stages?taskstatus=[FAILED|KILLED|SUCCESS]

If a user specifies /applications/[app-id]/stages?taskstatus=KILLED, then we 
generate a json file to contain all the killed task information from all the 
stages.  This way can help users monitor all the killed tasks.  For example, a 
Spark user enables speculation, he needs the information of all the killed 
tasks so that he can monitor the benefit/cost brought by speculation.

I attach a sample json file  [^lispark230_restapi_ex2_stages_failedTasks.json]  
which contains the failed tasks and the corresponding stages for reference.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: lispark230_restapi_ex2_stages_failedTasks.json

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260854#comment-17260854
 ] 

Ron Hu commented on SPARK-26399:


[^lispark230_restapi_ex2_stages_failedTasks.json]

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_failedTasks.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260805#comment-17260805
 ] 

Ron Hu edited comment on SPARK-26399 at 1/7/21, 10:23 PM:
--

Dr. Elephant ([https://github.com/linkedin/dr-elephant]) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint generate a json 
file containing all stages for a given application.  The current Spark version 
already provides it.

In order to debug if there exists a skew issue, a downstream product also needs:
 - taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

 - executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file for stages endpoint. 
[^lispark230_restapi_ex2_stages_withSummaries.json]

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.


was (Author: ron8hu):
Dr. Elephant ([https://github.com/linkedin/dr-elephant]) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:
 - taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

 - executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file for stages endpoint. 
[^lispark230_restapi_ex2_stages_withSummaries.json]

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260805#comment-17260805
 ] 

Ron Hu edited comment on SPARK-26399 at 1/7/21, 8:41 PM:
-

Dr. Elephant ([https://github.com/linkedin/dr-elephant]) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:
 - taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

 - executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file for stages endpoint. 
[^lispark230_restapi_ex2_stages_withSummaries.json]

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.


was (Author: ron8hu):
Dr. Elephant ([https://github.com/linkedin/dr-elephant]) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:
 - taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

 - executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file "lispark230_restapi_ex2_stages_withSummaries.json" 
for stages endpoint. [^lispark230_restapi_ex2_stages_withSummaries.json]

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the 

[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260805#comment-17260805
 ] 

Ron Hu edited comment on SPARK-26399 at 1/7/21, 8:40 PM:
-

Dr. Elephant ([https://github.com/linkedin/dr-elephant]) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:
 - taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

 - executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file "lispark230_restapi_ex2_stages_withSummaries.json" 
for stages endpoint. [^lispark230_restapi_ex2_stages_withSummaries.json]

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.


was (Author: ron8hu):
Dr. Elephant (https://github.com/linkedin/dr-elephant) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:

- taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

- executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file "lispark230_restapi_ex2_stages_withSummaries.json" 
for stages endpoint. 

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the 

[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: lispark230_restapi_ex2_stages_withSummaries.json

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> lispark230_restapi_ex2_stages_withSummaries.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260808#comment-17260808
 ] 

Ron Hu commented on SPARK-26399:


[^lispark230_restapi_ex2_stages_withSummaries.json]

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-07 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17260805#comment-17260805
 ] 

Ron Hu commented on SPARK-26399:


Dr. Elephant (https://github.com/linkedin/dr-elephant) is a downstream open 
source product that utilizes Spark monitoring information so that it can advise 
Spark users where to optimize their configuration parameters ranging from 
memory usage, number of cores, etc.  Because the initial description of this 
ticket is too brief to be clear.  Let me explain the use cases for Dr. Elephant 
here. 

REST API /applications/[app-id]/stages: This useful endpoint provides a list of 
all stages for a given application.  The current Spark version already provides 
it.

In order to debug if there exists a skew issue, a downstream product also needs:

- taskMetricsSummary: It includes task metric information such as 
executorRunTime, inputMetrics, outputMetrics,   shuffleReadMetrics, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the tasks in a 
given stage.  The same information shows up in Web UI for a specified stage.

- executorMetricsSummary: It includes executor metrics information such as 
number of tasks, input bytes, peak JVM memory, peak execution memory, etc.  All 
in quantile distribution (0.0, 0.25, 0.5, 0.75, 1.0) for all the executors used 
in a given stage.  This information has been developed by [~angerszhuuu] in the 
PR he submitted.

We can add the above information to the the json file generated by 
/applications/[app-id]/stages. It may double the size of the stages endpoints 
file.  It should be fine because the current stages json file is not that big.  
Here is one sample json file "lispark230_restapi_ex2_stages_withSummaries.json" 
for stages endpoint. 

An alternative approach is to add a new REST API such as 
"/applications/[app-id]/stages/withSummaries".  But it may need a little bit 
more code for a new endpoint.

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257844#comment-17257844
 ] 

Ron Hu edited comment on SPARK-26399 at 1/3/21, 9:00 PM:
-

[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached web UI file  !stage_executorSummary_image1.png! , you can see a 
sample image file of the "Summery Metrics for Executors" for a stage.  Its 
corresponding REST API output can be something like:

 attach a json file here . [^executorMetricsSummary.json]

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary


was (Author: ron8hu):
[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached web UI file  !stage_executorSummary_image1.png! , you can see a 
sample image file of the "Summery Metrics for Executors' for a stage.  Its 
corresponding REST API output can be something like:

 attach a json file here . [^executorMetricsSummary.json]

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Description: 
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorMetricsSummary{code}
Add parameters to the stages REST API to specify:
 * filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
 * task metric quantiles, add adding the task summary if specified
 * executor metric quantiles, and adding the executor summary if specified

  was:
Add the peak values for the metrics to the stages REST API. Also add a new 
executorSummary REST API, which will return executor summary metrics for a 
specified stage:
{code:java}
curl http://:18080/api/v1/applicationsexecutorSummary{code}

Add parameters to the stages REST API to specify:
*  filtering for task status, and returning tasks that match (for example, 
FAILED tasks).
* task metric quantiles, add adding the task summary if specified
* executor metric quantiles, and adding the executor summary if specified


> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http:// server>:18080/api/v1/applicationsexecutorMetricsSummary{code}
> Add parameters to the stages REST API to specify:
>  * filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
>  * task metric quantiles, add adding the task summary if specified
>  * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257844#comment-17257844
 ] 

Ron Hu edited comment on SPARK-26399 at 1/3/21, 7:46 PM:
-

[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached web UI file  !stage_executorSummary_image1.png! , you can see a 
sample image file of the "Summery Metrics for Executors' for a stage.  Its 
corresponding REST API output can be something like:

 attach a json file here . [^executorMetricsSummary.json]

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary


was (Author: ron8hu):
[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

 attach a json file here . [^executorMetricsSummary.json]

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257844#comment-17257844
 ] 

Ron Hu edited comment on SPARK-26399 at 1/3/21, 7:45 PM:
-

[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

 attach a json file here . [^executorMetricsSummary.json]

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary


was (Author: ron8hu):
[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

 attach a json file here . 

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257844#comment-17257844
 ] 

Ron Hu edited comment on SPARK-26399 at 1/3/21, 7:44 PM:
-

[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

 attach a json file here . 

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary


was (Author: ron8hu):
[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

{

  "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

  "numTasks" : [ 1.0, 1.0, 3.0, 3.0, 4.0 ],

  "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "shuffleRead" : [ 0.0, 2.50967876E8, 7.50516665E8, 7.51114124E8, 
1.001617709E9 ],

  "shuffleReadRecords" : [ 0.0, 740880.0, 2215608.0, 2217351.0, 2957194.0 ],

  "shuffleWrite" : [ 0.0, 2.3658701E8, 7.07482405E8, 7.08012783E8, 9.44322243E8 
],

  "shuffleWriteRecords" : [ 0.0, 726968.0, 2174281.0, 2176014.0, 2902184.0 ],

  "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakJVMHeapMemory" : [ 2.09883992E8, 4.6213568E8, 7.5947948E8, 9.8473656E8, 
9.8473656E8 ],

  "peakJVMOffHeapMemory" : [ 6.0829472E7, 6.1343616E7, 6.271752E7, 9.1926448E7, 
9.1926448E7 ],

  "peakOnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOnHeapStorageMemory" : [ 7023.0, 12537.0, 19560.0, 19560.0, 19560.0 ],

  "peakOffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOnHeapUnifiedMemory" : [ 7023.0, 12537.0, 19560.0, 19560.0, 19560.0 ],

  "peakOffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakDirectPoolMemory" : [ 10742.0, 10865.0, 12781.0, 157182.0, 157182.0 ],

  "peakMappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakProcessTreeJVMVMemory" : [ 8.296026112E9, 9.678606336E9, 9.684373504E9, 
9.691553792E9, 9.691553792E9 ],

  "peakProcessTreeJVMRSSMemory" : [ 5.26491648E8, 7.03639552E8, 9.64222976E8, 
1.210867712E9, 1.210867712E9 ]

}

 

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> 

[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: executorMetricsSummary.json

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257846#comment-17257846
 ] 

Ron Hu commented on SPARK-26399:


[^executorMetricsSummary.json]

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: executorMetricsSummary.json, 
> stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26399:
---
Attachment: stage_executorSummary_image1.png

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257845#comment-17257845
 ] 

Ron Hu commented on SPARK-26399:


!stage_executorSummary_image1.png!

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
> Attachments: stage_executorSummary_image1.png
>
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-03 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257844#comment-17257844
 ] 

Ron Hu commented on SPARK-26399:


[~angerszhuuu] found that the "executorSummary" field already exists in stage 
REST API output.  In the existing stage json file, the "executorSummary" field 
contains a list of executor metrics for all executors used for a given stage.  
In addition to the detailed metrics information for each executor, we also need 
the percentile distribution among the executors.  This is because we need the 
percentile information in order to find out how bad a skew problem is.  For 
example, we compute the ratio of maximal value over median value and maximal 
value over 75th percentile value.  If the ratio of max-over-median is equal to 
5, there is a skew issue.  If the ratio of max-over-75th-percentile is equal to 
5, then there is a really bad skew issue.

In the attached file, you can see a sample image file of the "Summery Metrics 
for Executors' for a stage.  Its corresponding REST API output can be something 
like:

{

  "quantiles" : [ 0.0, 0.25, 0.5, 0.75, 1.0 ],

  "numTasks" : [ 1.0, 1.0, 3.0, 3.0, 4.0 ],

  "inputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "inputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "outputBytes" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "outputRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "shuffleRead" : [ 0.0, 2.50967876E8, 7.50516665E8, 7.51114124E8, 
1.001617709E9 ],

  "shuffleReadRecords" : [ 0.0, 740880.0, 2215608.0, 2217351.0, 2957194.0 ],

  "shuffleWrite" : [ 0.0, 2.3658701E8, 7.07482405E8, 7.08012783E8, 9.44322243E8 
],

  "shuffleWriteRecords" : [ 0.0, 726968.0, 2174281.0, 2176014.0, 2902184.0 ],

  "memoryBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "diskBytesSpilled" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakJVMHeapMemory" : [ 2.09883992E8, 4.6213568E8, 7.5947948E8, 9.8473656E8, 
9.8473656E8 ],

  "peakJVMOffHeapMemory" : [ 6.0829472E7, 6.1343616E7, 6.271752E7, 9.1926448E7, 
9.1926448E7 ],

  "peakOnHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOffHeapExecutionMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOnHeapStorageMemory" : [ 7023.0, 12537.0, 19560.0, 19560.0, 19560.0 ],

  "peakOffHeapStorageMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakOnHeapUnifiedMemory" : [ 7023.0, 12537.0, 19560.0, 19560.0, 19560.0 ],

  "peakOffHeapUnifiedMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakDirectPoolMemory" : [ 10742.0, 10865.0, 12781.0, 157182.0, 157182.0 ],

  "peakMappedPoolMemory" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],

  "peakProcessTreeJVMVMemory" : [ 8.296026112E9, 9.678606336E9, 9.684373504E9, 
9.691553792E9, 9.691553792E9 ],

  "peakProcessTreeJVMRSSMemory" : [ 5.26491648E8, 7.03639552E8, 9.64222976E8, 
1.210867712E9, 1.210867712E9 ]

}

 

Since the field name "executorSummary" already exists, we should change this 
REST API endpoint name.  We may change it to "executorMetricsSummary".  The new 
REST API can be:

http://:18080/api/v1/applicationsexecutorMetricsSummary

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-26399) Add new stage-level REST APIs and parameters

2021-01-02 Thread Ron Hu (Jira)


[ 
https://issues.apache.org/jira/browse/SPARK-26399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17257639#comment-17257639
 ] 

Ron Hu commented on SPARK-26399:


Hi [~Baohe Zhang] , This ticket proposes a new REST API: 

http://:18080/api/v1/applicationsexecutorSummary.
 

It means to display the percentile distribution of peak memory metrics among 
the executors used in a given stage.  It can help Spark users debug/monitor a 
bottleneck of a stage.

In the ticket https://issues.apache.org/jira/browse/SPARK-32446, it proposed to 
add a REST API,  which can display the percentile distribution of peak memory 
metrics for all executors used in an application.  The REST API is: 

http://:18080/api/v1/applications///executorSummary

Hence this ticket displays executorSummary for a given stage inside an 
application.  SPARK-32446 wants to display executorSummary for the entire 
application.  They are different.

 

> Add new stage-level REST APIs and parameters
> 
>
> Key: SPARK-26399
> URL: https://issues.apache.org/jira/browse/SPARK-26399
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core
>Affects Versions: 3.1.0
>Reporter: Edward Lu
>Priority: Major
>
> Add the peak values for the metrics to the stages REST API. Also add a new 
> executorSummary REST API, which will return executor summary metrics for a 
> specified stage:
> {code:java}
> curl http://:18080/api/v1/applications/ id>// attempt>/executorSummary{code}
> Add parameters to the stages REST API to specify:
> *  filtering for task status, and returning tasks that match (for example, 
> FAILED tasks).
> * task metric quantiles, add adding the task summary if specified
> * executor metric quantiles, and adding the executor summary if specified



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-26341) Expose executor memory metrics at the stage level, in the Stages tab

2020-12-02 Thread Ron Hu (Jira)


 [ 
https://issues.apache.org/jira/browse/SPARK-26341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-26341:
---
Affects Version/s: (was: 3.1.0)
   3.0.1

> Expose executor memory metrics at the stage level, in the Stages tab
> 
>
> Key: SPARK-26341
> URL: https://issues.apache.org/jira/browse/SPARK-26341
> Project: Spark
>  Issue Type: Sub-task
>  Components: Spark Core, Web UI
>Affects Versions: 3.0.1
>Reporter: Edward Lu
>Priority: Major
>
> Sub-task SPARK-23431 will add stage level executor memory metrics (peak 
> values for each stage, and peak values for each executor for the stage). This 
> information should also be exposed the the web UI, so that users can see 
> which stages are memory intensive.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-21322) support histogram in filter cardinality estimation

2017-11-20 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16258601#comment-16258601
 ] 

Ron Hu edited comment on SPARK-21322 at 11/21/17 1:43 AM:
--

Pull request 19357 was created while there were several dependencies that had 
not been merged yet at that time. As a result, it has caused many conflicts. I 
decided to close pull request 19357 and start a clean one. Please review the 
new pull request 19783 instead.  Thanks.


was (Author: ron8hu):
Pull request 19357 was created while there were several dependencies that had 
not been defined yet at that time. As a result, it has caused many conflicts. I 
decided to close pull request 19357 and start a clean one. Please review the 
new pull request 19783 instead.  Thanks.

> support histogram in filter cardinality estimation
> --
>
> Key: SPARK-21322
> URL: https://issues.apache.org/jira/browse/SPARK-21322
> Project: Spark
>  Issue Type: Sub-task
>  Components: SQL
>Affects Versions: 2.3.0
>Reporter: Ron Hu
>
> Histogram is effective in dealing with skewed distribution.  After we 
> generate histogram information for column statistics, we need to adjust 
> filter estimation based on histogram data structure.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-21322) support histogram in filter cardinality estimation

2017-11-19 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16258601#comment-16258601
 ] 

Ron Hu commented on SPARK-21322:


Pull request 19357 was created while there were several dependencies that had 
not been defined yet at that time. As a result, it has caused many conflicts. I 
decided to close pull request 19357 and start a clean one. Please review the 
new pull request 19783 instead.  Thanks.

> support histogram in filter cardinality estimation
> --
>
> Key: SPARK-21322
> URL: https://issues.apache.org/jira/browse/SPARK-21322
> Project: Spark
>  Issue Type: Sub-task
>  Components: SQL
>Affects Versions: 2.3.0
>Reporter: Ron Hu
>
> Histogram is effective in dealing with skewed distribution.  After we 
> generate histogram information for column statistics, we need to adjust 
> filter estimation based on histogram data structure.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Created] (SPARK-22164) support histogram in estimating the cardinality of aggregate (or group-by) operator

2017-09-28 Thread Ron Hu (JIRA)
Ron Hu created SPARK-22164:
--

 Summary: support histogram in estimating the cardinality of 
aggregate (or group-by) operator
 Key: SPARK-22164
 URL: https://issues.apache.org/jira/browse/SPARK-22164
 Project: Spark
  Issue Type: Sub-task
  Components: SQL
Affects Versions: 2.2.0
Reporter: Ron Hu


Histogram is effective in dealing with skewed distribution. After we generate 
histogram information for column statistics, we need to adjust aggregate (or 
group-by) cardinality estimation based on equi-height histogram information.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-17075) Cardinality Estimation of Predicate Expressions

2017-09-26 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-17075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16181793#comment-16181793
 ] 

Ron Hu commented on SPARK-17075:


This jira has been resolved.  Pull request 19357 was added here by accident.  
Pull request 19357 is fore [SPARK-21322].  

> Cardinality Estimation of Predicate Expressions
> ---
>
> Key: SPARK-17075
> URL: https://issues.apache.org/jira/browse/SPARK-17075
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.0.0
>Reporter: Ron Hu
>Assignee: Ron Hu
> Fix For: 2.2.0
>
>
> A filter condition is the predicate expression specified in the WHERE clause 
> of a SQL select statement.  A predicate can be a compound logical expression 
> with logical AND, OR, NOT operators combining multiple single conditions.  A 
> single condition usually has comparison operators such as =, <, <=, >, >=, 
> ‘like’, etc.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Created] (SPARK-21322) support histogram in filter cardinality estimation

2017-07-05 Thread Ron Hu (JIRA)
Ron Hu created SPARK-21322:
--

 Summary: support histogram in filter cardinality estimation
 Key: SPARK-21322
 URL: https://issues.apache.org/jira/browse/SPARK-21322
 Project: Spark
  Issue Type: Sub-task
  Components: SQL
Affects Versions: 2.1.0
Reporter: Ron Hu


Histogram is effective in dealing with skewed distribution.  After we generate 
histogram information for column statistics, we need to adjust filter 
estimation based on histogram data structure.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-19408) cardinality estimation involving two columns of the same table

2017-03-31 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-19408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-19408:
---
Description: 
In SPARK-17075, we estimate cardinality of predicate expression "column (op) 
literal", where op is =, <, <=, >, or >=.  In SQL queries, we also see 
predicate expressions involving two columns such as "column-1 (op) column-2" 
where column-1 and column-2 belong to same table.  Note that, if column-1 and 
column-2 belong to different tables, then it is a join operator's work, NOT a 
filter operator's work.

In this jira, we want to estimate the filter factor of predicate expressions 
involving two columns of same table.   For example, multiple tpc-h queries have 
this kind of predicate "WHERE l_commitdate < l_receiptdate".

  was:
In SPARK-17075, we estimate cardinality of predicate expression "column (op) 
literal", where op is =, <, <=, >, or >=.  In SQL queries, we also see 
predicate expressions involving two columns such as "column-1 (op) column-2" 
where column-1 and column-2 belong to same table.  Note that, if column-1 and 
column-2 belong to different tables, then it is a join operator's work, NOT a 
filter operator's work.

In this jira, we want to estimate the filter factor of predicate expressions 
involving two columns of same table.   


> cardinality estimation involving two columns of the same table
> --
>
> Key: SPARK-19408
> URL: https://issues.apache.org/jira/browse/SPARK-19408
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.1.0
>Reporter: Ron Hu
>
> In SPARK-17075, we estimate cardinality of predicate expression "column (op) 
> literal", where op is =, <, <=, >, or >=.  In SQL queries, we also see 
> predicate expressions involving two columns such as "column-1 (op) column-2" 
> where column-1 and column-2 belong to same table.  Note that, if column-1 and 
> column-2 belong to different tables, then it is a join operator's work, NOT a 
> filter operator's work.
> In this jira, we want to estimate the filter factor of predicate expressions 
> involving two columns of same table.   For example, multiple tpc-h queries 
> have this kind of predicate "WHERE l_commitdate < l_receiptdate".



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-19408) cardinality estimation involving two columns of the same table

2017-03-24 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-19408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-19408:
---
Target Version/s: 2.2.0  (was: 2.3.0)

> cardinality estimation involving two columns of the same table
> --
>
> Key: SPARK-19408
> URL: https://issues.apache.org/jira/browse/SPARK-19408
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.1.0
>Reporter: Ron Hu
>
> In SPARK-17075, we estimate cardinality of predicate expression "column (op) 
> literal", where op is =, <, <=, >, or >=.  In SQL queries, we also see 
> predicate expressions involving two columns such as "column-1 (op) column-2" 
> where column-1 and column-2 belong to same table.  Note that, if column-1 and 
> column-2 belong to different tables, then it is a join operator's work, NOT a 
> filter operator's work.
> In this jira, we want to estimate the filter factor of predicate expressions 
> involving two columns of same table.   



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-19408) cardinality estimation involving two columns of the same table

2017-03-21 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-19408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-19408:
---
Target Version/s: 2.3.0  (was: 2.2.0)

> cardinality estimation involving two columns of the same table
> --
>
> Key: SPARK-19408
> URL: https://issues.apache.org/jira/browse/SPARK-19408
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.1.0
>Reporter: Ron Hu
>
> In SPARK-17075, we estimate cardinality of predicate expression "column (op) 
> literal", where op is =, <, <=, >, or >=.  In SQL queries, we also see 
> predicate expressions involving two columns such as "column-1 (op) column-2" 
> where column-1 and column-2 belong to same table.  Note that, if column-1 and 
> column-2 belong to different tables, then it is a join operator's work, NOT a 
> filter operator's work.
> In this jira, we want to estimate the filter factor of predicate expressions 
> involving two columns of same table.   



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] (SPARK-19408) cardinality estimation involving two columns of the same table

2017-01-30 Thread Ron Hu (JIRA)
Title: Message Title
 
 
 
 
 
 
 
 
 
 
  
 
 Ron Hu created an issue 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 Spark /  SPARK-19408 
 
 
 
  cardinality estimation involving two columns of the same table  
 
 
 
 
 
 
 
 
 

Issue Type:
 
  Sub-task 
 
 
 

Affects Versions:
 

 2.1.0 
 
 
 

Assignee:
 

 Unassigned 
 
 
 

Components:
 

 Optimizer 
 
 
 

Created:
 

 31/Jan/17 01:44 
 
 
 

Priority:
 
  Major 
 
 
 

Reporter:
 
 Ron Hu 
 
 
 
 
 
 
 
 
 
 
In SPARK-17075, we estimate cardinality of predicate _expression_ "column (op) literal", where op is =, <, <=, >, or >=. In SQL queries, we also see predicate expressions involving two columns such as "column-1 (op) column-2" where column-1 and column-2 belong to same table. Note that, if column-1 and column-2 belong to different tables, then it is a join operator's work, NOT a filter operator's work. 
In this jira, we want to estimate the filter factor of predicate expressions involving two columns of same table.  
 
 
 
 
 
 
 
 
 
 
 
 


[jira] [Issue Comment Deleted] (SPARK-17076) Cardinality estimation of join operator

2016-12-08 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-17076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-17076:
---
Comment: was deleted

(was: Hi,

I am out of office 11 /15 through 11/18 with very limited Internet access.  My 
reply to your email will be delayed.  Thanks.

Best,
Ron Hu

)

> Cardinality estimation of join operator
> ---
>
> Key: SPARK-17076
> URL: https://issues.apache.org/jira/browse/SPARK-17076
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.0.0
>Reporter: Ron Hu
>
> support cardinality estimates for equi-join, Cartesian product join, and 
> outer join, etc. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-11-30 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15710667#comment-15710667
 ] 

Ron Hu commented on SPARK-16026:


Hi Reynold, I previously worked on filter cardinality estimation using the old 
statistics structure.  Now I need to refactor my code using the new basic 
statistics structure we agreed on.  As I am traveling on a business trip now, I 
will resume my work on Monday after I return to Bay Area.  Zhenhua is currently 
busy with some customer tasks this week.  He will return to work on CBO soon.

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
>  Labels: releasenotes
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-17076) Cardinality estimation of join operator

2016-11-14 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-17076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15665664#comment-15665664
 ] 

Ron Hu commented on SPARK-17076:


Hi,

I am out of office 11 /15 through 11/18 with very limited Internet access.  My 
reply to your email will be delayed.  Thanks.

Best,
Ron Hu



> Cardinality estimation of join operator
> ---
>
> Key: SPARK-17076
> URL: https://issues.apache.org/jira/browse/SPARK-17076
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.0.0
>Reporter: Ron Hu
>
> support cardinality estimates for equi-join, Cartesian product join, and 
> outer join, etc. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Issue Comment Deleted] (SPARK-16026) Cost-based Optimizer framework

2016-11-01 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Comment: was deleted

(was: Design Specification of Spark Cost-Based Optimization is now posted.)

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-17791) Join reordering using star schema detection

2016-10-28 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-17791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15616590#comment-15616590
 ] 

Ron Hu commented on SPARK-17791:


This JIRA is indeed complementary to Cost-Based Optimizer (or CBO) project.  
But we need to be more careful, and as a result we should do this together with 
CBO.  Let me explain it below.

Previously I commented in SPARK-17626 , we need detailed statistics such as 
number of distinct values for a join column and number of records of a table in 
order to decide fact tables and dimension tables.  Today we are collecting 
statistics to reliably predict fact tables and dimension tables in CBO project. 
 In addition, we are estimating selectivity for every relational algebra 
operator in CBO so that we can give reliable plan cardinality.

Without CBO's support, the author currently is using SQL hint to provide 
predicate selectivity.  Note that SQL hint does not work well as it is not 
automated and it just shows the current weakness of Spark SQL optimizer.  The 
author also uses initial table size to predict fact/dimension tables.  As we 
know, after applying predicate, the relevant records to participate a join may 
be a small subset of the initial table.  Hence initial table size is not a 
reliable way to decide a star schema.  
 
While this PR can show promising performance gain on most tpc-ds benchmark 
queries as tpc-ds has a well-know star schema, but can this approach still work 
in real world applications which do not clearly define a star schema? 
 
Therefore, I suggest that [SPARK-17791] and [SPARK-17626] should be tightly 
integrated with CBO project.  We are set to release CBO in Spark 2.2.  With the 
progress made so far, we can begin integrating star join reordering in December.

The same comment also applies to [SPARK-17626].

My two cents.  Thanks.

> Join reordering using star schema detection
> ---
>
> Key: SPARK-17791
> URL: https://issues.apache.org/jira/browse/SPARK-17791
> Project: Spark
>  Issue Type: Sub-task
>  Components: SQL
>Affects Versions: 2.1.0
>Reporter: Ioana Delaney
>Priority: Critical
> Attachments: StarJoinReordering1005.doc
>
>
> This JIRA is a sub-task of SPARK-17626.
> The objective is to provide a consistent performance improvement for star 
> schema queries. Star schema consists of one or more fact tables referencing a 
> number of dimension tables. In general, queries against star schema are 
> expected to run fast  because of the established RI constraints among the 
> tables. This design proposes a join reordering based on natural, generally 
> accepted heuristics for star schema queries:
> * Finds the star join with the largest fact table and places it on the 
> driving arm of the left-deep join. This plan avoids large tables on the 
> inner, and thus favors hash joins. 
> * Applies the most selective dimensions early in the plan to reduce the 
> amount of data flow.
> The design description is included in the below attached document.
> \\



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-17626) TPC-DS performance improvements using star-schema heuristics

2016-10-08 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-17626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15559044#comment-15559044
 ] 

Ron Hu commented on SPARK-17626:


In the CBO design spec we posted in 
https://issues.apache.org/jira/browse/SPARK-16026,
we illustrated a Multi-way Join Ordering Optimization algorithm using dynamic 
programming technique.  This algorithm should be able to pick up the best join 
re-ordering plan. It is possible that the search space is big.  We need some 
heuristics to reduce the search space. 

As Zhenhua pointed out, we can identify all the primary-key/foreign-key joins 
as we collect number of distinct values to infer whether or not a join column 
is a primary key.  If a join relation has primary key join column, then it is a 
dimension table.  If a join relation has foreign key columns, then it is a fact 
table.  Once a fact table is identified, we form a star schema by finding out 
all the dimension tables that have join conditions with the given fact table.

As for the selectivity hint, we do not need selectivity hint to deal with 
comparison expression like:
  column_nameconstant_value
where a comparison operator is =, <, <=, >, >=, etc. 
This is because, with the histogram we are implementing now in CBO, we can find 
the filtering selectivity properly.  However, for the following cases, a 
selectivity hint will be helpful.

Case 1:
  WHERE o_comment not like '%special%request%'  /* TPC-H Q13 */
Histogram cannot provide such detailed statistics information for a string 
pattern which can a complex regular expression.

Case 2:
  WHERE l_commitdate < l_receiptdate /* TPC-H Q4 */
Today we define one-dimensional histogram to keep track the data distribution 
of a single column.  We do not handle the non-equal relationship between two 
columns.


> TPC-DS performance improvements using star-schema heuristics
> 
>
> Key: SPARK-17626
> URL: https://issues.apache.org/jira/browse/SPARK-17626
> Project: Spark
>  Issue Type: Umbrella
>  Components: SQL
>Affects Versions: 2.1.0
>Reporter: Ioana Delaney
>Priority: Critical
> Attachments: StarSchemaJoinReordering.pptx
>
>
> *TPC-DS performance improvements using star-schema heuristics*
> \\
> \\
> TPC-DS consists of multiple snowflake schema, which are multiple star schema 
> with dimensions linking to dimensions. A star schema consists of a fact table 
> referencing a number of dimension tables. Fact table holds the main data 
> about a business. Dimension table, a usually smaller table, describes data 
> reflecting the dimension/attribute of a business.
> \\
> \\
> As part of the benchmark performance investigation, we observed a pattern of 
> sub-optimal execution plans of large fact tables joins. Manual rewrite of 
> some of the queries into selective fact-dimensions joins resulted in 
> significant performance improvement. This prompted us to develop a simple 
> join reordering algorithm based on star schema detection. The performance 
> testing using *1TB TPC-DS workload* shows an overall improvement of *19%*. 
> \\
> \\
> *Summary of the results:*
> {code}
> Passed 99
> Failed  0
> Total q time (s)   14,962
> Max time1,467
> Min time3
> Mean time 145
> Geomean44
> {code}
> *Compared to baseline* (Negative = improvement; Positive = Degradation):
> {code}
> End to end improved (%)  -19% 
> Mean time improved (%)   -19%
> Geomean improved (%) -24%
> End to end improved (seconds)  -3,603
> Number of queries improved (>10%)  45
> Number of queries degraded (>10%)   6
> Number of queries unchanged48
> Top 10 queries improved (%)  -20%
> {code}
> Cluster: 20-node cluster with each node having:
> * 10 2TB hard disks in a JBOD configuration, 2 Intel(R) Xeon(R) CPU E5-2680 
> v2 @ 2.80GHz processors, 128 GB RAM, 10Gigabit Ethernet.
> * Total memory for the cluster: 2.5TB
> * Total storage: 400TB
> * Total CPU cores: 480
> Hadoop stack: IBM Open Platform with Apache Hadoop v4.2. Apache Spark 2.0 GA
> Database info:
> * Schema: TPCDS 
> * Scale factor: 1TB total space
> * Storage format: Parquet with Snappy compression
> Our investigation and results are included in the attached document.
> There are two parts to this improvement:
> # Join reordering using star schema detection
> # New selectivity hint to specify the selectivity of the predicates over base 
> tables. Selectivity hint is optional and it was not used in the above TPC-DS 
> tests. 
> \\



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional 

[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-09-07 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15472000#comment-15472000
 ] 

Ron Hu commented on SPARK-16026:


Hi Srinath, Thank you for your comments. Let me answer them one by one. 
First, we should consider the data shuffle cost. Yes, this is part of phase 2 
cost functions in our plan. As we already implemented the phase 1 cost 
function, we want to contribute our existing development work to Spark 
community ASAP. We will expand to phase 2 CBO work soon. In phase 2, we will 
develop cost function for each execution operator. The EXCHANGE operator is one 
we need to define its cost function. Your suggestion is quite reasonable.

Second, we define two statements: (1) ANALYZE TABLE table_name COMPUTE 
STATISTICS; (2) ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS 
column-name1, column-name2, …. As you know, the ANALYZE TABLE command collects 
the auxiliary statistics information. A good DBA needs to monitor the status of 
the statistics information. I mean there always exists an issue whether or not 
the statistics data is stale. Hence, we do not want to use the transaction 
criteria to view statistics data. On the other hand, we may do a little better 
to make them consistent. One way is to refresh table level statistics when we 
execute the command "ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS 
column-name1, column-name2, …. " to collect column level statistics. 

Third, we do not have default selectivity assumed. In the design spec, we 
defined how to estimate the cardinality for logical AND operator in section 6. 
In the future, we may use either 2-dimensional histogram and/or SQL hint to 
handle the correlation among multiple correlated columns. 


> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Issue Comment Deleted] (SPARK-16026) Cost-based Optimizer framework

2016-09-07 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Comment: was deleted

(was: Hi Srinath,  Thank you for your comments.  Let me answer them one by one. 
 
First, we should consider the data shuffle cost.  Yes, this is part of phase 2 
cost functions in our plan.  As we already implemented the phase 1 cost 
function, we want to contribute our existing development work to Spark 
community ASAP.  We will expand to phase 2 CBO work soon.  In phase 2, we will 
develop cost function for each execution operator.  The EXCHANGE operator is 
one we need to define its cost function.  Your suggestion is quite reasonable.

Second, we define two statements: (1)  ANALYZE TABLE table_name COMPUTE 
STATISTICS; (2) ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS 
column-name1, column-name2, ….  As you know, the ANALYZE TABLE command collects 
the auxiliary statistics information.  A good DBA needs to monitor the status 
of the statistics information.  I mean there always exists an issue whether or 
not the statistics data is stale.  Hence, we do not want to use the transaction 
criteria to view statistics data.   On the other hand, we may do a little 
better to make them consistent.  One way is to refresh table level statistics 
when we execute the command "ANALYZE TABLE table_name COMPUTE STATISTICS FOR 
COLUMNS column-name1, column-name2, …. " to collect column level statistics.  

Third, we do not have default selectivity assumed.  In the design spec, we 
defined how to estimate the cardinality for logical AND operator in section 6.  
In the future, we may use either 2-dimensional histogram and/or SQL hint to 
handle the correlation among multiple correlated columns.  )

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-09-07 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15471986#comment-15471986
 ] 

Ron Hu commented on SPARK-16026:


Hi Srinath,  Thank you for your comments.  Let me answer them one by one.  
First, we should consider the data shuffle cost.  Yes, this is part of phase 2 
cost functions in our plan.  As we already implemented the phase 1 cost 
function, we want to contribute our existing development work to Spark 
community ASAP.  We will expand to phase 2 CBO work soon.  In phase 2, we will 
develop cost function for each execution operator.  The EXCHANGE operator is 
one we need to define its cost function.  Your suggestion is quite reasonable.

Second, we define two statements: (1)  ANALYZE TABLE table_name COMPUTE 
STATISTICS; (2) ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS 
column-name1, column-name2, ….  As you know, the ANALYZE TABLE command collects 
the auxiliary statistics information.  A good DBA needs to monitor the status 
of the statistics information.  I mean there always exists an issue whether or 
not the statistics data is stale.  Hence, we do not want to use the transaction 
criteria to view statistics data.   On the other hand, we may do a little 
better to make them consistent.  One way is to refresh table level statistics 
when we execute the command "ANALYZE TABLE table_name COMPUTE STATISTICS FOR 
COLUMNS column-name1, column-name2, …. " to collect column level statistics.  

Third, we do not have default selectivity assumed.  In the design spec, we 
defined how to estimate the cardinality for logical AND operator in section 6.  
In the future, we may use either 2-dimensional histogram and/or SQL hint to 
handle the correlation among multiple correlated columns.  

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Attachment: Spark_CBO_Design_Spec.pdf

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Attachment: (was: Spark_CBO_Design_Spec_v_1_2.pdf)

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Attachment: Spark_CBO_Design_Spec_v_1_2.pdf

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Attachment: (was: Spark_CBO_Design_Spec_v_1_2.pdf)

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15422375#comment-15422375
 ] 

Ron Hu commented on SPARK-16026:


Design Specification of Spark Cost-Based Optimization is now posted.

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Issue Comment Deleted] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Comment: was deleted

(was: I will post a pdf version of the design spec soon.)

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Issue Comment Deleted] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Comment: was deleted

(was: Design Specification of Spark Cost-Based Optimization)

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu updated SPARK-16026:
---
Attachment: Spark_CBO_Design_Spec_v_1_2.pdf

Design Specification of Spark Cost-Based Optimization

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
> Attachments: Spark_CBO_Design_Spec_v_1_2.pdf
>
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15422346#comment-15422346
 ] 

Ron Hu commented on SPARK-16026:


I will post a pdf version of the design spec soon.

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-16026) Cost-based Optimizer framework

2016-08-16 Thread Ron Hu (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-16026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15422332#comment-15422332
 ] 

Ron Hu commented on SPARK-16026:


Sean, I wrote "Design Specification of Spark Cost-Based Optimization" last 
month and it has been reviewed by Databricks folks like Reynold Xin, Michael 
Armbrust, Herman, etc.  It is a Google document managed by Reynold.  I will 
post a pdf version of this design document soon.  I create subtasks for this 
jira because we will begin checking in code in the coming month.

> Cost-based Optimizer framework
> --
>
> Key: SPARK-16026
> URL: https://issues.apache.org/jira/browse/SPARK-16026
> Project: Spark
>  Issue Type: New Feature
>  Components: SQL
>Reporter: Reynold Xin
>
> This is an umbrella ticket to implement a cost-based optimizer framework 
> beyond broadcast join selection. This framework can be used to implement some 
> useful optimizations such as join reordering.
> The design should discuss how to break the work down into multiple, smaller 
> logical units. For example, changes to statistics class, system catalog, cost 
> estimation/propagation in expressions, cost estimation/propagation in 
> operators can be done in decoupled pull requests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Closed] (SPARK-16990) Define the data structure to hold the statistics for CBO

2016-08-16 Thread Ron Hu (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-16990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ron Hu closed SPARK-16990.
--
Resolution: Duplicate

> Define the data structure to hold the statistics for CBO
> 
>
> Key: SPARK-16990
> URL: https://issues.apache.org/jira/browse/SPARK-16990
> Project: Spark
>  Issue Type: Sub-task
>  Components: Optimizer
>Affects Versions: 2.1.0
>Reporter: Ron Hu
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



  1   2   >