TaskMetrics¶
TaskMetrics
is a collection of metrics (accumulators) tracked during execution of a task.
Creating Instance¶
TaskMetrics
takes no input arguments to be created.
TaskMetrics
is created when:
Stage
is requested to makeNewStageAttempt
Metrics¶
ShuffleWriteMetrics¶
- shuffle.write.bytesWritten
- shuffle.write.recordsWritten
- shuffle.write.writeTime
ShuffleWriteMetrics
is exposed using Dropwizard metrics system using ExecutorSource (when TaskRunner
is about to finish running):
- shuffleBytesWritten
- shuffleRecordsWritten
- shuffleWriteTime
ShuffleWriteMetrics
can be monitored using:
- StatsReportListener (when a stage completes)
- shuffle bytes written
- JsonProtocol (when requested to taskMetricsToJson)
- Shuffle Bytes Written
- Shuffle Write Time
- Shuffle Records Written
shuffleWriteMetrics
is used when:
ShuffleWriteProcessor
is requested for a ShuffleWriteMetricsReporterSortShuffleWriter
is createdAppStatusListener
is requested to handle a SparkListenerTaskEndLiveTask
is requested toupdateMetrics
ExternalSorter
is requested to writePartitionedFile (to create a DiskBlockObjectWriter), writePartitionedMapOutputShuffleExchangeExec
(Spark SQL) is requested for aShuffleWriteProcessor
(to create a ShuffleDependency)
Memory Bytes Spilled¶
memoryBytesSpilled
metric
memoryBytesSpilled
is exposed using Dropwizard metrics system using ExecutorSource as memoryBytesSpilled.
incMemoryBytesSpilled
is used when:
Aggregator
is requested to updateMetricsCoGroupedRDD
is requested to computeBlockStoreShuffleReader
is requested to readShuffleExternalSorter
is requested to spillExternalSorter
is requested to writePartitionedFile and writePartitionedMapOutputUnsafeExternalSorter
is requested to createWithExistingInMemorySorter and spillSpillableIterator
(of UnsafeExternalSorter) is requested tospill
TaskContext¶
TaskMetrics
is available using TaskContext.taskMetrics.
TaskContext.get.taskMetrics
Serializable¶
TaskMetrics
is a Serializable
(Java).
Task¶
TaskMetrics
is part of Task.
task.metrics
SparkListener¶
TaskMetrics
is available using SparkListener and intercepting SparkListenerTaskEnd events.
StatsReportListener¶
StatsReportListener can be used for summary statistics at runtime (after a stage completes).
Spark History Server¶
Spark History Server uses EventLoggingListener to intercept post-execution statistics (incl. TaskMetrics
).