Skip to content

Commit

Permalink
Tag Prometheus run time info metrics as deprecated (#1217)
Browse files Browse the repository at this point in the history
Deprecate run time info metrics that provide node name and pod name
from Antrea 0.10.0. These metrics will be removed Antrea 0.11.0.

In addition, antrea-prometheus.yaml is changed to add nodename and
pod name to instance label instead of default IP:port. This will help
with promql queries to search for metrics on a specific node or pod.
  • Loading branch information
srikartati authored Sep 18, 2020
1 parent 8450d55 commit 03bcb94
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 19 deletions.
4 changes: 4 additions & 0 deletions build/yamls/antrea-prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ data:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_container_name]
action: keep
regex: kube-system;antrea-controller
- source_labels: [__meta_kubernetes_pod_node_name, __meta_kubernetes_pod_name]
target_label: instance
# Scrape Antrea Agents metrics
- job_name: 'antrea-agents'
Expand All @@ -103,6 +105,8 @@ data:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_container_name]
action: keep
regex: kube-system;antrea-agent
- source_labels: [__meta_kubernetes_pod_node_name, __meta_kubernetes_pod_name]
target_label: instance
---
# Prometheus Server deployment
apiVersion: apps/v1
Expand Down
9 changes: 8 additions & 1 deletion docs/prometheus-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ rules:
### Antrea Components Scraping configuration
Add the following jobs to Prometheus scraping configuration to enable metrics
collection from Antrea components
collection from Antrea components. Antrea Agent metrics endpoint is exposed through
Antrea apiserver on `apiport` config parameter given in `antrea-agent.conf` (default
value is 10350). Antrea Controller metrics endpoint is exposed through Antrea apiserver
on `apiport` config parameter given in `antrea-controller.conf` (default value is 10349).

#### Controller Scraping
```yaml
Expand All @@ -85,6 +88,8 @@ relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_container_name]
action: keep
regex: kube-system;antrea-controller
- source_labels: [__meta_kubernetes_pod_node_name, __meta_kubernetes_pod_name]
target_label: instance
```

#### Agent Scraping
Expand All @@ -101,6 +106,8 @@ relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_container_name]
action: keep
regex: kube-system;antrea-agent
- source_labels: [__meta_kubernetes_pod_node_name, __meta_kubernetes_pod_name]
target_label: instance
```
For further reference see the enclosed
[configuration file](/build/yamls/antrea-prometheus.yml).
Expand Down
17 changes: 8 additions & 9 deletions pkg/agent/metrics/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,19 @@ func InitializePrometheusMetrics() {
if err != nil {
klog.Errorf("Failed to retrieve agent K8S node name: %v", err)
}

gaugeHost := metrics.NewGauge(&metrics.GaugeOpts{
Name: "antrea_agent_runtime_info",
Help: "Antrea agent runtime info , defined as labels. The value of the gauge is always set to 1.",

ConstLabels: metrics.Labels{"k8s_nodename": nodeName, "k8s_podname": env.GetPodName()},
StabilityLevel: metrics.STABLE,
deprecatedGaugeHost := metrics.NewGauge(&metrics.GaugeOpts{
Name: "antrea_agent_runtime_info",
Help: "Antrea agent runtime info (Deprecated since Antrea 0.10.0), defined as labels. The value of the gauge is always set to 1.",
ConstLabels: metrics.Labels{"k8s_nodename": nodeName, "k8s_podname": env.GetPodName()},
StabilityLevel: metrics.STABLE,
DeprecatedVersion: "0.10.0",
})
if err := legacyregistry.Register(gaugeHost); err != nil {
if err := legacyregistry.Register(deprecatedGaugeHost); err != nil {
klog.Error("Failed to register antrea_agent_runtime_info with Prometheus")
}
// This must be after registering the metrics.Gauge as it is lazily instantiated
// and will not measure anything unless the collector is first registered.
gaugeHost.Set(1)
deprecatedGaugeHost.Set(1)

InitializePodMetrics()
InitializeNetworkPolicyMetrics()
Expand Down
20 changes: 11 additions & 9 deletions pkg/controller/metrics/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,24 +72,26 @@ var (

// Initialize Prometheus metrics collection.
func InitializePrometheusMetrics() {
klog.Info("Initializing prometheus metrics")

nodeName, err := env.GetNodeName()
if err != nil {
klog.Errorf("Failed to retrieve controller K8S node name: %v", err)
}

klog.Info("Initializing prometheus metrics")
gaugeHost := metrics.NewGauge(&metrics.GaugeOpts{
Name: "antrea_controller_runtime_info",
Help: "Antrea controller runtime info, defined as labels. The value of the gauge is always set to 1.",
ConstLabels: metrics.Labels{"k8s_nodename": nodeName, "k8s_podname": env.GetPodName()},
StabilityLevel: metrics.STABLE,
deprecatedGaugeHost := metrics.NewGauge(&metrics.GaugeOpts{
Name: "antrea_controller_runtime_info",
Help: "Antrea controller runtime info (Deprecated since Antrea 0.10.0), defined as labels. The value of the gauge is always set to 1.",
ConstLabels: metrics.Labels{"k8s_nodename": nodeName, "k8s_podname": env.GetPodName()},
StabilityLevel: metrics.STABLE,
DeprecatedVersion: "0.10.0",
})
if err = legacyregistry.Register(gaugeHost); err != nil {
if err = legacyregistry.Register(deprecatedGaugeHost); err != nil {
klog.Errorf("Failed to register antrea_controller_runtime_info with Prometheus: %s", err.Error())
}
// This must be after registering the metrics.Gauge as it is lazily instantiated
// and will not measure anything unless the collector is first registered.
gaugeHost.Set(1)
deprecatedGaugeHost.Set(1)

if err := legacyregistry.Register(OpsAppliedToGroupProcessed); err != nil {
klog.Errorf("Failed to register antrea_controller_applied_to_group_processed with Prometheus: %s", err.Error())
}
Expand Down

0 comments on commit 03bcb94

Please sign in to comment.