A Prometheus exporter for Oracle. All requests are launched in parallel processes and do not block the HTTP entry point of Prometheus.
From the very beginning, you need to create a configuration file with a list of all connections and all the requests that you need, an example file in config.yaml.template.
Just copy to config.yaml and fill it.
You can run via Docker using an existing image. If you don't already have an Oracle server, you can run one locally in a container and then link the exporter to it.
docker run -d --name oracle -p 1521:1521 wnameless/oracle-xe-11g:16.04
docker run -d -v /Users/username/prometheus_oracle/config.yaml:/config.yaml --name prometheus_oracle --link=oracle -p 9101:9101 juev/prometheus_oracle
Or just:
docker run --rm -v /Users/username/prometheus_oracle/config.yaml:/config.yaml --name prometheus_oracle -p 9101:9101 juev/prometheus_oracle
The following metrics are exposed currently.
Example:
# HELP oracledb_exporter_dbmetric Value of Business metrics from Database
# TYPE oracledb_exporter_dbmetric gauge
oracledb_exporter_dbmetric{database="DB1",name="metric1"} 1.59862528e+06
oracledb_exporter_dbmetric{database="DB1",name="metric2"} 0
# HELP oracledb_exporter_query_duration_seconds Duration of the query in seconds
# TYPE oracledb_exporter_query_duration_seconds gauge
oracledb_exporter_query_duration_seconds{database="DB1",name="metric1"} 0.005608735
oracledb_exporter_query_duration_seconds{database="DB1",name="metric2"} 0.008431937
oracledb_exporter_query_duration_seconds{database="DB2",name="metric3"} 0.031262699
oracledb_exporter_query_duration_seconds{database="DB2",name="metric4"} 0.01056187
oracledb_exporter_query_duration_seconds{database="DB2",name="metric5"} 0.006411418
oracledb_exporter_query_duration_seconds{database="DB2",name="metric6"} 0.00876666
oracledb_exporter_query_duration_seconds{database="DB2",name="metric7"} 0.027751112
oracledb_exporter_query_duration_seconds{database="DB2",name="metric8"} 0.008800151
oracledb_exporter_query_duration_seconds{database="DB2",name="metric9"} 0.012350262
# HELP oracledb_exporter_query_error Result of last query, 1 if we have errors on running query
# TYPE oracledb_exporter_query_error gauge
oracledb_exporter_query_error{database="DB1",name="metric1"} 0
oracledb_exporter_query_error{database="DB1",name="metric2"} 0
oracledb_exporter_query_error{database="DB2",name="metric3"} 0
oracledb_exporter_query_error{database="DB2",name="metric4"} 0
oracledb_exporter_query_error{database="DB2",name="metric5"} 0
oracledb_exporter_query_error{database="DB2",name="metric6"} 0
oracledb_exporter_query_error{database="DB2",name="metric7"} 0
oracledb_exporter_query_error{database="DB2",name="metric8"} 0
oracledb_exporter_query_error{database="DB2",name="metric9"} 0
# HELP oracledb_exporter_up Database status
# TYPE oracledb_exporter_up gauge
oracledb_exporter_up{database="DB1"} 1
oracledb_exporter_up{database="DB2"} 1
# Host, default value `0.0.0.0` (optional)
host: 0.0.0.0
# Port, default value `9101` (optional)
port: 9101
# QueryTimeout, default value `30` in seconds (optional)
queryTimeout: 5
# Array of databases and queries
databases:
# Host, default value `127.0.0.1`, hostname for DB (optional)
- host: 'dummy'
# User (required)
user: dummy
# Port, default value `1522` (optional)
port: 1522
# Password (required)
password: 'password'
# Database name (required)
database: dummy
# MaxIdleConns, default value `10` (optional)
maxIdleConns: 10
# MaxOpenConns, default value `10` (optional)
maxOpenConns: 10
# Aray of queries
queries:
# SQL, query (required)
- sql: "select numbers1 from dummy"
# SQL name (required)
name: value1
# Interval between queries, default value `1` in minites (optional)
interval: 1
Content type
Image
Digest
Size
155.8 MB
Last updated
almost 6 years ago
docker pull juev/prometheus_oracle