Skip to content

Commit bbd23fc

Browse files
committed
Don’t request duplicate prinicpal IDs from AzureAD
Signed-off-by: Markus Blaschke <[email protected]>
1 parent 717ef1c commit bbd23fc

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

metrics_azurerm_iam.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,28 +139,33 @@ func (m *MetricsCollectorAzureRmIam) collectRoleAssignments(ctx context.Context,
139139

140140
infoMetric := prometheusCommon.NewMetricsList()
141141

142-
principalIdList := []string{}
142+
principalIdMap := map[string]string{}
143143

144144
for list.NotDone() {
145145
val := list.Value()
146+
principalId := *val.Properties.PrincipalID
146147

147148
infoLabels := prometheus.Labels{
148149
"subscriptionID": *subscription.SubscriptionID,
149150
"roleAssignmentID": *val.ID,
150151
"roleDefinitionID": extractRoleDefinitionIdFromAzureId(*val.Properties.RoleDefinitionID),
151152
"resourceID": *val.Properties.Scope,
152153
"resourceGroup": extractResourceGroupFromAzureId(*val.Properties.Scope),
153-
"principalID": *val.Properties.PrincipalID,
154+
"principalID": principalId,
154155
}
155156
infoMetric.AddInfo(infoLabels)
156157

157-
principalIdList = append(principalIdList, *val.Properties.PrincipalID)
158+
principalIdMap[principalId] = principalId
158159

159160
if list.NextWithContext(ctx) != nil {
160161
break
161162
}
162163
}
163164

165+
principalIdList := []string{}
166+
for _, val := range principalIdMap {
167+
principalIdList = append(principalIdList, val)
168+
}
164169
m.collectPrincipals(ctx, callback, subscription, principalIdList)
165170

166171
callback <- func() {
@@ -235,7 +240,6 @@ func (m *MetricsCollectorAzureRmIam) collectPrincipals(ctx context.Context, call
235240
}
236241
}
237242

238-
239243
callback <- func() {
240244
infoMetric.GaugeSet(m.prometheus.principal)
241245
}

0 commit comments

Comments
 (0)