mirror of
https://github.com/grafana/grafana.git
synced 2026-08-13 14:45:02 -05:00
RBAC: Add metric to count search user permissions cache hits (#81451)
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user