Skip to content

Commit

Permalink
Fix golangci lint errors
Browse files Browse the repository at this point in the history
  • Loading branch information
krzko committed Mar 25, 2023
1 parent e2bc74f commit 14e13e1
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 21 deletions.
2 changes: 1 addition & 1 deletion internal/cli/metrics_counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func generateMetricsCounterAction(c *cli.Context) error {

provider := createMeterProvider(reader, metricsCfg)

metrics.SimulateCounter(ctx, *provider, metricsCfg, logger)
metrics.SimulateCounter(ctx, provider, metricsCfg, logger)

return nil
}
2 changes: 1 addition & 1 deletion internal/cli/metrics_histogram.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func generateMetricsHistogramAction(c *cli.Context) error {

provider := createMeterProvider(reader, metricsCfg)

metrics.SimulateHistogram(ctx, *provider, metricsCfg, logger)
metrics.SimulateHistogram(ctx, provider, metricsCfg, logger)

return nil
}
2 changes: 1 addition & 1 deletion internal/cli/metrics_up_down_counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func generateMetricsUpDownCounterAction(c *cli.Context) error {

provider := createMeterProvider(reader, metricsCfg)

metrics.SimulateUpDownCounter(ctx, *provider, metricsCfg, logger)
metrics.SimulateUpDownCounter(ctx, provider, metricsCfg, logger)

return nil
}
9 changes: 6 additions & 3 deletions internal/metrics/counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ import (
)

// Counter demonstrates how to measure non-decreasing int64s
func SimulateCounter(ctx context.Context, mp metric.MeterProvider, conf *Config, logger *zap.Logger) {
func SimulateCounter(ctx context.Context, mp *metric.MeterProvider, conf *Config, logger *zap.Logger) {
c := *conf
run(conf, logger, counter(mp, c, logger), &mp)
err := run(conf, logger, counter(mp, c, logger))
if err != nil {
logger.Error("failed to run counter", zap.Error(err))
}
}

// counter generates a counter metric
func counter(mp metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
func counter(mp *metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
return func(ctx context.Context) {
name := fmt.Sprintf("%v.metrics.counter", c.ServiceName)
logger.Debug("generating counter", zap.String("name", name))
Expand Down
9 changes: 6 additions & 3 deletions internal/metrics/histogram.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@ import (
)

// Histogram demonstrates how to record a distribution of individual values
func SimulateHistogram(ctx context.Context, mp metric.MeterProvider, conf *Config, logger *zap.Logger) {
func SimulateHistogram(ctx context.Context, mp *metric.MeterProvider, conf *Config, logger *zap.Logger) {
c := *conf
run(conf, logger, histogram(mp, c, logger), &mp)
err := run(conf, logger, histogram(mp, c, logger))
if err != nil {
logger.Error("failed to run histogram", zap.Error(err))
}
}

// histogram generates a histogram metric
func histogram(mp metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
func histogram(mp *metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
return func(ctx context.Context) {
name := fmt.Sprintf("%v.metrics.histogram", c.ServiceName)
durRecorder, _ := mp.Meter(c.ServiceName).Int64Histogram(
Expand Down
8 changes: 5 additions & 3 deletions internal/metrics/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ package metrics

import (
"context"
"fmt"

"go.opentelemetry.io/otel/sdk/metric"
"go.uber.org/zap"
)

// run is a function that runs a worker
func run(c *Config, logger *zap.Logger, workerFunc WorkerFunc, mp *metric.MeterProvider) error {
func run(c *Config, logger *zap.Logger, workerFunc WorkerFunc) error {
w := NewWorker(c, logger)
w.Run(context.Background(), workerFunc)
if err := w.Run(context.Background(), workerFunc); err != nil {
return fmt.Errorf("failed to run worker: %w", err)
}
return nil
}
9 changes: 6 additions & 3 deletions internal/metrics/up_down_counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@ import (
)

// SimulateUpDownCounter demonstrates how to measure numbers that can go up and down
func SimulateUpDownCounter(ctx context.Context, mp metric.MeterProvider, conf *Config, logger *zap.Logger) {
func SimulateUpDownCounter(ctx context.Context, mp *metric.MeterProvider, conf *Config, logger *zap.Logger) {
c := *conf
run(conf, logger, upDownCounter(mp, c, logger), &mp)
err := run(conf, logger, upDownCounter(mp, c, logger))
if err != nil {
logger.Error("failed to run up-down-counter", zap.Error(err))
}
}

// upDownCounter generates a up down counter metric
func upDownCounter(mp metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
func upDownCounter(mp *metric.MeterProvider, c Config, logger *zap.Logger) WorkerFunc {
return func(ctx context.Context) {
name := fmt.Sprintf("%v.metrics.up_down_counter", c.ServiceName)
counter, _ := mp.Meter(c.ServiceName).Int64UpDownCounter(
Expand Down
22 changes: 16 additions & 6 deletions internal/metrics/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package metrics

import (
"context"
"fmt"
"sync"
"time"

Expand All @@ -12,7 +13,7 @@ import (

type WorkerFunc func(ctx context.Context)

type worker struct {
type Worker struct {
numMetrics int // how many metrics the worker has to generate (only when duration==0)
totalDuration time.Duration // how long to run the test for (overrides `numMetrics`)
limitPerSecond rate.Limit // how many metrics per second to generate
Expand All @@ -21,8 +22,8 @@ type worker struct {
}

// NewWorker creates a new worker
func NewWorker(c *Config, logger *zap.Logger) *worker {
return &worker{
func NewWorker(c *Config, logger *zap.Logger) *Worker {
return &Worker{
numMetrics: c.NumMetrics,
totalDuration: c.TotalDuration,
limitPerSecond: rate.Limit(c.Rate),
Expand All @@ -32,16 +33,17 @@ func NewWorker(c *Config, logger *zap.Logger) *worker {
}

// Run runs the worker
func (w *worker) Run(ctx context.Context, workerFunc WorkerFunc) {
func (w *Worker) Run(ctx context.Context, workerFunc WorkerFunc) error {
if w.totalDuration == 0 {
// w.numMetrics = 0
w.totalDuration = time.Duration(86400 * time.Second) // 24 hours
w.totalDuration = 86400 * time.Second // 24 hours
} else if w.numMetrics == 0 {
w.logger.Error("either `metrics` or `duration` must be greater than 0")
return
return fmt.Errorf("either `metrics` or `duration` must be greater than 0")
}

running := atomic.NewBool(true)
errChan := make(chan error, 1)
for i := 0; i < 1; i++ {
w.wg.Add(1)

Expand All @@ -58,4 +60,12 @@ func (w *worker) Run(ctx context.Context, workerFunc WorkerFunc) {
running.Store(false)
}
w.wg.Wait()

// Check if there's an error in the error channel
select {
case err := <-errChan:
return err
default:
return nil
}
}
Binary file added main
Binary file not shown.

0 comments on commit 14e13e1

Please sign in to comment.