[FEATURE]
veso0308 opened this issue · comments
Summary
Add support for monitoring multiple Oracle database instances remotely from a single exporter instance, similar to the "multi-agent" feature available in the Postgres exporter. This would allow a single exporter to collect metrics across different databases without deploying one exporter per database.
Motivation
Currently, to monitor multiple Oracle databases, a separate exporter must be deployed for each instance. This increases operational complexity, resource usage, and maintenance overhead—especially in environments where dozens or even hundreds of databases must be monitored.
A centralized, multi-target exporter would:
- Simplify deployment and configuration.
- Reduce container/VM resource consumption.
- Make scaling Prometheus monitoring of Oracle databases more manageable.
Proposed Solution
- Implement a /probe endpoint that accepts connection parameters (e.g., host, port, service/SID, credentials reference) via query string or configuration mapping.
- The exporter would connect to the specified database at scrape time, fetch metrics, and expose them with proper labels (e.g., db_instance, db_host).
- Support secure configuration management (e.g., mapping labels to credential files or secret stores, rather than passing raw passwords in scrape configs).
Example Prometheus scrape config (illustrative):
- job_name: 'oracle-db'
metrics_path: /probe
static_configs:
- targets:
- db1.example.com:1521/ORCL
- db2.example.com:1521/SALES
params:
user: [monitor_user]
password: [secret_ref]
Alternatives Considered
Additional Context
Currently, to monitor multiple Oracle databases, a separate exporter must be deployed for each instance. This increases operational complexity, resource usage, and maintenance overhead—especially in environments where dozens or even hundreds of databases must be monitored.
This is not the case: Since version 2.0.0, the Oracle Database Metrics Exporter can concurrently monitor multiple databases from a single instance, using inst_id and database labels per metric. See: https://oracle.github.io/oracle-db-appdev-monitoring/docs/configuration/multiple-databases