RBAC: Add metric to count search user permissions cache hits (#81451)

pull/81545/head
Gabriel MABILLE 2 years ago committed by GitHub
parent d12493d654
commit 08f305797f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 10
      pkg/infra/metrics/metrics.go
  2. 3
      pkg/services/accesscontrol/acimpl/service.go

@ -108,6 +108,9 @@ var (
// MAccessPermissionsCacheUsage is a metric counter for cache usage
MAccessPermissionsCacheUsage *prometheus.CounterVec
// MAccessSearchUserPermissionsCacheUsage is a metric counter for cache usage
MAccessSearchUserPermissionsCacheUsage *prometheus.CounterVec
// MPublicDashboardRequestCount is a metric counter for public dashboards requests
MPublicDashboardRequestCount prometheus.Counter
@ -648,6 +651,12 @@ func init() {
Namespace: ExporterName,
}, []string{"status"}, map[string][]string{"status": accesscontrol.CacheUsageStatuses})
MAccessSearchUserPermissionsCacheUsage = metricutil.NewCounterVecStartingAtZero(prometheus.CounterOpts{
Name: "access_search_user_permissions_cache_usage",
Help: "access control search user permissions cache hit/miss",
Namespace: ExporterName,
}, []string{"status"}, map[string][]string{"status": accesscontrol.CacheUsageStatuses})
StatsTotalLibraryPanels = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "stat_totals_library_panels",
Help: "total amount of library panels in the database",
@ -768,6 +777,7 @@ func initMetricVars(reg prometheus.Registerer) {
MAccessSearchPermissionsSummary,
MAccessEvaluationCount,
MAccessPermissionsCacheUsage,
MAccessSearchUserPermissionsCacheUsage,
MAlertingActiveAlerts,
MStatTotalDashboards,
MStatTotalFolders,

@ -407,9 +407,12 @@ func (s *Service) searchUserPermissionsFromCache(orgID int64, searchOptions acce
key := permissionCacheKey(tempUser)
permissions, ok := s.cache.Get((key))
if !ok {
metrics.MAccessSearchUserPermissionsCacheUsage.WithLabelValues(accesscontrol.CacheMiss).Inc()
return nil, false
}
metrics.MAccessSearchUserPermissionsCacheUsage.WithLabelValues(accesscontrol.CacheHit).Inc()
s.log.Debug("Using cached permissions", "key", key)
filteredPermissions := make([]accesscontrol.Permission, 0)
for _, permission := range permissions.([]accesscontrol.Permission) {

Loading…
Cancel
Save