Without this change, every individual FEATURE() declaration would have
an individual metric in Prometheus. Though this wouldn't be harmful, it
would look very cluttered.
By letting it use a single metric with the name of the feature attached
as a label, it also becomes easier to search, as you can apply regex
matching, etc.
Reviewed by: cem
Differential Revision: https://reviews.freebsd.org/D8775
* A macro to generate a read-only sysctl to indicate the presence of optional
* kernel features.
*/
-#define FEATURE(name, desc) \
- SYSCTL_INT(_kern_features, OID_AUTO, name, CTLFLAG_RD | CTLFLAG_CAPRD, \
- SYSCTL_NULL_INT_PTR, 1, desc)
+#define FEATURE(name, desc, label) \
+ SYSCTL_INT_WITH_LABEL(_kern_features, OID_AUTO, name, \
+ CTLFLAG_RD | CTLFLAG_CAPRD, SYSCTL_NULL_INT_PTR, 1, desc, "feature")
#endif /* _KERNEL */