UNPKG

2.96 kBMarkdownView Raw
1# Glossary of Terms
2
3<!-- TODO define these as well
4### Acceptance
5(see also [Sampling](#sampling))
6
7### Artillery
8see https://artillery.io/
9
10### Arrival
11see https://artillery.io/docs/script-reference/#script-reference
12
13### Burn
14
15### Load
16
17### Monitoring
18(see also [Sampling](#sampling))
19
20### Performance
21-->
22
23### Sampling
24
25We use [this term](https://www.merriam-webster.com/dictionary/sampling) in the scientific sense.
26
27The population from which we collect samples is the service's responses. We generate synthetic requests (via artillery) and observe the responses to them as our collected samples. Rather than attempting to collect a representative sample that would be senstive to service volume, we collect a deterministic number of samples. You can imagine a scientist collecting water samples from a river at regular intervals to monitor ecosystem health. The number of collected samples is sentive not to the higher and lower flows occurring across seasons but to a regular scheduled collection.
28
29Once these samples are taken, they must be evaluated. In the case of collecting water sample from a river, you might test the water to detect impurity levels and evaluate them relative to normal or desired levels. With your service, we depend on either the artillery ["match" feature](https://github.com/shoreditch-ops/artillery/blob/master/core/lib/engine_util.js#L318) or an artillery plugin that will add or augment an error attribute to the artillery report for evaluating the service's responses. An example of this section in a yml report might look like:
30
31```yml
32error:
33 403: 2
34 500: 1
35```
36
37The error type counts are summed and compared to the configured error budget. If the number of errors observed exceeds the budget, an alert is sent as per configuration. (to alter this behavior, you will need to change the logic in `taskResult.js`)
38
39If you accept defaults, the actual number of samples depends on the mode that you use. Acceptance mode has a default of 1 sample. Monitoring mode, on the other hand, has a default of 5 samples. Whenever you are taking more than one sample, those samples are spread over time with dither in order to avoid damaging results from harmonic effects. Each sample is preceeded by a pause. The amount of time of that pause is determined by an average pause (in seconds) that is augmented with random variance (also in seconds) either before or after the average.
40
41Example sampling configuration (defaults reflect monitoring mode):
42```
43sampling:
44 size: 5 # The size of sample set
45 averagePause: 5 # The average number of seconds to pause between samples
46 pauseVariance: 2 # The maximum difference of the actual pause from the average pause (in either direction)
47 errorBudget: 4 # The number of observed errors to accept before alerting
48```
49
50<!-- TODO define these as well
51### Serverless
52(see also [Serverless Framework](#serverless-framework))
53
54### Serverless Framework
55-->