Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ComposeMetricGenFuncs ¶
func ComposeMetricGenFuncs(familyGens []FamilyGenerator) func(obj interface{}) []metric.FamilyInterface
ComposeMetricGenFuncs takes a slice of metric families and returns a function that composes their metric generation functions into a single one.
func ExtractMetricFamilyHeaders ¶
func ExtractMetricFamilyHeaders(families []FamilyGenerator) []string
ExtractMetricFamilyHeaders takes in a slice of FamilyGenerator metrics and returns the extracted headers.
Types ¶
type FamilyGenerator ¶
type FamilyGenerator struct { Name string Help string Type metric.Type DeprecatedVersion string GenerateFunc func(obj interface{}) *metric.Family }
FamilyGenerator provides everything needed to generate a metric family with a Kubernetes object. DeprecatedVersion is defined only if the metric for which this options applies is, in fact, deprecated.
func FilterMetricFamilies ¶
func FilterMetricFamilies(l allowDenyLister, families []FamilyGenerator) []FamilyGenerator
FilterMetricFamilies takes a allow- and a denylist and a slice of metric families and returns a filtered slice.
func NewFamilyGenerator ¶
func NewFamilyGenerator(name string, help string, metricType metric.Type, deprecatedVersion string, generateFunc func(obj interface{}) *metric.Family) *FamilyGenerator
NewFamilyGenerator creates new FamilyGenerator instances.
func (*FamilyGenerator) Generate ¶
func (g *FamilyGenerator) Generate(obj interface{}) *metric.Family
Generate calls the FamilyGenerator.GenerateFunc and gives the family its name. The reasoning behind injecting the name at such a late point in time is deduplication in the code, preventing typos made by developers as well as saving memory.