Skip to content

Commit

Permalink
update dependencies and Go version (#159)
Browse files Browse the repository at this point in the history
* update dependencies
* update to Go 1.18
* add loggers at the package level instead of passing a logger thru different structs
* add outline for a PrometheusRule (currently commented out and unused)
  • Loading branch information
maskarb authored Jan 30, 2023
1 parent f567279 commit 300ac4b
Show file tree
Hide file tree
Showing 32 changed files with 5,790 additions and 9,315 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/golangci-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.16
go-version: 1.18
- uses: actions/checkout@v3
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
2 changes: 1 addition & 1 deletion .github/workflows/unittests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: actions/setup-go@v2
with:
stable: 'true'
go-version: '1.16' # The Go version to download (if necessary) and use.
go-version: '1.18' # The Go version to download (if necessary) and use.

- name: Cache Go modules
uses: actions/cache@v2
Expand Down
3 changes: 0 additions & 3 deletions .golangci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,13 @@ linters:
disable-all: true
enable:
## enabled by default
- deadcode
- errcheck
- gosimple
- govet
- ineffassign
- staticcheck
- structcheck
- typecheck
- unused
- varcheck

- goimports

Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
repos:
- repo: https://github.com/golangci/golangci-lint
rev: v1.40.1
rev: v1.50.1
hooks:
- id: golangci-lint
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the manager binary
FROM registry.access.redhat.com/ubi8/go-toolset:1.16.12 as builder
FROM registry.access.redhat.com/ubi8/go-toolset:1.18.9 as builder

USER root

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ ifeq (, $(shell which controller-gen))
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
cd $$CONTROLLER_GEN_TMP_DIR ;\
go mod init tmp ;\
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 ;\
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.11.2 ;\
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
}
CONTROLLER_GEN=$(GOBIN)/controller-gen
Expand Down
13 changes: 8 additions & 5 deletions collector/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/mitchellh/mapstructure"
promv1 "github.com/prometheus/client_golang/api/prometheus/v1"
"github.com/prometheus/common/model"
logr "sigs.k8s.io/controller-runtime/pkg/log"

kokumetricscfgv1beta1 "github.com/project-koku/koku-metrics-operator/api/v1beta1"
"github.com/project-koku/koku-metrics-operator/dirconfig"
Expand All @@ -27,6 +28,8 @@ var (
namespaceFilePrefix = "cm-openshift-namespace-usage-"

statusTimeFormat = "2006-01-02 15:04:05"

log = logr.Log.WithName("collector")
)

type mappedCSVStruct map[string]csvStruct
Expand Down Expand Up @@ -127,7 +130,7 @@ func (r *mappedResults) iterateMatrix(matrix model.Matrix, q query) {

// GenerateReports is responsible for querying prometheus and writing to report files
func GenerateReports(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig, dirCfg *dirconfig.DirectoryConfig, c *PromCollector) error {
log := c.Log.WithValues("kokumetricsconfig", "GenerateReports")
log := log.WithName("GenerateReports")

// yearMonth is used in filenames
yearMonth := c.TimeSeries.Start.Format("200601") // this corresponds to YYYYMM format
Expand Down Expand Up @@ -171,7 +174,7 @@ func GenerateReports(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig, dirCfg *dir
prefix: emptyNodeRow.dateTimes.string(),
},
}
c.Log.WithValues("kokumetricsconfig", "writeResults").Info("writing node results to file", "filename", nodeReport.file.getName())
log.WithName("writeResults").Info("writing node results to file", "filename", nodeReport.file.getName())
if err := nodeReport.writeReport(); err != nil {
return fmt.Errorf("failed to write node report: %v", err)
}
Expand Down Expand Up @@ -211,7 +214,7 @@ func GenerateReports(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig, dirCfg *dir
prefix: emptyPodRow.dateTimes.string(),
},
}
c.Log.WithValues("kokumetricsconfig", "writeResults").Info("writing pod results to file", "filename", podReport.file.getName())
log.WithName("writeResults").Info("writing pod results to file", "filename", podReport.file.getName())
if err := podReport.writeReport(); err != nil {
return fmt.Errorf("failed to write pod report: %v", err)
}
Expand Down Expand Up @@ -243,7 +246,7 @@ func GenerateReports(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig, dirCfg *dir
prefix: emptyVolRow.dateTimes.string(),
},
}
c.Log.WithValues("kokumetricsconfig", "writeResults").Info("writing volume results to file", "filename", volReport.file.getName())
log.WithName("writeResults").Info("writing volume results to file", "filename", volReport.file.getName())
if err := volReport.writeReport(); err != nil {
return fmt.Errorf("failed to write volume report: %v", err)
}
Expand Down Expand Up @@ -275,7 +278,7 @@ func GenerateReports(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig, dirCfg *dir
prefix: emptyNameRow.dateTimes.string(),
},
}
c.Log.WithValues("kokumetricsconfig", "writeResults").Info("writing namespace results to file", "filename", namespaceReport.file.getName())
log.WithName("writeResults").Info("writing namespace results to file", "filename", namespaceReport.file.getName())
if err := namespaceReport.writeReport(); err != nil {
return fmt.Errorf("failed to write namespace report: %v", err)
}
Expand Down
12 changes: 7 additions & 5 deletions collector/collector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@ import (

promv1 "github.com/prometheus/client_golang/api/prometheus/v1"
"github.com/prometheus/common/model"
logf "sigs.k8s.io/controller-runtime/pkg/log"

kokumetricscfgv1beta1 "github.com/project-koku/koku-metrics-operator/api/v1beta1"
"github.com/project-koku/koku-metrics-operator/dirconfig"
"github.com/project-koku/koku-metrics-operator/strset"
"github.com/project-koku/koku-metrics-operator/testutils"
)

var testLogger = testutils.TestLogger{}

const epsilon = 0.00001

func nearlyEqual(a, b float64) bool {
Expand Down Expand Up @@ -124,6 +123,12 @@ func compareFiles(expected, generated *os.File) error {
return nil
}

func TestMain(m *testing.M) {
logf.SetLogger(testutils.ZapLogger(true))
code := m.Run()
os.Exit(code)
}

func TestGenerateReports(t *testing.T) {
mapResults := make(mappedMockPromResult)
queryList := []*querys{nodeQueries, namespaceQueries, podQueries, volQueries}
Expand All @@ -141,7 +146,6 @@ func TestGenerateReports(t *testing.T) {
t: t,
},
TimeSeries: &fakeTimeRange,
Log: testLogger,
}
if err := GenerateReports(fakeKMCfg, fakeDirCfg, fakeCollector); err != nil {
t.Errorf("Failed to generate reports: %v", err)
Expand Down Expand Up @@ -179,7 +183,6 @@ func TestGenerateReportsQueryErrors(t *testing.T) {
t: t,
},
TimeSeries: &fakeTimeRange,
Log: testLogger,
}

queryList := []*querys{nodeQueries, podQueries, volQueries}
Expand Down Expand Up @@ -243,7 +246,6 @@ func TestGenerateReportsNoNodeData(t *testing.T) {
t: t,
},
TimeSeries: &fakeTimeRange,
Log: testLogger,
}
if err := GenerateReports(fakeKMCfg, fakeDirCfg, fakeCollector); err != nil {
t.Errorf("Failed to generate reports: %v", err)
Expand Down
8 changes: 3 additions & 5 deletions collector/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (
"reflect"
"time"

"github.com/go-logr/logr"
promapi "github.com/prometheus/client_golang/api"
promv1 "github.com/prometheus/client_golang/api/prometheus/v1"
"github.com/prometheus/common/config"
Expand All @@ -38,7 +37,6 @@ type PromCollector struct {
PromCfg *PrometheusConfig
TimeSeries *promv1.Range
ContextTimeout *int64
Log logr.Logger
InCluster bool
}

Expand Down Expand Up @@ -95,7 +93,7 @@ func getPrometheusConnFromCfg(cfg *PrometheusConfig) (promv1.API, error) {
BearerToken: cfg.BearerToken,
TLSConfig: config.TLSConfig{CAFile: cfg.CAFile, InsecureSkipVerify: cfg.SkipTLS},
}
roundTripper, err := config.NewRoundTripperFromConfig(promconf, "promconf", false, false)
roundTripper, err := config.NewRoundTripperFromConfig(promconf, "promconf")
if err != nil {
return nil, fmt.Errorf("cannot create roundTripper: %v", err)
}
Expand Down Expand Up @@ -144,7 +142,7 @@ func testPrometheusConnection(promConn prometheusConnection) error {

// GetPromConn returns the prometheus connection
func (c *PromCollector) GetPromConn(kmCfg *kokumetricscfgv1beta1.KokuMetricsConfig) error {
log := c.Log.WithValues("kokumetricsconfig", "GetPromConn")
log := log.WithName("GetPromConn")
var err error

updated := true
Expand Down Expand Up @@ -183,7 +181,7 @@ func (c *PromCollector) GetPromConn(kmCfg *kokumetricscfgv1beta1.KokuMetricsConf
}

func (c *PromCollector) getQueryResults(queries *querys, results *mappedResults) error {
log := c.Log.WithValues("kokumetricsconfig", "getQueryResults")
log := log.WithName("getQueryResults")
timeout := int64(120)
if c.ContextTimeout != nil {
timeout = *c.ContextTimeout
Expand Down
5 changes: 0 additions & 5 deletions collector/prometheus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ func (m mockPrometheusConnectionPolling) Query(ctx context.Context, query string
func TestGetQueryResultsSuccess(t *testing.T) {
col := PromCollector{
TimeSeries: &promv1.Range{},
Log: testLogger,
}
getQueryResultsErrorsTests := []struct {
name string
Expand Down Expand Up @@ -207,7 +206,6 @@ func TestGetQueryResultsError(t *testing.T) {
col := PromCollector{
ContextTimeout: &defaultContextTimeout,
TimeSeries: &promv1.Range{},
Log: testLogger,
}
getQueryResultsErrorsTests := []struct {
name string
Expand Down Expand Up @@ -285,7 +283,6 @@ func TestGetQueryResultsError(t *testing.T) {
func TestTestPrometheusConnection(t *testing.T) {
col := PromCollector{
TimeSeries: &promv1.Range{},
Log: testLogger,
}
testPrometheusConnectionTests := []struct {
name string
Expand Down Expand Up @@ -323,7 +320,6 @@ func TestTestPrometheusConnection(t *testing.T) {
func TestTestPrometheusConnectionPolling(t *testing.T) {
col := PromCollector{
TimeSeries: &promv1.Range{},
Log: testLogger,
}
testPrometheusConnectionTests := []struct {
name string
Expand Down Expand Up @@ -550,7 +546,6 @@ func TestGetPromConn(t *testing.T) {
col := &PromCollector{
PromConn: tt.con,
PromCfg: tt.cfg,
Log: testLogger,
}
promSpec = kmCfg.Spec.PrometheusConfig.DeepCopy()
err := col.GetPromConn(kmCfg)
Expand Down
Loading

0 comments on commit 300ac4b

Please sign in to comment.