Details
-
New Feature
-
Status: Done
-
Medium
-
Resolution: Done
-
None
-
5
-
Yes
-
Yes
-
Yes
-
No
Description
Current state
Basic matrics more expensive then enhanced metrics.
CloudWatch Logs are not always available, too, for cost or other reasons.
DoD
We should allow users to disable basic and/or enhanced metrics when RDS instance is added. That feature should be available via API and Add RDS Instance UI (as an additional checkbox).
Implementation
rds_exporter
- Add disable_basic_metrics, disable_enhanced_metrics fields to per-instance configuration.
- Do not check session and start scraper for that instance if metrics are disabled.
- Both /basic and /enhanced endpoints / Prometheus registries should still be available even if basic and enhanced metrics are disabled for all instances in the configuration.
API
- Inventory API: add flags disable_basic_metrics, disable_enhanced_metrics to RDSExporter;
- Inventory API: add flags basic_metrics_disabled, enhanced_metrics_disabled to AddRDSExporterRequest;
- Management API: add flags disable_basic_metrics, disable_enhanced_metrics to AddRDSRequest.
pmm-managed
- Add rds_basic_metrics_disabled, rds_enhanced_metrics_disabled fields into Agent model.
- Accept, save, and return those fields in all APIs.
- Include those fields in rds_exporter configuration for pmm-agent.
- Still always add /basic and /enhanced endpoints to Prometheus configuration even if all metrics are disabled.
pmm-admin
- Add flags disable-basic-metrics, disable-enhanced-metrics into pmm-admin inventory add agent rds-exporter command.
- There is no management command to add RDS instance, so nothing should be done for management commands.
UI
- Add two checkboxes on add RDS instance page / section .
DOC
- we MUST explain flags in our documentation
Discussion
- All flags and fields are called "disable"/"disabled" instead of "enable"/"enabled" to play nicely with Go and protobuf default values for booleans, and for backward compatibility.
- The ability to change enable/disable enhanced/basic metrics without removing and re-adding RDS instance (or just rds_exporter via Inventory API) is not in scope. No changes in ChangeRDSExporter Inventory API.
- Refactoring Agent model in pmm-managed to merge several different fields (query_examples_disabled, max_query_log_size, basic_metrics_disabled, etc) into a single JSON field is a separate ticket: PMM-5086
- Combining basic and enhanced metrics in a single endpoint is a separate ticket: PMM-1901
- Automatic detection of whatever basic and enhanced metrics should be enabled is out-of-scope. roma.novikov will create a separate ticket.