prometheus.exporter.oracledb
The prometheus.exporter.oracledb component embeds
oracledb_exporter for collecting statistics from a OracleDB server.
Ensure you have the following:
- Oracle Instant Client Basic installed on the system running Alloy
- Appropriate environment variables configured for Oracle Client libraries
Oracle instant client basic
When you run the standalone binary, you must install the Oracle Instant Client Basic for your operating system. Only the basic version is required for the exporter.
Note
The Alloy Docker image includes the Oracle Instant Client, so this prerequisite only applies to standalone binary installations.
Environment variables
Set the following environment variables for Oracle Client library access:
- Linux: Set
LD_LIBRARY_PATHto the Oracle Instant Client library directory - macOS (ARM): Set
DYLD_LIBRARY_PATHto the Oracle Instant Client library directory ORACLE_BASE(optional): Base directory for Oracle installationsORACLE_HOME(optional): Location of the Oracle Instant Client installationTNS_ADMIN(optional): Location of your Oracle wallet directory when using wallet authentication
Usage
prometheus.exporter.oracledb "<LABEL>" {
connection_string = "<CONNECTION_STRING>"
}Arguments
You can use the following arguments with prometheus.exporter.oracledb:
Examples of TOML metrics files can be found in the oracledb_exporter repository.
For backward compatibility, the username and password arguments can still be provided in the connection_string argument:
oracle://user:pass@host:port/service_name[?OPTION1=VALUE1[&OPTIONn=VALUEn]...]If the connection_string argument doesn’t contain the username and password, the username and password arguments must be provided.
In this case, the URL must have the format:
host:port/service_name[?OPTION1=VALUE1[&OPTIONn=VALUEn]...]Blocks
The prometheus.exporter.oracledb component doesn’t support any blocks. You can configure this component with arguments.
Exported fields
The following fields are exported and can be referenced by other components.
For example, the targets can either be passed to a discovery.relabel component to rewrite the targets’ label sets or to a prometheus.scrape component that collects the exposed metrics.
The exported targets use the configured in-memory traffic address specified by the run command.
Component health
prometheus.exporter.oracledb is only reported as unhealthy if given an invalid configuration.
In those cases, exported fields retain their last healthy values.
Debug information
prometheus.exporter.oracledb doesn’t expose any component-specific debug information.
Debug metrics
prometheus.exporter.oracledb doesn’t expose any component-specific debug metrics.
Example
The following example uses a prometheus.scrape component to collect metrics from prometheus.exporter.oracledb:
prometheus.exporter.oracledb "example" {
connection_string = "localhost:1521/orcl.localnet"
username = "<DB_USERNAME>"
password = "<DB_PASSWORD>"
}
// Configure a prometheus.scrape component to collect oracledb metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.oracledb.example.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = "<PROMETHEUS_REMOTE_WRITE_URL>"
basic_auth {
username = "<USERNAME>"
password = "<PASSWORD>"
}
}
}Replace the following:
DB_USERNAME: The database usernameDB_PASSWORD: The password for the database user<PROMETHEUS_REMOTE_WRITE_URL>: The URL of the Prometheusremote_writecompatible server to send metrics to.<USERNAME>: The username to use for authentication to theremote_writeAPI.<PASSWORD>: The password to use for authentication to theremote_writeAPI.
Compatible components
prometheus.exporter.oracledb has exports that can be consumed by the following components:
- Components that consume Targets
Note
Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.