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 ¶ added in v1.100.0
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 ¶ added in v1.100.0
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