Revision 9b72a5cf9c68e7b99230a45843583901812d2a08 authored by Daniel Borkmann on 03 May 2024, 13:39:42 UTC, committed by Daniel Borkmann on 03 May 2024, 13:56:45 UTC
Turn it off until we have a new v1.15 stable release with #32337 included. Without the PR the IPSec downgrade test on v1.15 reported small blips of connectivity interruption. We can revert this commit once v1.15.5 is out. Reported-by: Julian Wiedmann <jwi@isovalent.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
1 parent 8552def
interfaces.go
// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of Cilium
package metrics
import (
"github.com/prometheus/client_golang/prometheus"
dto "github.com/prometheus/client_model/go"
"github.com/cilium/cilium/api/v1/client/daemon"
"github.com/cilium/cilium/api/v1/health/client/connectivity"
metricpkg "github.com/cilium/cilium/pkg/metrics/metric"
)
type daemonHealthGetter interface {
GetHealthz(params *daemon.GetHealthzParams, opts ...daemon.ClientOption) (*daemon.GetHealthzOK, error)
}
type connectivityStatusGetter interface {
GetStatus(params *connectivity.GetStatusParams, opts ...connectivity.ClientOption) (*connectivity.GetStatusOK, error)
}
var (
NoOpMetric prometheus.Metric = &mockMetric{}
NoOpCollector prometheus.Collector = &collector{}
NoOpCounter metricpkg.Counter = &counter{NoOpMetric, NoOpCollector}
NoOpCounterVec metricpkg.Vec[metricpkg.Counter] = &counterVec{NoOpCollector}
NoOpObserver metricpkg.Observer = &observer{}
NoOpHistogram metricpkg.Histogram = &histogram{NoOpCollector}
NoOpObserverVec metricpkg.Vec[metricpkg.Observer] = &observerVec{NoOpCollector}
NoOpGauge metricpkg.Gauge = &gauge{NoOpMetric, NoOpCollector}
NoOpGaugeVec metricpkg.Vec[metricpkg.Gauge] = &gaugeVec{NoOpCollector}
NoOpGaugeDeletableVec metricpkg.DeletableVec[metricpkg.Gauge] = &gaugeDeletableVec{gaugeVec{NoOpCollector}}
)
// Metric
type mockMetric struct{}
// *WARNING*: Desc returns nil so do not register this metric into prometheus
// default register.
func (m *mockMetric) Desc() *prometheus.Desc { return nil }
func (m *mockMetric) Write(*dto.Metric) error { return nil }
// Collector
type collector struct{}
func (c *collector) Describe(chan<- *prometheus.Desc) {}
func (c *collector) Collect(chan<- prometheus.Metric) {}
// Counter
type counter struct {
prometheus.Metric
prometheus.Collector
}
func (cv *counter) Add(float64) {}
func (cv *counter) Get() float64 { return 0 }
func (cv *counter) Inc() {}
func (cv *counter) IsEnabled() bool { return false }
func (cv *counter) SetEnabled(bool) {}
func (cv *counter) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// CounterVec
type counterVec struct{ prometheus.Collector }
func (cv *counterVec) With(prometheus.Labels) metricpkg.Counter { return NoOpGauge }
func (cv *counterVec) WithLabelValues(...string) metricpkg.Counter { return NoOpGauge }
func (cv *counterVec) CurryWith(prometheus.Labels) (metricpkg.Vec[metricpkg.Counter], error) {
return NoOpCounterVec, nil
}
func (cv *counterVec) MustCurryWith(prometheus.Labels) metricpkg.Vec[metricpkg.Counter] {
return NoOpCounterVec
}
func (cv *counterVec) GetMetricWith(prometheus.Labels) (metricpkg.Counter, error) {
return NoOpCounter, nil
}
func (cv *counterVec) GetMetricWithLabelValues(...string) (metricpkg.Counter, error) {
return NoOpCounter, nil
}
func (cv *counterVec) IsEnabled() bool { return false }
func (cv *counterVec) SetEnabled(bool) {}
func (cv *counterVec) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// Observer
type observer struct{}
func (o *observer) Observe(float64) {}
func (o *observer) IsEnabled() bool { return false }
func (o *observer) SetEnabled(bool) {}
func (o *observer) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// Histogram
type histogram struct {
prometheus.Collector
}
func (h *histogram) Observe(float64) {}
func (h *histogram) Desc() *prometheus.Desc { return nil }
func (h *histogram) Write(*dto.Metric) error { return nil }
func (h *histogram) IsEnabled() bool { return false }
func (h *histogram) SetEnabled(bool) {}
func (h *histogram) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// ObserverVec
type observerVec struct {
prometheus.Collector
}
func (ov *observerVec) GetMetricWith(prometheus.Labels) (metricpkg.Observer, error) {
return NoOpObserver, nil
}
func (ov *observerVec) GetMetricWithLabelValues(lvs ...string) (metricpkg.Observer, error) {
return NoOpObserver, nil
}
func (ov *observerVec) With(prometheus.Labels) metricpkg.Observer { return NoOpObserver }
func (ov *observerVec) WithLabelValues(...string) metricpkg.Observer { return NoOpObserver }
func (ov *observerVec) CurryWith(prometheus.Labels) (metricpkg.Vec[metricpkg.Observer], error) {
return NoOpObserverVec, nil
}
func (ov *observerVec) MustCurryWith(prometheus.Labels) metricpkg.Vec[metricpkg.Observer] {
return NoOpObserverVec
}
func (ov *observerVec) IsEnabled() bool { return false }
func (ov *observerVec) SetEnabled(bool) {}
func (ov *observerVec) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// Gauge
type gauge struct {
prometheus.Metric
prometheus.Collector
}
func (g *gauge) Set(float64) {}
func (g *gauge) Get() float64 { return 0 }
func (g *gauge) Inc() {}
func (g *gauge) Dec() {}
func (g *gauge) Add(float64) {}
func (g *gauge) Sub(float64) {}
func (g *gauge) SetToCurrentTime() {}
func (g *gauge) IsEnabled() bool { return false }
func (g *gauge) SetEnabled(bool) {}
func (g *gauge) Opts() metricpkg.Opts { return metricpkg.Opts{} }
// GaugeVec
type gaugeDeletableVec struct {
gaugeVec
}
func (*gaugeDeletableVec) Delete(ll prometheus.Labels) bool {
return false
}
func (*gaugeDeletableVec) DeleteLabelValues(lvs ...string) bool {
return false
}
func (*gaugeDeletableVec) DeletePartialMatch(labels prometheus.Labels) int {
return 0
}
func (*gaugeDeletableVec) Reset() {}
type gaugeVec struct {
prometheus.Collector
}
func (gv *gaugeVec) With(prometheus.Labels) metricpkg.Gauge { return NoOpGauge }
func (gv *gaugeVec) WithLabelValues(...string) metricpkg.Gauge { return NoOpGauge }
func (gv *gaugeVec) CurryWith(prometheus.Labels) (metricpkg.Vec[metricpkg.Gauge], error) {
return NoOpGaugeVec, nil
}
func (gv *gaugeVec) MustCurryWith(prometheus.Labels) metricpkg.Vec[metricpkg.Gauge] {
return NoOpGaugeVec
}
func (gv *gaugeVec) GetMetricWith(prometheus.Labels) (metricpkg.Gauge, error) {
return NoOpGauge, nil
}
func (gv *gaugeVec) GetMetricWithLabelValues(...string) (metricpkg.Gauge, error) {
return NoOpGauge, nil
}
func (gv *gaugeVec) IsEnabled() bool { return false }
func (gv *gaugeVec) SetEnabled(bool) {}
func (gv *gaugeVec) Opts() metricpkg.Opts { return metricpkg.Opts{} }
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...