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  }