{
"id": "dynamic_sampling",
"schema": {
"type": "object",
"title": "",
"additionalProperties": false,
"required": ["mode", "keyExpr"],
"properties": {
"mode": {
"title": "Sample mode",
"type": "string",
"description": "Defines how sample rate will be derived: log(previousPeriodCount) or sqrt(previousPeriodCount)",
"enum": ["log", "sqrt"],
"enumNames": ["Logarithmic", "Square Root"],
"default": "log"
},
"keyExpr": {
"title": "Sample group key",
"description": "Expression used to derive sample group key. Example:`${domain}:${status}`. Each sample group will have its own derived sampling rate based on volume. Defaults to `${host}`.",
"type": "string",
"jsExpression": true,
"default": "`${host}`"
},
"samplePeriod": {
"title": "Sample period",
"description": "How often (in seconds) sample rates will be adjusted",
"type": "number",
"default": 30
},
"minEvents": {
"title": "Minimum events",
"description": "Minimum number of events that must be received in previous sample period for sampling mode to be applied to current period. If the number of events received for a sample group is less than this minimum, a sample rate of 1:1 is used.",
"type": "number",
"default": 30
},
"maxSampleRate": {
"title": "Sampling rate limit",
"description": "Maximum sampling rate. If computed sampling rate is above this value, it will be limited to this value.",
"type": "number",
"minimum": 1,
"default": 100
}
}
}
}