Skip to content

Commit d48cf26

Browse files
authored
Merge pull request #210 from coroot/fix_cloud_metadata_overrides
fix handling of cloud metadata overrides
2 parents f814092 + 0e74da3 commit d48cf26

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

main.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,14 @@ func main() {
144144
registerer.MustRegister(info("node_agent_info", version))
145145

146146
if md := nodeCollector.Metadata(); md != nil {
147-
registerer = prometheus.WrapRegistererWith(
148-
prometheus.Labels{"az": md.AvailabilityZone, "region": md.Region},
149-
registerer,
150-
)
147+
region := md.Region
148+
az := md.AvailabilityZone
149+
if region != "" && az != "" {
150+
registerer = prometheus.WrapRegistererWith(
151+
prometheus.Labels{"az": md.AvailabilityZone, "region": md.Region},
152+
registerer,
153+
)
154+
}
151155
}
152156
processInfoCh := profiling.Init(machineId, hostname)
153157
cr, err := containers.NewRegistry(registerer, processInfoCh)

node/collector.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,24 @@ type Collector struct {
154154

155155
func NewCollector(hostname, kernelVersion string) *Collector {
156156
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+
}
157175
klog.Infof("instance metadata: %+v", md)
158176
return &Collector{
159177
hostname: hostname,
@@ -235,29 +253,11 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) {
235253
}
236254
}
237255
}
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-
}
258256
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,
261261
)
262262
}
263263

0 commit comments

Comments
 (0)