Skip to content

Commit 8d3d790

Browse files
committed
Create a startup time metric
1 parent eb0edda commit 8d3d790

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

pkg/driver/driver.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ type Option func(*NetworkDriver)
106106

107107
func Start(ctx context.Context, driverName string, kubeClient kubernetes.Interface, nodeName string, opts ...Option) (*NetworkDriver, error) {
108108
registerMetrics()
109+
109110

110111
rdmaNetnsMode, err := nlwrap.RdmaSystemGetNetnsMode()
111112
if err != nil {
@@ -192,11 +193,13 @@ func Start(ctx context.Context, driverName string, kubeClient kubernetes.Interfa
192193
plugin.netdb = inventory.New()
193194
}
194195
go func() {
196+
begin := time.Now()
195197
for i := 0; i < maxAttempts; i++ {
196198
err = plugin.netdb.Run(ctx)
197199
if err != nil {
198200
klog.Infof("Network Device DB failed with error %v", err)
199201
}
202+
inventoryStartupDurationSeconds.Set(time.Since(begin).Seconds())
200203
select {
201204
case <-ctx.Done():
202205
return

pkg/driver/metrics.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func registerMetrics() {
4747
prometheus.MustRegister(nriPluginRequestsLatencySeconds)
4848
prometheus.MustRegister(publishedDevicesTotal)
4949
prometheus.MustRegister(lastPublishedTime)
50+
prometheus.MustRegister(inventoryStartupDurationSeconds)
5051
})
5152
}
5253

@@ -87,4 +88,10 @@ var (
8788
Name: "last_published_time_seconds",
8889
Help: "The timestamp of the last successful resource publication.",
8990
})
91+
inventoryStartupDurationSeconds = prometheus.NewGauge(prometheus.GaugeOpts{
92+
Namespace: "dranet",
93+
Subsystem: "driver",
94+
Name: "inventory_startup_duration_seconds",
95+
Help: "The duration of the inventory startup.",
96+
})
9097
)

0 commit comments

Comments
 (0)