expose fewer internals in packages, for easier software reuse

- prometheus is now behind an interface, they aren't dependencies for the
  reusable components anymore.
- some dependencies have been inverted: instead of packages importing a main
  package to get configuration, the main package now sets configuration in
  these packages. that means fewer internals are pulled in.
- some functions now have new parameters for values that were retrieved from
  package "mox-".
This commit is contained in:
Mechiel Lukkien
2023-12-05 21:13:57 +01:00
parent fcaa504878
commit 72ac1fde29
51 changed files with 696 additions and 568 deletions

43
stub/metrics.go Normal file
View File

@ -0,0 +1,43 @@
package stub
import (
"context"
"time"
"golang.org/x/exp/slog"
)
func HTTPClientObserveIgnore(ctx context.Context, log *slog.Logger, pkg, method string, statusCode int, err error, start time.Time) {
}
type Counter interface {
Inc()
}
type CounterIgnore struct{}
func (CounterIgnore) Inc() {}
type CounterVec interface {
IncLabels(labels ...string)
}
type CounterVecIgnore struct{}
func (CounterVecIgnore) IncLabels(labels ...string) {}
type Histogram interface {
Observe(float64)
}
type HistogramIgnore struct{}
func (HistogramIgnore) Observe(float64) {}
type HistogramVec interface {
ObserveLabels(v float64, labels ...string)
}
type HistogramVecIgnore struct{}
func (HistogramVecIgnore) ObserveLabels(v float64, labels ...string) {}