Skip to content

Commit

Permalink
feat: config database by details
Browse files Browse the repository at this point in the history
  • Loading branch information
LawyZheng committed Dec 14, 2022
1 parent d84bc1b commit 8ccab22
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/kardianos/service"
"github.com/lawyzheng/daemon"
"github.com/lawyzheng/lyhook"
_ "github.com/sijms/go-ora/v2"
go_ora "github.com/sijms/go-ora/v2"
"github.com/sirupsen/logrus"

"github.com/prometheus/client_golang/prometheus"
Expand All @@ -35,6 +35,11 @@ var (
queryTimeout = kingpin.Flag("query.timeout", "Query timeout (in seconds). (env: QUERY_TIMEOUT)").Default(getEnv("QUERY_TIMEOUT", "5")).String()
maxIdleConns = kingpin.Flag("database.maxIdleConns", "Number of maximum idle connections in the connection pool. (env: DATABASE_MAXIDLECONNS)").Default(getEnv("DATABASE_MAXIDLECONNS", "0")).Int()
maxOpenConns = kingpin.Flag("database.maxOpenConns", "Number of maximum open connections in the connection pool. (env: DATABASE_MAXOPENCONNS)").Default(getEnv("DATABASE_MAXOPENCONNS", "10")).Int()
username = kingpin.Flag("database.username", "Database username (env: DATABASE_USERNAME)").Default(getEnv("DATABASE_USERNAME", "")).String()
password = kingpin.Flag("database.password", "Database password (env: DATABASE_PASSWORD)").Default(getEnv("DATABASE_PASSWORD", "")).String()
hostname = kingpin.Flag("database.hostname", "Database hostname (env: DATABASE_HOSTNAME)").Default(getEnv("DATABASE_HOSTNAME", "")).String()
port = kingpin.Flag("database.port", "Database port (env: DATABASE_PORT)").Default(getEnv("DATABASE_PORT", "1521")).Int()
dbservice = kingpin.Flag("database.service", "Database service (env: DATABASE_SERVICE)").Default(getEnv("DATABASE_SERVICE", "")).String()
dsn = kingpin.Flag("datasource", "Database connect string (env: DATA_SOURCE_NAME)").Default(getEnv("DATA_SOURCE_NAME", "")).String()

daemonMode = kingpin.Flag("daemon", "Run as a daemon").Short('d').Bool()
Expand Down Expand Up @@ -226,7 +231,14 @@ func (s *Server) Run() error {
hashMap = make(map[int][]byte)
reloadMetrics(s.logger)

exporter := NewExporter(*dsn, s.logger)
var connstring string
if strings.TrimSpace(*dsn) != "" {
connstring = *dsn
} else {
connstring = go_ora.BuildUrl(*hostname, *port, *dbservice, *username, *password, nil)
}

exporter := NewExporter(connstring, s.logger)
prometheus.MustRegister(exporter)
go exporter.runScheduledScrapes()

Expand All @@ -237,7 +249,7 @@ func (s *Server) Run() error {
}
http.Handle(*metricPath, promhttp.HandlerFor(prometheus.DefaultGatherer, opts))

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
http.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
w.Write([]byte("<html><head><title>Oracle DB Exporter " + Version + "</title></head><body><h1>Oracle DB Exporter " + Version + "</h1><p><a href='" + *metricPath + "'>Metrics</a></p></body></html>"))
})

Expand Down

0 comments on commit 8ccab22

Please # to comment.