(ctx context.Context)
| 1032 | } |
| 1033 | |
| 1034 | func (i *Ingester) updateLoop(ctx context.Context) error { |
| 1035 | rateUpdateTicker := time.NewTicker(i.cfg.RateUpdatePeriod) |
| 1036 | defer rateUpdateTicker.Stop() |
| 1037 | |
| 1038 | userTSDBConfigTicker := time.NewTicker(i.cfg.UserTSDBConfigsUpdatePeriod) |
| 1039 | defer userTSDBConfigTicker.Stop() |
| 1040 | |
| 1041 | ingestionRateTicker := time.NewTicker(instanceIngestionRateTickInterval) |
| 1042 | defer ingestionRateTicker.Stop() |
| 1043 | |
| 1044 | var activeSeriesTickerChan <-chan time.Time |
| 1045 | if i.cfg.ActiveSeriesMetricsEnabled { |
| 1046 | t := time.NewTicker(i.cfg.ActiveSeriesMetricsUpdatePeriod) |
| 1047 | activeSeriesTickerChan = t.C |
| 1048 | defer t.Stop() |
| 1049 | } |
| 1050 | |
| 1051 | var activeQueriedSeriesTickerChan <-chan time.Time |
| 1052 | if i.cfg.ActiveQueriedSeriesMetricsEnabled { |
| 1053 | t := time.NewTicker(i.cfg.ActiveQueriedSeriesMetricsUpdatePeriod) |
| 1054 | activeQueriedSeriesTickerChan = t.C |
| 1055 | defer t.Stop() |
| 1056 | } |
| 1057 | |
| 1058 | // Similarly to the above, this is a hardcoded value. |
| 1059 | metadataPurgeTicker := time.NewTicker(metadataPurgePeriod) |
| 1060 | defer metadataPurgeTicker.Stop() |
| 1061 | |
| 1062 | maxTrackerResetTicker := time.NewTicker(maxInflightRequestResetPeriod) |
| 1063 | defer maxTrackerResetTicker.Stop() |
| 1064 | |
| 1065 | labelSetMetricsTicker := time.NewTicker(labelSetMetricsTickInterval) |
| 1066 | defer labelSetMetricsTicker.Stop() |
| 1067 | |
| 1068 | for { |
| 1069 | select { |
| 1070 | case <-metadataPurgeTicker.C: |
| 1071 | i.purgeUserMetricsMetadata() |
| 1072 | case <-ingestionRateTicker.C: |
| 1073 | i.ingestionRate.Tick() |
| 1074 | case <-rateUpdateTicker.C: |
| 1075 | i.stoppedMtx.RLock() |
| 1076 | for _, db := range i.TSDBState.dbs { |
| 1077 | db.ingestedAPISamples.Tick() |
| 1078 | db.ingestedRuleSamples.Tick() |
| 1079 | } |
| 1080 | i.stoppedMtx.RUnlock() |
| 1081 | |
| 1082 | case <-activeSeriesTickerChan: |
| 1083 | i.updateActiveSeries(ctx) |
| 1084 | case <-activeQueriedSeriesTickerChan: |
| 1085 | i.updateActiveQueriedSeries(ctx) |
| 1086 | case <-maxTrackerResetTicker.C: |
| 1087 | i.maxInflightQueryRequests.Tick() |
| 1088 | i.maxInflightPushRequests.Tick() |
| 1089 | case <-userTSDBConfigTicker.C: |
| 1090 | i.updateUserTSDBConfigs() |
| 1091 | case <-labelSetMetricsTicker.C: |
nothing calls this directly
no test coverage detected