github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/facades/agent/metricsender/stateinterface.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 // Package metricsender contains functions for sending 5 // metrics from a controller to a remote metric collector. 6 package metricsender 7 8 import ( 9 "gopkg.in/juju/names.v2" 10 11 "github.com/juju/juju/controller" 12 "github.com/juju/juju/environs/config" 13 "github.com/juju/juju/state" 14 ) 15 16 // ModelBackend contains methods that are used by the metrics sender. 17 type ModelBackend interface { 18 MetricsManager() (*state.MetricsManager, error) 19 MetricsToSend(batchSize int) ([]*state.MetricBatch, error) 20 SetMetricBatchesSent(batchUUIDs []string) error 21 CountOfUnsentMetrics() (int, error) 22 CountOfSentMetrics() (int, error) 23 CleanupOldMetrics() error 24 25 Name() string 26 Unit(name string) (*state.Unit, error) 27 ModelTag() names.ModelTag 28 ModelConfig() (*config.Config, error) 29 ControllerConfig() (controller.Config, error) 30 SetModelMeterStatus(string, string) error 31 }