RegexResolver resolves tenantIDs matched given regex.
| 34 | |
| 35 | // RegexResolver resolves tenantIDs matched given regex. |
| 36 | type RegexResolver struct { |
| 37 | services.Service |
| 38 | |
| 39 | knownUsers []string |
| 40 | userSyncInterval time.Duration |
| 41 | maxTenant int |
| 42 | userScanner users.Scanner |
| 43 | logger log.Logger |
| 44 | sync.RWMutex |
| 45 | |
| 46 | // matchedCache stores the results of regex matching |
| 47 | matchedCache *lru.Cache[string, []string] |
| 48 | |
| 49 | // lastUpdateUserRun stores the timestamps of the latest update user loop run |
| 50 | lastUpdateUserRun prometheus.Gauge |
| 51 | // discoveredUsers stores the number of discovered user |
| 52 | discoveredUsers prometheus.Gauge |
| 53 | // matchedCacheSize stores the size of the matchedCache |
| 54 | matchedCacheSize prometheus.Gauge |
| 55 | |
| 56 | matchedCacheHits prometheus.Counter |
| 57 | matchedCacheMisses prometheus.Counter |
| 58 | } |
| 59 | |
| 60 | func NewRegexResolver(cfg users.UsersScannerConfig, tenantFederationCfg Config, reg prometheus.Registerer, bucketClientFactory func(ctx context.Context) (objstore.InstrumentedBucket, error), logger log.Logger) (*RegexResolver, error) { |
| 61 | bucketClient, err := bucketClientFactory(context.Background()) |
nothing calls this directly
no outgoing calls
no test coverage detected