forked from swisspost/gateleen
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gateleen_qos_schema_config
95 lines (95 loc) · 2.39 KB
/
gateleen_qos_schema_config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"config": {
"description": "global configuration values",
"$ref": "#/definitions/Config"
},
"sentinels": {
"description": "sentinels configuration",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Sentinel"
}
},
"rules": {
"description": "rules configuration",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Rule"
}
}
},
"required": [
"config"
],
"additionalProperties": false,
"definitions": {
"Config": {
"properties": {
"percentile" : {
"description" : "percentile to use from metrics",
"type" : "integer",
"enum" : [50, 75, 95, 98, 99, 999]
},
"quorum" : {
"description" : "percentage of sentinels where threshold is exceeded",
"type" : "integer",
"minimum": 0,
"maximum": 100
},
"period": {
"description": "time in seconds after which calculation is renewed",
"type" : "integer",
"minimum": 1
},
"minSampleCount": {
"description": "minimal count of samples for a sentinel to activate calculation",
"type" : "integer"
},
"minSentinelCount": {
"description": "minimal count of sentinels required to perform calculation",
"type" : "integer"
}
},
"required": [
"percentile",
"quorum",
"period",
"minSampleCount",
"minSentinelCount"
],
"additionalProperties": false
},
"Sentinel": {
"properties": {
"percentile" : {
"description" : "override global percentile to use from metrics",
"type" : "integer",
"enum" : [50, 75, 95, 98, 99, 999]
},
"minLowestPercentileValueMs" : {
"description" : "the minimum lowest percentile value to use as reference value",
"type" : "number",
"minimum": 0.001
}
},
"additionalProperties": false
},
"Rule": {
"properties": {
"warn" : {
"description" : "ratio to log a warning when exceeded",
"type" : "number",
"minimum": 0
},
"reject" : {
"description" : "ratio to reject request when exceeded",
"type" : "number",
"minimum": 0
}
},
"additionalProperties": false
}
}
}