mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Don't expose struct from prometheus client library
This commit is contained in:
parent
58ab18bc1e
commit
63b4710f38
@ -249,10 +249,10 @@ func (vec HistogramVec) Validate() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMetricFamilyFromGatherer collects a metric family, that matches the input metricName,
|
// GetHistogramVecFromGatherer collects a metric, that matches the input labelValue map,
|
||||||
// from a gatherer implementing k8s.io/component-base/metrics.Gatherer interface.
|
// from a gatherer implementing k8s.io/component-base/metrics.Gatherer interface.
|
||||||
// Used only for testing purposes where we need to gather metrics directly from a running binary (without metrics endpoint).
|
// Used only for testing purposes where we need to gather metrics directly from a running binary (without metrics endpoint).
|
||||||
func GetMetricFamilyFromGatherer(gatherer metrics.Gatherer, metricName string) (*dto.MetricFamily, error) {
|
func GetHistogramVecFromGatherer(gatherer metrics.Gatherer, metricName string, lvMap map[string]string) (HistogramVec, error) {
|
||||||
var metricFamily *dto.MetricFamily
|
var metricFamily *dto.MetricFamily
|
||||||
m, err := gatherer.Gather()
|
m, err := gatherer.Gather()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -273,11 +273,6 @@ func GetMetricFamilyFromGatherer(gatherer metrics.Gatherer, metricName string) (
|
|||||||
return nil, fmt.Errorf("metric %q is empty", metricName)
|
return nil, fmt.Errorf("metric %q is empty", metricName)
|
||||||
}
|
}
|
||||||
|
|
||||||
return metricFamily, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetHistogramVec collects a vector of Histogram from a metric family, that matches the input labelValue map.
|
|
||||||
func GetHistogramVec(metricFamily *dto.MetricFamily, lvMap map[string]string) HistogramVec {
|
|
||||||
vec := make(HistogramVec, 0)
|
vec := make(HistogramVec, 0)
|
||||||
for _, metric := range metricFamily.GetMetric() {
|
for _, metric := range metricFamily.GetMetric() {
|
||||||
if LabelsMatch(metric, lvMap) {
|
if LabelsMatch(metric, lvMap) {
|
||||||
@ -286,7 +281,7 @@ func GetHistogramVec(metricFamily *dto.MetricFamily, lvMap map[string]string) Hi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return vec
|
return vec, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func uint64Ptr(u uint64) *uint64 {
|
func uint64Ptr(u uint64) *uint64 {
|
||||||
|
@ -585,8 +585,7 @@ func TestGetHistogramVecFromGatherer(t *testing.T) {
|
|||||||
vec.WithLabelValues("value1-1", "value2-0").Observe(3.5)
|
vec.WithLabelValues("value1-1", "value2-0").Observe(3.5)
|
||||||
vec.WithLabelValues("value1-1", "value2-1").Observe(4.5)
|
vec.WithLabelValues("value1-1", "value2-1").Observe(4.5)
|
||||||
metricName := fmt.Sprintf("%s_%s_%s", HistogramOpts.Namespace, HistogramOpts.Subsystem, HistogramOpts.Name)
|
metricName := fmt.Sprintf("%s_%s_%s", HistogramOpts.Namespace, HistogramOpts.Subsystem, HistogramOpts.Name)
|
||||||
metricFamily, _ := GetMetricFamilyFromGatherer(legacyregistry.DefaultGatherer, metricName)
|
histogramVec, _ := GetHistogramVecFromGatherer(legacyregistry.DefaultGatherer, metricName, tt.lvMap)
|
||||||
histogramVec := GetHistogramVec(metricFamily, tt.lvMap)
|
|
||||||
if diff := cmp.Diff(tt.wantVec, histogramVec); diff != "" {
|
if diff := cmp.Diff(tt.wantVec, histogramVec); diff != "" {
|
||||||
t.Errorf("Got unexpected HistogramVec (-want +got):\n%s", diff)
|
t.Errorf("Got unexpected HistogramVec (-want +got):\n%s", diff)
|
||||||
}
|
}
|
||||||
|
@ -208,16 +208,10 @@ func (*metricsCollector) run(ctx context.Context) {
|
|||||||
|
|
||||||
func (pc *metricsCollector) collect() []DataItem {
|
func (pc *metricsCollector) collect() []DataItem {
|
||||||
var dataItems []DataItem
|
var dataItems []DataItem
|
||||||
for name, labelVals := range pc.Metrics {
|
for metric, labelVals := range pc.Metrics {
|
||||||
metricFamily, err := testutil.GetMetricFamilyFromGatherer(legacyregistry.DefaultGatherer, name)
|
|
||||||
if err != nil {
|
|
||||||
klog.Error(err)
|
|
||||||
return dataItems
|
|
||||||
}
|
|
||||||
// no filter is specified, aggregate all the metrics within the same metricFamily.
|
// no filter is specified, aggregate all the metrics within the same metricFamily.
|
||||||
if labelVals == nil {
|
if labelVals == nil {
|
||||||
vec := testutil.GetHistogramVec(metricFamily, nil)
|
dataItem := collectHistogramVec(metric, pc.labels, nil)
|
||||||
dataItem := collectHistogramData(vec, pc.labels, nil, name)
|
|
||||||
if dataItem != nil {
|
if dataItem != nil {
|
||||||
dataItems = append(dataItems, *dataItem)
|
dataItems = append(dataItems, *dataItem)
|
||||||
}
|
}
|
||||||
@ -225,8 +219,7 @@ func (pc *metricsCollector) collect() []DataItem {
|
|||||||
// fetch the metric from metricFamily which match each of the lvMap.
|
// fetch the metric from metricFamily which match each of the lvMap.
|
||||||
for _, value := range labelVals.values {
|
for _, value := range labelVals.values {
|
||||||
lvMap := map[string]string{labelVals.label: value}
|
lvMap := map[string]string{labelVals.label: value}
|
||||||
vec := testutil.GetHistogramVec(metricFamily, lvMap)
|
dataItem := collectHistogramVec(metric, pc.labels, lvMap)
|
||||||
dataItem := collectHistogramData(vec, pc.labels, lvMap, name)
|
|
||||||
if dataItem != nil {
|
if dataItem != nil {
|
||||||
dataItems = append(dataItems, *dataItem)
|
dataItems = append(dataItems, *dataItem)
|
||||||
}
|
}
|
||||||
@ -236,10 +229,13 @@ func (pc *metricsCollector) collect() []DataItem {
|
|||||||
return dataItems
|
return dataItems
|
||||||
}
|
}
|
||||||
|
|
||||||
func collectHistogramData(vec testutil.HistogramVec, labels, lvMap map[string]string, metric string) *DataItem {
|
func collectHistogramVec(metric string, labels map[string]string, lvMap map[string]string) *DataItem {
|
||||||
if len(vec) == 0 {
|
vec, err := testutil.GetHistogramVecFromGatherer(legacyregistry.DefaultGatherer, metric, lvMap)
|
||||||
|
if err != nil {
|
||||||
|
klog.Error(err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := vec.Validate(); err != nil {
|
if err := vec.Validate(); err != nil {
|
||||||
klog.Error(err)
|
klog.Error(err)
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user