Myasuka commented on a change in pull request #16447:
URL: https://github.com/apache/flink/pull/16447#discussion_r671960538



##########
File path: 
flink-runtime-web/web-dashboard/src/app/pages/job/checkpoints/job-checkpoints.component.html
##########
@@ -193,15 +193,74 @@
             <td>{{ checkPointStats['summary']['state_size']['avg'] | 
humanizeBytes }}</td>
             <td>{{ checkPointStats['summary']['processed_data']['avg'] | 
humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['avg'] | 
humanizeBytes }})</td>
           </tr>
-          <tr>
-            <td><strong>Maximum</strong></td>
-            <td>{{ checkPointStats['summary']['end_to_end_duration']['max'] | 
humanizeDuration}}</td>
-            <td>{{ checkPointStats['summary']['state_size']['max'] | 
humanizeBytes }}</td>
-            <td>{{ checkPointStats['summary']['processed_data']['max'] | 
humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['max'] | 
humanizeBytes }})</td>
-          </tr>
+            <tr>
+                <td><strong>Maximum</strong></td>
+                <td>{{ 
checkPointStats['summary']['end_to_end_duration']['max'] | 
humanizeDuration}}</td>
+                <td>{{ checkPointStats['summary']['state_size']['max'] | 
humanizeBytes }}</td>
+                <td>{{ checkPointStats['summary']['processed_data']['max'] | 
humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['max'] | 
humanizeBytes }})</td>
+            </tr>
         </ng-container>
       </tbody>
     </nz-table>
+
+    <nz-collapse>
+        <nz-collapse-panel
+                [nzHeader]="'Percentiles'"
+                [nzActive]="moreDetailsPanel.active"
+                [nzDisabled]="moreDetailsPanel.disabled">
+            <nz-table
+                    *ngIf="checkPointStats"
+                    class="no-border small"
+                    
[nzData]="(checkPointStats&&checkPointStats['summary'])?['']:[]"
+                    [nzSize]="'small'"
+                    [nzFrontPagination]="false"
+                    [nzShowPagination]="false">
+                <thead>
+                <tr>
+                    <th></th>
+                    <th><strong>End to End Duration</strong></th>
+                    <th><strong>Checkpointed Data Size</strong></th>
+                    <th><strong>Processed (persisted) in-flight 
data</strong></th>
+                </tr>
+                </thead>
+                <tbody>
+                <ng-container *ngIf="checkPointStats['summary']">
+                <tr>
+                    <td><strong>50% percentile</strong></td>
+                    <td>{{ 
checkPointStats['summary']['end_to_end_duration']['p50'] | 
humanizeDuration}}</td>
+                    <td>{{ checkPointStats['summary']['state_size']['p50'] | 
humanizeBytes }}</td>
+                    <td>{{ checkPointStats['summary']['processed_data']['p50'] 
| humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['p50'] | 
humanizeBytes }})</td>
+                </tr>
+                <tr>
+                    <td><strong>90% percentile</strong></td>
+                    <td>{{ 
checkPointStats['summary']['end_to_end_duration']['p90'] | 
humanizeDuration}}</td>
+                    <td>{{ checkPointStats['summary']['state_size']['p90'] | 
humanizeBytes }}</td>
+                    <td>{{ checkPointStats['summary']['processed_data']['p90'] 
| humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['p90'] | 
humanizeBytes }})</td>
+                </tr>
+                <tr>
+                    <td><strong>99% percentile</strong></td>
+                    <td>{{ 
checkPointStats['summary']['end_to_end_duration']['p99'] | 
humanizeDuration}}</td>
+                    <td>{{ checkPointStats['summary']['state_size']['p99'] | 
humanizeBytes }}</td>
+                    <td>{{ checkPointStats['summary']['processed_data']['p99'] 
| humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['p99'] | 
humanizeBytes }})</td>
+                </tr>
+                <tr>
+                    <td><strong>99% percentile</strong></td>
+                    <td>{{ 
checkPointStats['summary']['end_to_end_duration']['p99'] | 
humanizeDuration}}</td>
+                    <td>{{ checkPointStats['summary']['state_size']['p99'] | 
humanizeBytes }}</td>
+                    <td>{{ checkPointStats['summary']['processed_data']['p99'] 
| humanizeBytes }} ({{ checkPointStats['summary']['persisted_data']['p99'] | 
humanizeBytes }})</td>
+                </tr>
+                <tr>
+                    <td><strong>99.9% percentile</strong></td>

Review comment:
       I wonder will `99.9%` really mater here. Since the number of tasks of 
checkpoint cannot be too large in most cases. The difference of `99%` between 
`99.9%` might only been seen when we have tasks more than 1000.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

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

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to