Skip to content

Commit

Permalink
Add a parameter for timezone offset
Browse files Browse the repository at this point in the history
  • Loading branch information
MacroPower committed Jul 31, 2020
1 parent db21a8d commit 1a2a87c
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ func (e *Exporter) Collect(ch chan<- prometheus.Metric) {
ch <- e.queryFailures
}

func fetchHTTP(uri *url.URL, token string, sslVerify bool, timeout time.Duration) func() (io.ReadCloser, error) {
dateUTC := time.Now().UTC().Format("2006-01-02")
func fetchHTTP(uri *url.URL, token string, sslVerify bool, tzOffset time.Duration, timeout time.Duration) func() (io.ReadCloser, error) {
dateUTC := time.Now().UTC().Add(tzOffset).Format("2006-01-02")
params := url.Values{}
params.Add("start", dateUTC)
params.Add("end", dateUTC)
Expand Down Expand Up @@ -205,15 +205,15 @@ func fetchHTTP(uri *url.URL, token string, sslVerify bool, timeout time.Duration
}

// NewExporter returns an initialized Exporter.
func NewExporter(uri string, token string, sslVerify bool, timeout time.Duration, logger log.Logger) (*Exporter, error) {
func NewExporter(uri string, token string, sslVerify bool, tzOffset time.Duration, timeout time.Duration, logger log.Logger) (*Exporter, error) {
wakaBaseURI, err := url.Parse(uri)
if err != nil {
level.Error(logger).Log("msg", "Malformed URL", "err", err.Error())
return nil, err
}

var fetchStat func() (io.ReadCloser, error)
fetchStat = fetchHTTP(wakaBaseURI, token, sslVerify, timeout)
fetchStat = fetchHTTP(wakaBaseURI, token, sslVerify, tzOffset, timeout)

return &Exporter{
URI: wakaBaseURI,
Expand Down Expand Up @@ -243,6 +243,7 @@ func main() {
metricsPath = kingpin.Flag("web.telemetry-path", "Path under which to expose metrics.").Default("/metrics").String()
wakaScrapeURI = kingpin.Flag("wakatime.scrape-uri", "Base path to query for Wakatime data.").Default("https://wakatime.com/api/v1/users/current").String()
wakaToken = kingpin.Flag("wakatime.api-key", "Token to use when getting stats from Wakatime.").Required().String()
wakaOffset = kingpin.Flag("wakatime.t-offset", "Time offset (from UTC) for managing Wakatime dates.").Default("0s").Duration()
wakaTimeout = kingpin.Flag("wakatime.timeout", "Timeout for trying to get stats from Wakatime.").Default("5s").Duration()
wakaSSLVerify = kingpin.Flag("wakatime.ssl-verify", "Flag that enables SSL certificate verification for the scrape URI").Default("true").Bool()
)
Expand All @@ -257,7 +258,7 @@ func main() {
level.Info(logger).Log("msg", "Starting wakatime_exporter", "version", version.Info())
level.Info(logger).Log("msg", "Build context", "context", version.BuildContext())

exporter, err := NewExporter(*wakaScrapeURI, *wakaToken, *wakaSSLVerify, *wakaTimeout, logger)
exporter, err := NewExporter(*wakaScrapeURI, *wakaToken, *wakaSSLVerify, *wakaOffset, *wakaTimeout, logger)
if err != nil {
level.Error(logger).Log("msg", "Error creating an exporter", "err", err)
os.Exit(1)
Expand Down

0 comments on commit 1a2a87c

Please sign in to comment.