m/n/c/metrics: add kube-apiserver
This adds the Kubernetes API Server metrics to the list of exported
metrics.
Change-Id: Ie5827441362787a3bff03ec6cff1f07332b0ae34
Reviewed-on: https://review.monogon.dev/c/monogon/+/2335
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/core/metrics/exporters.go b/metropolis/node/core/metrics/exporters.go
index d39081c..270ec8b 100644
--- a/metropolis/node/core/metrics/exporters.go
+++ b/metropolis/node/core/metrics/exporters.go
@@ -55,6 +55,10 @@
Name: "kubernetes-controller-manager",
Port: node.MetricsKubeControllerManagerListenerPort,
},
+ {
+ Name: "kubernetes-apiserver",
+ Port: node.MetricsKubeAPIServerListenerPort,
+ },
}
func (e *Exporter) ServeHTTP(w http.ResponseWriter, r *http.Request) {
diff --git a/metropolis/node/kubernetes/metricsproxy/metricsproxy.go b/metropolis/node/kubernetes/metricsproxy/metricsproxy.go
index 14f76a0..02bce4b 100644
--- a/metropolis/node/kubernetes/metricsproxy/metricsproxy.go
+++ b/metropolis/node/kubernetes/metricsproxy/metricsproxy.go
@@ -48,6 +48,12 @@
ListenPort: node.MetricsKubeControllerManagerListenerPort,
ServerName: "kube-controller-manager.local",
},
+ {
+ Name: "kubernetes-apiserver",
+ TargetPort: node.KubernetesAPIPort,
+ ListenPort: node.MetricsKubeAPIServerListenerPort,
+ ServerName: "kubernetes",
+ },
}
type metricsService struct {
diff --git a/metropolis/node/ports.go b/metropolis/node/ports.go
index cf9b0e0..9907280 100644
--- a/metropolis/node/ports.go
+++ b/metropolis/node/ports.go
@@ -59,6 +59,10 @@
// proxy for the controller-manager runs, bound to 127.0.0.1. The metrics
// service proxies traffic to it from the public MetricsPort.
MetricsKubeControllerManagerListenerPort Port = 7844
+ // MetricsKubeControllerManagerListenerPort is the TCP port on which the
+ // proxy for the controller-manager runs, bound to 127.0.0.1. The metrics
+ // service proxies traffic to it from the public MetricsPort.
+ MetricsKubeAPIServerListenerPort Port = 7845
// KubernetesAPIPort is the TCP port on which the Kubernetes API is
// exposed.
KubernetesAPIPort Port = 6443