@@ -154,6 +154,24 @@ type Collector struct {
154
154
155
155
func NewCollector (hostname , kernelVersion string ) * Collector {
156
156
md := metadata .GetInstanceMetadata ()
157
+ if md == nil {
158
+ md = & metadata.CloudMetadata {}
159
+ }
160
+ if f := flags .GetString (flags .Provider ); f != "" {
161
+ md .Provider = metadata .CloudProvider (f )
162
+ }
163
+ if f := flags .GetString (flags .Region ); f != "" {
164
+ md .Region = f
165
+ }
166
+ if f := flags .GetString (flags .AvailabilityZone ); f != "" {
167
+ md .AvailabilityZone = f
168
+ }
169
+ if f := flags .GetString (flags .InstanceType ); f != "" {
170
+ md .InstanceType = f
171
+ }
172
+ if f := flags .GetString (flags .InstanceLifeCycle ); f != "" {
173
+ md .LifeCycle = f
174
+ }
157
175
klog .Infof ("instance metadata: %+v" , md )
158
176
return & Collector {
159
177
hostname : hostname ,
@@ -235,29 +253,11 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) {
235
253
}
236
254
}
237
255
}
238
-
239
- im := metadata.CloudMetadata {}
240
- if c .instanceMetadata != nil {
241
- im = * c .instanceMetadata
242
- }
243
- if f := flags .GetString (flags .Provider ); f != "" {
244
- im .Provider = metadata .CloudProvider (f )
245
- }
246
- if f := flags .GetString (flags .Region ); f != "" {
247
- im .Region = f
248
- }
249
- if f := flags .GetString (flags .AvailabilityZone ); f != "" {
250
- im .AvailabilityZone = f
251
- }
252
- if f := flags .GetString (flags .InstanceType ); f != "" {
253
- im .InstanceType = f
254
- }
255
- if f := flags .GetString (flags .InstanceLifeCycle ); f != "" {
256
- im .LifeCycle = f
257
- }
258
256
ch <- gauge (cloudInfoDesc , 1 ,
259
- string (im .Provider ), im .AccountId , im .InstanceId , im .InstanceType , im .LifeCycle ,
260
- im .Region , im .AvailabilityZone , im .AvailabilityZoneId , im .LocalIPv4 , im .PublicIPv4 ,
257
+ string (c .instanceMetadata .Provider ), c .instanceMetadata .AccountId , c .instanceMetadata .InstanceId ,
258
+ c .instanceMetadata .InstanceType , c .instanceMetadata .LifeCycle ,
259
+ c .instanceMetadata .Region , c .instanceMetadata .AvailabilityZone , c .instanceMetadata .AvailabilityZoneId ,
260
+ c .instanceMetadata .LocalIPv4 , c .instanceMetadata .PublicIPv4 ,
261
261
)
262
262
}
263
263
0 commit comments