Skip to content

Commit 324c2cf

Browse files
committed
🎨 Read credentials from environment variables
1 parent 8953f47 commit 324c2cf

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,23 @@ After=network-online.target
1616
1717
[Service]
1818
Type=simple
19-
ExecStart=/usr/local/bin/mysqlrouter_exporter --url http://mysqlrouter.luis.local --user luis --pass luis
19+
Environment="MYSQLROUTER_EXPORTER_URL=https://mysqlrouter-test.xzy.pw"
20+
Environment="MYSQLROUTER_EXPORTER_USER=luis"
21+
Environment="MYSQLROUTER_EXPORTER_PASS=luis"
22+
ExecStart=/usr/local/bin/mysqlrouter_exporter
2023
2124
[Install]
2225
WantedBy=multi-user.target
2326
```
2427

25-
You must set `--url`, `--user` and `--pass`.
28+
You must set these environment variables:
29+
- `MYSQLROUTER_EXPORTER_URL:` MySQL Router REST API URL.
30+
- `MYSQLROUTER_EXPORTER_USER:` Username for REST API
31+
- `MYSQLROUTER_EXPORTER_PASS:` Password for REST API
2632

27-
Default listen port is `49152`.
28-
If want to change it, use `--port` flag.
33+
34+
Default exporter listen port is `49152`.
35+
If you want change it use `MYSQLROUTER_EXPORTER_PORT`.
2936

3037
Prometheus configuration
3138
-------------------------

main.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"flag"
55
"log"
66
"net/http"
7+
"os"
78
"strconv"
89
"time"
910

@@ -136,20 +137,21 @@ func init() {
136137
}
137138

138139
var (
139-
port = flag.String("port", "49152", "Listen port for exporter")
140-
url = flag.String("url", "", "URL of MySQL Router REST API")
141-
user = flag.String("user", "", "Username for MySQL Router REST API")
142-
pass = flag.String("pass", "", "Password for MySQL Router REST API")
140+
port = os.Getenv("MYSQLROUTER_EXPORTER_PORT")
141+
url = os.Getenv("MYSQLROUTER_EXPORTER_URL")
142+
user = os.Getenv("MYSQLROUTER_EXPORTER_USER")
143+
pass = os.Getenv("MYSQLROUTER_EXPORTER_PASS")
143144
)
144145

145146
func main() {
146147
flag.Parse()
147148

148-
if *url == "" || *user == "" || *pass == "" {
149-
panic("--url, --user and --pass is must be set.")
149+
if url == "" || user == "" || pass == "" {
150+
panic("The environment missing.\n" +
151+
"MYSQLROUTER_EXPORTER_URL, MYSQLROUTER_EXPORTER_USER and MYSQLROUTER_EXPORTER_PASS is required.")
150152
}
151153

152-
mr, err := mysqlrouter.New(*url, *user, *pass)
154+
mr, err := mysqlrouter.New(url, user, pass)
153155
if err != nil {
154156
panic(err)
155157
}
@@ -242,7 +244,11 @@ func main() {
242244
}
243245
}()
244246

245-
log.Printf("listen: %s\n", "0.0.0.0:"+*port)
247+
if port == "" {
248+
port = "49152"
249+
}
250+
251+
log.Printf("listen: %s\n", "0.0.0.0:"+port)
246252
http.Handle("/metrics", promhttp.Handler())
247-
log.Fatal(http.ListenAndServe("0.0.0.0:"+*port, nil))
253+
log.Fatal(http.ListenAndServe("0.0.0.0:"+port, nil))
248254
}

0 commit comments

Comments
 (0)