|
| 1 | +# Execution summary |
| 2 | + |
| 3 | +Execution summary gives users a quick overview of the requests intercepted by the proxy and metrics about the number and types of requests messages logged by the proxy. This feature retrieves information about requests from [recorded request logs](./recording-requests.md). |
| 4 | + |
| 5 | +## History |
| 6 | + |
| 7 | +| Version | Date | Comments | Author | |
| 8 | +| ------- | ---- | -------- | ------ | |
| 9 | +| 1.0 | 2023-02-15 | Initial specifications | @waldekmastykarz | |
| 10 | + |
| 11 | +## Implementation |
| 12 | + |
| 13 | +### Information source |
| 14 | + |
| 15 | +Execution summary is a proxy plugin subscribed to the `RecordingStopped` event emitted by the request logs recorder. This event contains information about the request log messages captured during the recording session. The execution summary plugin uses this information to generate a summary of the requests captured during the recording session. The summary uses Markdown syntax to format the output. |
| 16 | + |
| 17 | +### Configuration |
| 18 | + |
| 19 | +Setting|Option|Description |
| 20 | +-------|-----------------|----------- |
| 21 | +`filePath`|`--summary-file-path`|Path to the file where the summary should be saved. If not specified, the summary will be printed to the console. Path can be absolute or relative to the current working directory. Default: empty. |
| 22 | +`groupBy`|`--summary-group-by`|Specifies how the information should be grouped in the summary. Available options: `url` (default), `messageType`. |
| 23 | + |
| 24 | +### Type of information |
| 25 | + |
| 26 | +Execution summary contains the following information: |
| 27 | + |
| 28 | +- Summary title (fixed) |
| 29 | +- Date and time of the recording session |
| 30 | +- Groups as specified by the `groupBy` configuration option: |
| 31 | + - if grouped by URL: |
| 32 | + - List of requests captured during the recording session sorted alphabetically. For each request: |
| 33 | + - Request method |
| 34 | + - Request URL |
| 35 | + - List of unique request log messages for this request issued by the proxy, grouped and sorted by severity, along with the number of occurrences. Excluding the `InterceptedRequest` and `PassedThrough` severity. |
| 36 | + - if grouped by message type: |
| 37 | + - List of severities sorted by severity level. For each severity: |
| 38 | + - Severity name |
| 39 | + - List of unique URLs logged for this severity sorted alphabetically, along with the number of occurrences |
| 40 | +- Summary |
| 41 | + - Total number of requests captured |
| 42 | + - For each type of request log message: |
| 43 | + - Number of requests with this type of request log message |
| 44 | + |
| 45 | +### Sample summary |
| 46 | + |
| 47 | +#### Grouped by URL |
| 48 | + |
| 49 | +```md |
| 50 | +# Microsoft Graph Developer Proxy execution summary |
| 51 | + |
| 52 | +Date: 2023-02-06 12:00:00 |
| 53 | + |
| 54 | +## Requests |
| 55 | + |
| 56 | +### GET https://graph.microsoft.com/v1.0/me |
| 57 | + |
| 58 | +#### Warning |
| 59 | + |
| 60 | +- (10) To improve performance of your application, use the $select parameter. ore info at https://learn.microsoft.com/graph/query-parameters#select-parameter |
| 61 | + |
| 62 | +#### Tip |
| 63 | + |
| 64 | +- (22) To handle API errors more easily, use the Graph SDK. More info at https://aka.ms/move-to-graph-js-sdk |
| 65 | + |
| 66 | +#### Failed |
| 67 | + |
| 68 | +- (1) Calling https://graph.microsoft.com/v1.0/me again before waiting for the Retry-After period. Request will be throttled |
| 69 | + |
| 70 | +#### Chaos |
| 71 | + |
| 72 | +- (15) 503 ServiceUnavailable |
| 73 | +- (20) 429 TooManyRequests |
| 74 | +- (10) 500 InternalServerError |
| 75 | + |
| 76 | +#### Mocked |
| 77 | + |
| 78 | +### GET https://graph.microsoft.com/v1.0/me/users |
| 79 | + |
| 80 | +#### Warning |
| 81 | + |
| 82 | +- (10) To improve performance of your application, use the $select parameter. ore info at https://learn.microsoft.com/graph/query-parameters#select-parameter |
| 83 | + |
| 84 | +#### Tip |
| 85 | + |
| 86 | +- (22) To handle API errors more easily, use the Graph SDK. More info at https://aka.ms/move-to-graph-js-sdk |
| 87 | + |
| 88 | +#### Failed |
| 89 | + |
| 90 | +- (1) Calling https://graph.microsoft.com/v1.0/me/users again before waiting for the Retry-After period. Request will be throttled |
| 91 | + |
| 92 | +#### Chaos |
| 93 | + |
| 94 | +- (15) 503 ServiceUnavailable |
| 95 | +- (20) 429 TooManyRequests |
| 96 | +- (10) 500 InternalServerError |
| 97 | + |
| 98 | +#### Mocked |
| 99 | + |
| 100 | +## Summary |
| 101 | + |
| 102 | +Category|Count |
| 103 | +--------|----: |
| 104 | +Requests intercepted|100 |
| 105 | +Requests passed through|10 |
| 106 | +Requests with chaos|80 |
| 107 | +Requests mocked|10 |
| 108 | +Tips|120 |
| 109 | +Warnings|30 |
| 110 | +Failures|5 |
| 111 | +``` |
| 112 | + |
| 113 | +#### Grouped by message type |
| 114 | + |
| 115 | +```md |
| 116 | +# Microsoft Graph Developer Proxy execution summary |
| 117 | + |
| 118 | +Date: 2023-02-06 12:00:00 |
| 119 | + |
| 120 | +## Message types |
| 121 | + |
| 122 | +### Requests intercepted |
| 123 | + |
| 124 | +- (10) GET https://graph.microsoft.com/v1.0/me |
| 125 | +- (30) GET https://graph.microsoft.com/v1.0/me/messages |
| 126 | +- (12) GET https://graph.microsoft.com/v1.0/me/users |
| 127 | + |
| 128 | +### Requests passed through |
| 129 | + |
| 130 | +- (10) GET https://graph.microsoft.com/v1.0/me |
| 131 | + |
| 132 | +### Requests with chaos |
| 133 | + |
| 134 | +#### 429 TooManyRequests |
| 135 | + |
| 136 | +- (64) GET https://graph.microsoft.com/v1.0/me |
| 137 | +- (32) GET https://graph.microsoft.com/v1.0/me/users |
| 138 | + |
| 139 | +#### 500 InternalServerError |
| 140 | + |
| 141 | +- (33) GET https://graph.microsoft.com/v1.0/me |
| 142 | + |
| 143 | +### Requests mocked |
| 144 | + |
| 145 | +#### https://graph.microsoft.com/v1.0/me/* |
| 146 | + |
| 147 | +- (23) GET https://graph.microsoft.com/v1.0/me/messages |
| 148 | + |
| 149 | +### Tips |
| 150 | + |
| 151 | +#### To handle API errors more easily, use the Graph SDK. More info at https://aka.ms/move-to-graph-js-sdk |
| 152 | + |
| 153 | +- (14) GET https://graph.microsoft.com/v1.0/me |
| 154 | + |
| 155 | +### Warnings |
| 156 | + |
| 157 | +#### To improve performance of your application, use the $select parameter. ore info at https://learn.microsoft.com/graph/query-parameters#select-parameter |
| 158 | + |
| 159 | +- (23) GET https://graph.microsoft.com/v1.0/me |
| 160 | + |
| 161 | +### Failures |
| 162 | + |
| 163 | +#### Calling https://graph.microsoft.com/v1.0/me again before waiting for the Retry-After period. Request will be throttled |
| 164 | + |
| 165 | +- (33) GET https://graph.microsoft.com/v1.0/me |
| 166 | + |
| 167 | +## Summary |
| 168 | + |
| 169 | +Category|Count |
| 170 | +--------|----: |
| 171 | +Requests intercepted|100 |
| 172 | +Requests passed through|10 |
| 173 | +Requests with chaos|80 |
| 174 | +Requests mocked|10 |
| 175 | +Tips|120 |
| 176 | +Warnings|30 |
| 177 | +Failures|5 |
| 178 | +``` |
0 commit comments