11package main
22
33import (
4- "context"
54 "time"
65
76 "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption"
@@ -43,6 +42,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
4342 "usageDate" ,
4443 },
4544 )
45+ m .Collector .RegisterMetricList ("reservationInfo" , m .prometheus .reservationInfo , true )
4646
4747 m .prometheus .reservationUsage = prometheus .NewGaugeVec (
4848 prometheus.GaugeOpts {
@@ -57,6 +57,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
5757 "usageDate" ,
5858 },
5959 )
60+ m .Collector .RegisterMetricList ("reservationUsage" , m .prometheus .reservationUsage , true )
6061
6162 m .prometheus .reservationMinUsage = prometheus .NewGaugeVec (
6263 prometheus.GaugeOpts {
@@ -71,6 +72,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
7172 "usageDate" ,
7273 },
7374 )
75+ m .Collector .RegisterMetricList ("reservationMinUsage" , m .prometheus .reservationMinUsage , true )
7476
7577 m .prometheus .reservationMaxUsage = prometheus .NewGaugeVec (
7678 prometheus.GaugeOpts {
@@ -85,6 +87,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
8587 "usageDate" ,
8688 },
8789 )
90+ m .Collector .RegisterMetricList ("reservationMaxUsage" , m .prometheus .reservationMaxUsage , true )
8891
8992 m .prometheus .reservationUsedHours = prometheus .NewGaugeVec (
9093 prometheus.GaugeOpts {
@@ -99,6 +102,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
99102 "usageDate" ,
100103 },
101104 )
105+ m .Collector .RegisterMetricList ("reservationUsedHours" , m .prometheus .reservationUsedHours , true )
102106
103107 m .prometheus .reservationReservedHours = prometheus .NewGaugeVec (
104108 prometheus.GaugeOpts {
@@ -113,6 +117,7 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
113117 "usageDate" ,
114118 },
115119 )
120+ m .Collector .RegisterMetricList ("reservationReservedHours" , m .prometheus .reservationReservedHours , true )
116121
117122 m .prometheus .reservationTotalReservedQuantity = prometheus .NewGaugeVec (
118123 prometheus.GaugeOpts {
@@ -127,13 +132,6 @@ func (m *MetricsCollectorAzureRmReservation) Setup(collector *collector.Collecto
127132 "usageDate" ,
128133 },
129134 )
130-
131- m .Collector .RegisterMetricList ("reservationInfo" , m .prometheus .reservationInfo , true )
132- m .Collector .RegisterMetricList ("reservationUsage" , m .prometheus .reservationUsage , true )
133- m .Collector .RegisterMetricList ("reservationMinUsage" , m .prometheus .reservationMinUsage , true )
134- m .Collector .RegisterMetricList ("reservationMaxUsage" , m .prometheus .reservationMaxUsage , true )
135- m .Collector .RegisterMetricList ("reservationUsedHours" , m .prometheus .reservationUsedHours , true )
136- m .Collector .RegisterMetricList ("reservationReservedHours" , m .prometheus .reservationReservedHours , true )
137135 m .Collector .RegisterMetricList ("reservationTotalReservedQuantity" , m .prometheus .reservationTotalReservedQuantity , true )
138136}
139137
@@ -152,7 +150,6 @@ func (m *MetricsCollectorAzureRmReservation) collectReservationUsage(logger *zap
152150 reservationReservedHours := m .Collector .GetMetricList ("reservationReservedHours" )
153151 reservationTotalReservedQuantity := m .Collector .GetMetricList ("reservationTotalReservedQuantity" )
154152
155- ctx := context .Background ()
156153 days := Config .Collectors .Reservation .FromDays
157154 resourceScope := Config .Collectors .Reservation .ResourceScope
158155 granularity := Config .Collectors .Reservation .Granularity
@@ -178,39 +175,27 @@ func (m *MetricsCollectorAzureRmReservation) collectReservationUsage(logger *zap
178175
179176 // Collect and export metrics
180177 for pager .More () {
181- page , err := pager .NextPage (ctx )
178+ page , err := pager .NextPage (m . Context () )
182179 if err != nil {
183180 logger .Panic (err )
184181 }
185182
186183 for _ , reservationProperties := range page .Value {
187- reservationOrderID := reservationProperties .Properties .ReservationOrderID
188- reservationID := reservationProperties .Properties .ReservationID
189- skuName := reservationProperties .Properties .SKUName
190- kind := reservationProperties .Properties .Kind
191- reservedHours := reservationProperties .Properties .ReservedHours
192- usageDate := reservationProperties .Properties .UsageDate .String ()
193- usedHours := reservationProperties .Properties .UsedHours
194- minUtilizationPercentage := reservationProperties .Properties .MinUtilizationPercentage
195- avgUtilizationPercentage := reservationProperties .Properties .AvgUtilizationPercentage
196- maxUtilizationPercentage := reservationProperties .Properties .MaxUtilizationPercentage
197- totalReservedQuantity := reservationProperties .Properties .TotalReservedQuantity
198-
199184 labels := prometheus.Labels {
200- "reservationOrderID" : to .String (reservationOrderID ),
201- "reservationID" : to .String (reservationID ),
202- "skuName" : to .String (skuName ),
203- "kind" : to .String (kind ),
204- "usageDate" : usageDate ,
185+ "reservationOrderID" : to .String (reservationProperties . Properties . ReservationOrderID ),
186+ "reservationID" : to .String (reservationProperties . Properties . ReservationID ),
187+ "skuName" : to .String (reservationProperties . Properties . SKUName ),
188+ "kind" : to .String (reservationProperties . Properties . Kind ),
189+ "usageDate" : reservationProperties . Properties . UsageDate . String () ,
205190 }
206191
207192 reservationInfo .AddInfo (labels )
208- reservationUsage .AddIfNotNil (labels , avgUtilizationPercentage )
209- reservationMinUsage .AddIfNotNil (labels , minUtilizationPercentage )
210- reservationMaxUsage .AddIfNotNil (labels , maxUtilizationPercentage )
211- reservationUsedHours .AddIfNotNil (labels , usedHours )
212- reservationReservedHours .AddIfNotNil (labels , reservedHours )
213- reservationTotalReservedQuantity .AddIfNotNil (labels , totalReservedQuantity )
193+ reservationUsage .AddIfNotNil (labels , reservationProperties . Properties . AvgUtilizationPercentage )
194+ reservationMinUsage .AddIfNotNil (labels , reservationProperties . Properties . MinUtilizationPercentage )
195+ reservationMaxUsage .AddIfNotNil (labels , reservationProperties . Properties . MaxUtilizationPercentage )
196+ reservationUsedHours .AddIfNotNil (labels , reservationProperties . Properties . UsedHours )
197+ reservationReservedHours .AddIfNotNil (labels , reservationProperties . Properties . ReservedHours )
198+ reservationTotalReservedQuantity .AddIfNotNil (labels , reservationProperties . Properties . TotalReservedQuantity )
214199 }
215200 }
216201}
0 commit comments