Documentation ¶
Index ¶
- Constants
- func SplitNameID(nameID string) (id string, name string)
- type ClusterInfo
- type ClusterInfoProvider
- type ClusterMap
- type PrometheusClusterMap
- func (pcm *PrometheusClusterMap) AsMap() map[string]*ClusterInfo
- func (pcm *PrometheusClusterMap) GetClusterIDs() []string
- func (pcm *PrometheusClusterMap) InfoFor(clusterID string) *ClusterInfo
- func (pcm *PrometheusClusterMap) NameFor(clusterID string) string
- func (pcm *PrometheusClusterMap) NameIDFor(clusterID string) string
- func (pcm *PrometheusClusterMap) StopRefresh()
Constants ¶
const ( ClusterInfoIdKey = "id" ClusterInfoNameKey = "name" ClusterInfoProviderKey = "provider" ClusterInfoProjectKey = "project" ClusterInfoAccountKey = "account" ClusterInfoRegionKey = "region" ClusterInfoProvisionerKey = "provisioner" ClusterInfoProfileKey = "clusterProfile" ClusterInfoLogCollectionKey = "logCollection" ClusterInfoProductAnalyticsKey = "productAnalytics" ClusterInfoErrorReportingKey = "errorReporting" ClusterInfoValuesReportingKey = "valuesReporting" ClusterInfoThanosEnabledKey = "thanosEnabled" ClusterInfoThanosOffsetKey = "thanosOffset" ClusterInfoVersionKey = "version" )
The following constants are used as keys into the cluster info map data structure
Variables ¶
This section is empty.
Functions ¶
func SplitNameID ¶
SplitNameID is a helper method that removes the common split format and returns
Types ¶
type ClusterInfo ¶
type ClusterInfo struct { ID string `json:"id"` Name string `json:"name"` Profile string `json:"profile"` Provider string `json:"provider"` Account string `json:"account"` Project string `json:"project"` Region string `json:"region"` Provisioner string `json:"provisioner"` }
ClusterInfo holds attributes of Cluster from metrics pulled from Prometheus
func MapToClusterInfo ¶
func MapToClusterInfo(info map[string]string) (*ClusterInfo, error)
MapToClusterInfo returns a ClusterInfo using parsed data from a string map. If parsing the map fails for id and/or name, an error is returned.
func (*ClusterInfo) Clone ¶
func (ci *ClusterInfo) Clone() *ClusterInfo
Clone creates a copy of ClusterInfo and returns it
type ClusterInfoProvider ¶
type ClusterInfoProvider interface { // GetClusterInfo returns a string map containing the local/remote connected cluster info GetClusterInfo() map[string]string }
ClusterInfoProvider is a contract which is capable of performing cluster info lookups.
type ClusterMap ¶
type ClusterMap interface { // GetClusterIDs returns a slice containing all of the cluster identifiers. GetClusterIDs() []string // AsMap returns the cluster map as a standard go map AsMap() map[string]*ClusterInfo // InfoFor returns the ClusterInfo entry for the provided clusterID or nil if it // doesn't exist InfoFor(clusterID string) *ClusterInfo // NameFor returns the name of the cluster provided the clusterID. NameFor(clusterID string) string // NameIDFor returns an identifier in the format "<clusterName>/<clusterID>" if the cluster has an // assigned name. Otherwise, just the clusterID is returned. NameIDFor(clusterID string) string }
func NewClusterMap ¶
func NewClusterMap(client prometheus.Client, cip ClusterInfoProvider, refresh time.Duration) ClusterMap
NewClusterMap creates a new ClusterMap implementation using a prometheus or thanos client
type PrometheusClusterMap ¶
type PrometheusClusterMap struct {
// contains filtered or unexported fields
}
ClusterMap keeps records of all known cost-model clusters.
func (*PrometheusClusterMap) AsMap ¶
func (pcm *PrometheusClusterMap) AsMap() map[string]*ClusterInfo
AsMap returns the cluster map as a standard go map
func (*PrometheusClusterMap) GetClusterIDs ¶
func (pcm *PrometheusClusterMap) GetClusterIDs() []string
GetClusterIDs returns a slice containing all of the cluster identifiers.
func (*PrometheusClusterMap) InfoFor ¶
func (pcm *PrometheusClusterMap) InfoFor(clusterID string) *ClusterInfo
InfoFor returns the ClusterInfo entry for the provided clusterID or nil if it doesn't exist
func (*PrometheusClusterMap) NameFor ¶
func (pcm *PrometheusClusterMap) NameFor(clusterID string) string
NameFor returns the name of the cluster provided the clusterID.
func (*PrometheusClusterMap) NameIDFor ¶
func (pcm *PrometheusClusterMap) NameIDFor(clusterID string) string
NameIDFor returns an identifier in the format "<clusterName>/<clusterID>" if the cluster has an assigned name. Otherwise, just the clusterID is returned.
func (*PrometheusClusterMap) StopRefresh ¶
func (pcm *PrometheusClusterMap) StopRefresh()
StopRefresh stops the automatic internal map refresh