You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`selector.allow`| array[string]|_(empty)_| Include only metrics matching these patterns (simple patterns: `*` and `?` wildcards). |
327
+
|`selector.deny`| array[string]|_(empty)_| Exclude metrics matching these patterns (simple patterns: `*` and `?` wildcards). |
328
+
|`autogen.enabled`| bool |`false`| Create charts for metrics not matched by any template dimension. |
329
+
|`autogen.rules`| array[rule]|_(absent)_| Conditional fallback selectors. Each rule requires `scope` and non-empty `selector`. |
330
+
|`autogen.max_type_id_len`| int |`0` (=1200) | Max full `type.id` length. Must be `0` or `>= 4`. |
331
+
|`autogen.expire_after_success_cycles`| uint64 |`0`| Remove autogenerated charts not seen for N successful cycles (`0` = never). |
318
332
319
333
**When to use autogen**: For collectors like Nagios plugins where the set of metrics is unpredictable and user-defined. The engine creates a chart for every unmatched metric automatically.
320
334
335
+
Each `autogen.rules[]` item has this shape:
336
+
337
+
```yaml
338
+
scope: "app_*"# Netdata simple-pattern expression over source families
339
+
selector:
340
+
allow: ['{environment="prod"}']
341
+
deny: ["app_debug_*"]
342
+
```
343
+
344
+
An absent, null, or empty `autogen.rules` value means no conditional fallback rules.
345
+
346
+
Rules run only after every authored dimension selector has had a chance to route the flattened series. A rule applies
347
+
when `scope` matches the resolved source family. If no rule applies, fallback is permitted. When several rules apply,
348
+
every selector must accept the series; one rejection suppresses fallback, independent of rule order. Within one
349
+
selector, `allow` defaults to all, `deny` defaults to none, and the result is `allow AND NOT deny`.
350
+
351
+
The selector receives the source family as `__name__` plus the flattened series' complete label view. Histogram and
352
+
summary components use their base family (`foo`, not `foo_bucket`/`foo_sum`/`foo_count`) and preserve structural labels
353
+
such as `le` and `quantile`; StateSet state labels and MeasureSet `measure_field` are also visible. Therefore, an
354
+
authored heatmap for `foo_bucket` still materializes when a rule rejects `foo`, while unmatched `foo_sum` and
355
+
`foo_count`fallback charts are suppressed. Rules change chart generation only; the series remains in the metric
356
+
store.
357
+
321
358
**Example: Nagios collector with autogeneration**
322
359
323
360
```yaml
@@ -1059,6 +1096,8 @@ All rules below produce semantic validation errors unless noted:
1059
1096
| `label_promotion[]` entries must not be empty or whitespace-only | semantic |
1060
1097
| Lifecycle numeric fields must be `>= 0` | semantic |
1061
1098
| `engine.autogen.max_type_id_len` must be `0` or `>= 4` | semantic |
1099
+
| Every autogen rule requires a non-empty valid `scope` simple pattern | semantic |
1100
+
| Every autogen rule selector requires at least one non-empty valid `allow`/`deny` entry | semantic |
| `DecodeYAML([]byte) (*Spec, error)` | Strict parse, apply decode-time defaults, then validate. The canonical read path. |
1127
+
| `DecodeYAMLValidated([]byte) (*Spec, Validation, error)` | Decode plus immutable derived validation artifacts for runtime consumers such as chartengine. |
1128
+
| `Group.Clone() Group` | Typed deep copy of a group and everything nested under it. |
1129
+
| `Spec.MarshalTemplate() (string, error)` | Validate (only) and serialize a runtime-built template to YAML. |
| adcs.cert_signed_certificate_timestamp_list_processing_time |Certificate last Signed Certificate Timestamp List process time |processing_time | seconds |
151
+
| adcs.cert_retrieval_processing_time |Certificate last retrieval processing time |processing_time | seconds |
0 commit comments