Skip to content

Commit 6f9d98b

Browse files
authored
Merge pull request #88 from prometheus-community/superq/promlog
Switch logging to Prometheus promlog
2 parents f9cd352 + 2dc7bd2 commit 6f9d98b

File tree

177 files changed

+7982
-4758
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+7982
-4758
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## master / unreleased
22

3+
* [CHANGE] Switch logging to promlog
34
* [FEATURE] Add metrics prefix collect URL param
45

56
## 0.7.0 / 2020-05-01

collectors/monitoring_collector.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ import (
1717
"errors"
1818
"fmt"
1919
"math"
20+
"os"
2021
"strings"
2122
"sync"
2223
"time"
2324

25+
"github.com/go-kit/kit/log"
26+
"github.com/go-kit/kit/log/level"
2427
"github.com/prometheus/client_golang/prometheus"
25-
"github.com/prometheus/common/log"
2628
"golang.org/x/net/context"
2729
"google.golang.org/api/monitoring/v3"
2830
"gopkg.in/alecthomas/kingpin.v2"
@@ -70,9 +72,10 @@ type MonitoringCollector struct {
7072
lastScrapeDurationSecondsMetric prometheus.Gauge
7173
collectorFillMissingLabels bool
7274
monitoringDropDelegatedProjects bool
75+
logger log.Logger
7376
}
7477

75-
func NewMonitoringCollector(monitoringService *monitoring.Service, filters map[string]bool) (*MonitoringCollector, error) {
78+
func NewMonitoringCollector(monitoringService *monitoring.Service, filters map[string]bool, logger log.Logger) (*MonitoringCollector, error) {
7679
if *projectID == "" {
7780
return nil, errors.New("Flag `google.project-id` is required")
7881
}
@@ -166,6 +169,7 @@ func NewMonitoringCollector(monitoringService *monitoring.Service, filters map[s
166169
lastScrapeDurationSecondsMetric: lastScrapeDurationSecondsMetric,
167170
collectorFillMissingLabels: *collectorFillMissingLabels,
168171
monitoringDropDelegatedProjects: *monitoringDropDelegatedProjects,
172+
logger: logger,
169173
}
170174

171175
return monitoringCollector, nil
@@ -187,7 +191,8 @@ func (c *MonitoringCollector) Collect(ch chan<- prometheus.Metric) {
187191
if err := c.reportMonitoringMetrics(ch); err != nil {
188192
errorMetric = float64(1)
189193
c.scrapeErrorsTotalMetric.Inc()
190-
log.Fatalf("Error while getting Google Stackdriver Monitoring metrics: %s", err)
194+
level.Error(c.logger).Log("msg", "Error while getting Google Stackdriver Monitoring metrics", "err", err)
195+
os.Exit(1)
191196
}
192197
c.scrapeErrorsTotalMetric.Collect(ch)
193198

@@ -235,7 +240,7 @@ func (c *MonitoringCollector) reportMonitoringMetrics(ch chan<- prometheus.Metri
235240
wg.Add(1)
236241
go func(metricDescriptor *monitoring.MetricDescriptor, ch chan<- prometheus.Metric) {
237242
defer wg.Done()
238-
log.Debugf("Retrieving Google Stackdriver Monitoring metrics for descriptor `%s`...", metricDescriptor.Type)
243+
level.Debug(c.logger).Log("msg", "retrieving Google Stackdriver Monitoring metrics for descriptor", "descriptor", metricDescriptor.Type)
239244
filter := fmt.Sprintf("metric.type=\"%s\"", metricDescriptor.Type)
240245
if c.monitoringDropDelegatedProjects {
241246
filter = fmt.Sprintf(
@@ -252,15 +257,15 @@ func (c *MonitoringCollector) reportMonitoringMetrics(ch chan<- prometheus.Metri
252257
c.apiCallsTotalMetric.Inc()
253258
page, err := timeSeriesListCall.Do()
254259
if err != nil {
255-
log.Errorf("Error retrieving Time Series metrics for descriptor `%s`: %v", metricDescriptor.Type, err)
260+
level.Error(c.logger).Log("msg", "error retrieving Time Series metrics for descriptor", "descriptor", metricDescriptor.Type, "err", err)
256261
errChannel <- err
257262
break
258263
}
259264
if page == nil {
260265
break
261266
}
262267
if err := c.reportTimeSeriesMetrics(page, metricDescriptor, ch); err != nil {
263-
log.Errorf("Error reporting Time Series metrics for descriptor `%s`: %v", metricDescriptor.Type, err)
268+
level.Error(c.logger).Log("msg", "error reporting Time Series metrics for descripto", "descriptor", metricDescriptor.Type, "err", err)
264269
errChannel <- err
265270
break
266271
}
@@ -286,7 +291,7 @@ func (c *MonitoringCollector) reportMonitoringMetrics(ch chan<- prometheus.Metri
286291
wg.Add(1)
287292
go func(metricsTypePrefix string) {
288293
defer wg.Done()
289-
log.Debugf("Listing Google Stackdriver Monitoring metric descriptors starting with `%s`...", metricsTypePrefix)
294+
level.Debug(c.logger).Log("msg", "listing Google Stackdriver Monitoring metric descriptors starting with", "prefix", metricsTypePrefix)
290295
ctx := context.Background()
291296
filter := fmt.Sprintf("metric.type = starts_with(\"%s\")", metricsTypePrefix)
292297
if c.monitoringDropDelegatedProjects {
@@ -396,11 +401,11 @@ func (c *MonitoringCollector) reportTimeSeriesMetrics(
396401
if err == nil {
397402
timeSeriesMetrics.CollectNewConstHistogram(timeSeries, labelKeys, dist, buckets, labelValues)
398403
} else {
399-
log.Debugf("Discarding resource %s metric %s: %s", timeSeries.Resource.Type, timeSeries.Metric.Type, err)
404+
level.Debug(c.logger).Log("msg", "discarding", "resource", timeSeries.Resource.Type, "metric", timeSeries.Metric.Type, "err", err)
400405
}
401406
continue
402407
default:
403-
log.Debugf("Discarding `%s` metric: %+v", timeSeries.ValueType, timeSeries)
408+
level.Debug(c.logger).Log("msg", "discarding", "value_type", timeSeries.ValueType, "metric", timeSeries)
404409
continue
405410
}
406411

go.mod

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ require (
1010
github.com/benbjohnson/clock v1.0.0 // indirect
1111
github.com/dustin/go-humanize v1.0.0 // indirect
1212
github.com/fatih/camelcase v1.0.0
13-
github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect
14-
github.com/onsi/ginkgo v1.4.0
15-
github.com/onsi/gomega v1.3.0
13+
github.com/go-kit/kit v0.10.0
14+
github.com/onsi/ginkgo v1.7.0
15+
github.com/onsi/gomega v1.4.3
1616
github.com/prometheus/client_golang v1.6.0
1717
github.com/prometheus/client_model v0.2.0
1818
github.com/prometheus/common v0.9.1
19-
github.com/sirupsen/logrus v1.5.0 // indirect
2019
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5
2120
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
2221
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e // indirect

0 commit comments

Comments
 (0)