Skip to content

Commit 1aa3ac7

Browse files
Adds Execution summary spec. Related to #152 (#177)
1 parent d04ff18 commit 1aa3ac7

File tree

1 file changed

+178
-0
lines changed

1 file changed

+178
-0
lines changed

specs/execution-summary.md

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
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

Comments
 (0)