Skip to content

Commit da5eb6d

Browse files
Merge pull request #758 from miguellavalle/collector-ovndbcluster
Add OVS database server metrics collection support
2 parents 9faf043 + 931e58b commit da5eb6d

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

controllers/metricstorage_controller.go

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,18 @@ func (r *MetricStorageReconciler) createScrapeConfigs(
873873
return ctrl.Result{}, err
874874
}
875875

876+
// ScrapeConfig for OVS DB Server NB metrics
877+
err = r.createOVSDBServerNBScrapeConfig(ctx, instance, helper, serviceLabels)
878+
if err != nil {
879+
return ctrl.Result{}, err
880+
}
881+
882+
// ScrapeConfig for OVS DB Server SB metrics
883+
err = r.createOVSDBServerSBScrapeConfig(ctx, instance, helper, serviceLabels)
884+
if err != nil {
885+
return ctrl.Result{}, err
886+
}
887+
876888
instance.Status.Conditions.MarkTrue(telemetryv1.ScrapeConfigReadyCondition, condition.ReadyMessage)
877889
return ctrl.Result{}, nil
878890
}
@@ -1049,6 +1061,44 @@ func (r *MetricStorageReconciler) createOVNControllerScrapeConfig(
10491061
)
10501062
}
10511063

1064+
// createOVSDBServerNBScrapeConfig creates a scrape configuration for OVS DB Server NB metrics
1065+
// This function discovers OVS DB Server NB metrics services using label selectors
1066+
func (r *MetricStorageReconciler) createOVSDBServerNBScrapeConfig(
1067+
ctx context.Context,
1068+
instance *telemetryv1.MetricStorage,
1069+
helper *helper.Helper,
1070+
serviceLabels map[string]string,
1071+
) error {
1072+
labelSelector := map[string]string{
1073+
"metrics": "enabled",
1074+
"service": "ovsdbserver-nb",
1075+
}
1076+
ovsdbServerNBCfgName := fmt.Sprintf("%s-ovsdbserver-nb", telemetry.ServiceName)
1077+
return r.createServiceScrapeConfigFromLabelSelector(
1078+
ctx, instance, helper, serviceLabels,
1079+
labelSelector, "metrics", ovsdbServerNBCfgName, "OVS DB server NB",
1080+
)
1081+
}
1082+
1083+
// createOVSDBServerSBScrapeConfig creates a scrape configuration for OVS DB Server SB metrics
1084+
// This function discovers OVS DB Server SB metrics services using label selectors
1085+
func (r *MetricStorageReconciler) createOVSDBServerSBScrapeConfig(
1086+
ctx context.Context,
1087+
instance *telemetryv1.MetricStorage,
1088+
helper *helper.Helper,
1089+
serviceLabels map[string]string,
1090+
) error {
1091+
labelSelector := map[string]string{
1092+
"metrics": "enabled",
1093+
"service": "ovsdbserver-sb",
1094+
}
1095+
ovsdbServerSBCfgName := fmt.Sprintf("%s-ovsdbserver-sb", telemetry.ServiceName)
1096+
return r.createServiceScrapeConfigFromLabelSelector(
1097+
ctx, instance, helper, serviceLabels,
1098+
labelSelector, "metrics", ovsdbServerSBCfgName, "OVS DB server SB",
1099+
)
1100+
}
1101+
10521102
func (r *MetricStorageReconciler) createDashboardObjects(ctx context.Context, instance *telemetryv1.MetricStorage, helper *helper.Helper, eventHandler handler.EventHandler) (ctrl.Result, error) {
10531103
Log := r.GetLogger(ctx)
10541104
uiPluginObj := &obsui.UIPlugin{
@@ -1465,7 +1515,7 @@ func (r *MetricStorageReconciler) SetupWithManager(ctx context.Context, mgr ctrl
14651515

14661516
// Watch OVN metrics services
14671517
if labels := o.GetLabels(); labels != nil {
1468-
if labels["metrics"] == "enabled" && (labels["service"] == "ovn-northd" || labels["service"] == "ovn-controller-metrics") {
1518+
if labels["metrics"] == "enabled" && (labels["service"] == "ovn-northd" || labels["service"] == "ovn-controller-metrics" || labels["service"] == "ovsdbserver-nb" || labels["service"] == "ovsdbserver-sb") {
14691519
// get all metricstorage CRs in the same namespace
14701520
metricStorages := &telemetryv1.MetricStorageList{}
14711521
listOpts := []client.ListOption{

0 commit comments

Comments
 (0)