-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
65 lines (60 loc) · 1.96 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package config
import (
"gopkg.in/alecthomas/kingpin.v2"
)
type GitHubBillingExporterConfig struct {
listenAddress *string
metricsPath *string
githubToken *string
githubOrgs *string
disabledCollectors *string
logLevel *string
logFormat *string
logOutput *string
}
func NewGitHubBillingExporterConfig() GitHubBillingExporterConfig {
config := GitHubBillingExporterConfig{
listenAddress: kingpin.Flag("web.listen-address", "Address to listen on for web interface and telemetry.").
Default(":9776").
Envar("GBE_WEB_LISTEN_ADDRESS").
String(),
metricsPath: kingpin.Flag("web.telemetry-path", "Path under which to expose metrics.").
Default("/metrics").
Envar("GBE_WEB_TELEMETRY_PATH").
String(),
githubToken: kingpin.Flag("github.token", "Access token for GitHub").
Default("").
Envar("GBE_GITHUB_TOKEN").
String(),
githubOrgs: kingpin.Flag("github.orgs", "Space separated list of GitHub Organizations").
Default("").
Envar("GBE_GITHUB_ORGS").
String(),
disabledCollectors: kingpin.Flag("disabled.collectors", "Space separated list of Disabled Collectors").
Default("").
Envar("GBE_DISABLED_COLLECTORS").
String(),
logLevel: kingpin.Flag("log.level", "Sets the log level. Valid levels are debug, info, warn, error").
Default("info").
Envar("GBE_LOG_LEVEL").
String(),
logFormat: kingpin.Flag("log.format", "Sets the log format. Valid formats are json and logfmt").
Default("logfmt").
Envar("GBE_LOG_FORMAT").
String(),
logOutput: kingpin.Flag("log.output", "Sets the log output. Valid outputs are stdout and stderr").
Default("stdout").
Envar("GBE_LOG_OUTPUT").
String(),
}
kingpin.Version("0.0.1")
kingpin.HelpFlag.Short('h')
kingpin.Parse()
return config
}
func (cfg GitHubBillingExporterConfig) GetListeningAccess() string {
return *cfg.listenAddress
}
func (cfg GitHubBillingExporterConfig) GetMetricsPath() string {
return *cfg.metricsPath
}