type MachinesClient interface {
APICall(route string, data interface{}, response any) error
NewEventListener(ctx context.Context) (chan MachinesMqttEvent, error)
- SetupStats(metrics *mbclient.MetricBusService)
+ SetupStats(metrics mbclient.MetricBusService)
}
type machinesClient struct {
return nil
}
-func (mc *machinesClient) SetupStats(metrics *mbclient.MetricBusService) {
+func (mc *machinesClient) SetupStats(metrics mbclient.MetricBusService) {
mc.stats = makeStats(metrics)
}
type KV = metricbus.KV
-type MetricBusService struct {
+type metricBusServiceImpl struct {
name string
instance string
var defaultMetricBusServiceName string
var defaultMetricBusServiceDiscriminator string
-var store map[string]*MetricBusService
+var store map[string]*metricBusServiceImpl
var storeLock sync.Mutex
func init() {
flag.StringVar(&defaultMetricBusServiceDiscriminator, "metricbus.client.service-discriminator", "", "discriminator to use by default for publishing metrics")
}
-func NewService(ctx context.Context) *MetricBusService {
+func NewService(ctx context.Context) MetricBusService {
return NewServiceWithDiscriminator(ctx, defaultMetricBusServiceDiscriminator)
}
-func NewServiceWithDiscriminator(ctx context.Context, instanceDiscriminator string) *MetricBusService {
+func NewServiceWithDiscriminator(ctx context.Context, instanceDiscriminator string) MetricBusService {
storeLock.Lock()
defer storeLock.Unlock()
if store == nil {
- store = make(map[string]*MetricBusService)
+ store = make(map[string]*metricBusServiceImpl)
}
if instance, ok := store[instanceDiscriminator]; ok {
return instance
}
-func newServiceWithDiscriminator(ctx context.Context, instanceDiscriminator string) *MetricBusService {
+func newServiceWithDiscriminator(ctx context.Context, instanceDiscriminator string) *metricBusServiceImpl {
childCtx, cancel := context.WithCancel(context.Background())
- svc := &MetricBusService{
+ svc := &metricBusServiceImpl{
name: defaultMetricBusServiceName,
instance: instanceDiscriminator,
return svc
}
-func (s *MetricBusService) FlushAndWait() {
+func (s *metricBusServiceImpl) FlushAndWait() {
if s.childCtx.Err() == context.Canceled || s.serviceCookie == "" {
return
}
defer s.mu.Unlock()
}
-func (s *MetricBusService) DefineCounter(metricName, descr string, labelNames ...string) CounterMetric {
+func (s *metricBusServiceImpl) DefineCounter(metricName, descr string, labelNames ...string) CounterMetric {
s.mu.Lock()
defer s.mu.Unlock()
}
}
-func (s *MetricBusService) DefineGauge(metricName, descr string, labelNames ...string) GaugeMetric {
+func (s *metricBusServiceImpl) DefineGauge(metricName, descr string, labelNames ...string) GaugeMetric {
s.mu.Lock()
defer s.mu.Unlock()
}
}
-func (s *MetricBusService) setLocalStateDeregistered() {
+func (s *metricBusServiceImpl) setLocalStateDeregistered() {
s.mu.Lock()
defer s.mu.Unlock()
}
}
-func (s *MetricBusService) tryRegister() {
+func (s *metricBusServiceImpl) tryRegister() {
s.mu.Lock()
defer s.mu.Unlock()
s.serviceCookie = cookie
}
-func (s *MetricBusService) Flush() {
+func (s *metricBusServiceImpl) Flush() {
var err error
s.mu.Lock()
goto flushRestart
}
-func (s *MetricBusService) deregister() {
+func (s *metricBusServiceImpl) deregister() {
s.mu.Lock()
defer s.mu.Unlock()
s.childCtxCancel()
}
-func (s *MetricBusService) loop() {
+func (s *metricBusServiceImpl) loop() {
ticker := time.NewTicker(1 * time.Second)
for {
}
}
-func (s *MetricBusService) event(metricName string, labelValues []string) *metricValue {
+func (s *metricBusServiceImpl) event(metricName string, labelValues []string) *metricValue {
s.mu.Lock()
defer s.mu.Unlock()