Skip to content

Commit 9efa6ed

Browse files
authored
Added logic to run the profiling server as required (#3369)
1 parent 7d2dccb commit 9efa6ed

File tree

9 files changed

+42
-0
lines changed

9 files changed

+42
-0
lines changed

cmd/syncer/main.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"flag"
2222
"fmt"
2323
"net/http"
24+
_ "net/http/pprof"
2425
"os"
2526
"os/signal"
2627
"regexp"
@@ -84,6 +85,7 @@ var (
8485
internalFSSNamespace = flag.String("fss-namespace", "", "Namespace of the feature state switch configmap")
8586
periodicSyncIntervalInMin = flag.Duration("storagequota-sync-interval", 30*time.Minute,
8687
"Periodic sync interval in Minutes")
88+
enableProfileServer = flag.Bool("enable-profile-server", false, "Enable profiling endpoint for the syncer.")
8789
)
8890

8991
// main for vsphere syncer.
@@ -98,6 +100,16 @@ func main() {
98100
ctx, log := logger.GetNewContextWithLogger()
99101
log.Infof("Version : %s", syncer.Version)
100102

103+
if *enableProfileServer {
104+
go func() {
105+
log.Info("Starting the http server to expose profiling metrics..")
106+
err := http.ListenAndServe(":9501", nil)
107+
if err != nil {
108+
log.Fatalf("Unable to start profiling server: %s", err)
109+
}
110+
}()
111+
}
112+
101113
// Set CO agnostic init params.
102114
clusterFlavor, err := config.GetClusterFlavor(ctx)
103115
if err != nil {

cmd/vsphere-csi/main.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"context"
2121
"flag"
2222
"fmt"
23+
"net/http"
24+
_ "net/http/pprof"
2325
"os"
2426
"os/signal"
2527
"syscall"
@@ -41,6 +43,7 @@ var (
4143
"Namespace of the feature state switch configmap in supervisor cluster")
4244
internalFSSName = flag.String("fss-name", "", "Name of the feature state switch configmap")
4345
internalFSSNamespace = flag.String("fss-namespace", "", "Namespace of the feature state switch configmap")
46+
enableProfileServer = flag.Bool("enable-profile-server", false, "Enable profiling endpoint for the controller.")
4447
)
4548

4649
// main is ignored when this package is built as a go plug-in.
@@ -55,6 +58,16 @@ func main() {
5558
ctx, log := logger.GetNewContextWithLogger()
5659
log.Infof("Version : %s", service.Version)
5760

61+
if *enableProfileServer {
62+
go func() {
63+
log.Info("Starting the http server to expose profiling metrics..")
64+
err := http.ListenAndServe(":9500", nil)
65+
if err != nil {
66+
log.Fatalf("Unable to start profiling server: %s", err)
67+
}
68+
}()
69+
}
70+
5871
// Set CO Init params.
5972
clusterFlavor, err := csiconfig.GetClusterFlavor(ctx)
6073
if err != nil {

manifests/guestcluster/1.31/pvcsi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ spec:
200200
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
201201
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
202202
- "--fss-namespace=$(CSI_NAMESPACE)"
203+
- "--enable-profile-server=false"
203204
imagePullPolicy: "IfNotPresent"
204205
ports:
205206
- containerPort: 2112
@@ -270,6 +271,7 @@ spec:
270271
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
271272
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
272273
- "--fss-namespace=$(CSI_NAMESPACE)"
274+
- "--enable-profile-server=false"
273275
imagePullPolicy: "IfNotPresent"
274276
ports:
275277
- containerPort: 2113

manifests/guestcluster/1.32/pvcsi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ spec:
200200
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
201201
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
202202
- "--fss-namespace=$(CSI_NAMESPACE)"
203+
- "--enable-profile-server=false"
203204
imagePullPolicy: "IfNotPresent"
204205
ports:
205206
- containerPort: 2112
@@ -270,6 +271,7 @@ spec:
270271
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
271272
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
272273
- "--fss-namespace=$(CSI_NAMESPACE)"
274+
- "--enable-profile-server=false"
273275
imagePullPolicy: "IfNotPresent"
274276
ports:
275277
- containerPort: 2113

manifests/guestcluster/1.33/pvcsi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ spec:
200200
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
201201
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
202202
- "--fss-namespace=$(CSI_NAMESPACE)"
203+
- "--enable-profile-server=false"
203204
imagePullPolicy: "IfNotPresent"
204205
ports:
205206
- containerPort: 2112
@@ -270,6 +271,7 @@ spec:
270271
- "--supervisor-fss-namespace=$(CSI_NAMESPACE)"
271272
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
272273
- "--fss-namespace=$(CSI_NAMESPACE)"
274+
- "--enable-profile-server=false"
273275
imagePullPolicy: "IfNotPresent"
274276
ports:
275277
- containerPort: 2113

manifests/supervisorcluster/1.29/cns-csi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,8 @@ spec:
375375
name: socket-dir
376376
- name: vsphere-csi-controller
377377
image: localhost:5000/vmware/vsphere-csi:<vsphere_csi_ver>
378+
args:
379+
- "--enable-profile-server=false"
378380
ports:
379381
- containerPort: 2112
380382
name: prometheus
@@ -446,6 +448,7 @@ spec:
446448
- "--leader-election-retry-period=30s"
447449
- "--storagequota-sync-interval=10m"
448450
- "--webhook-client-cert-verification"
451+
- "--enable-profile-server=false"
449452
env:
450453
- name: CLUSTER_FLAVOR
451454
value: "WORKLOAD"

manifests/supervisorcluster/1.30/cns-csi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ spec:
382382
name: socket-dir
383383
- name: vsphere-csi-controller
384384
image: localhost:5000/vmware/vsphere-csi:<vsphere_csi_ver>
385+
args:
386+
- "--enable-profile-server=false"
385387
ports:
386388
- containerPort: 2112
387389
name: prometheus
@@ -453,6 +455,7 @@ spec:
453455
- "--leader-election-retry-period=30s"
454456
- "--storagequota-sync-interval=10m"
455457
- "--webhook-client-cert-verification"
458+
- "--enable-profile-server=false"
456459
env:
457460
- name: CLUSTER_FLAVOR
458461
value: "WORKLOAD"

manifests/supervisorcluster/1.31/cns-csi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ spec:
382382
name: socket-dir
383383
- name: vsphere-csi-controller
384384
image: localhost:5000/vmware/vsphere-csi:<vsphere_csi_ver>
385+
args:
386+
- "--enable-profile-server=false"
385387
ports:
386388
- containerPort: 2112
387389
name: prometheus
@@ -453,6 +455,7 @@ spec:
453455
- "--leader-election-retry-period=30s"
454456
- "--storagequota-sync-interval=10m"
455457
- "--webhook-client-cert-verification"
458+
- "--enable-profile-server=false"
456459
env:
457460
- name: CLUSTER_FLAVOR
458461
value: "WORKLOAD"

manifests/vanilla/vsphere-csi-driver.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ spec:
282282
args:
283283
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
284284
- "--fss-namespace=$(CSI_NAMESPACE)"
285+
- "--enable-profile-server=false"
285286
imagePullPolicy: "Always"
286287
env:
287288
- name: CSI_ENDPOINT
@@ -346,6 +347,7 @@ spec:
346347
- "--leader-election-retry-period=10s"
347348
- "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
348349
- "--fss-namespace=$(CSI_NAMESPACE)"
350+
- "--enable-profile-server=false"
349351
imagePullPolicy: "Always"
350352
ports:
351353
- containerPort: 2113

0 commit comments

Comments
 (0)