@ -562,7 +562,7 @@ func TestGetRules(t *testing.T) {
d = ring . NewDesc ( )
}
for rID , tokens := range allTokensByRuler {
d . AddIngester ( rID , rulerAddrMap [ rID ] . lifecycler . GetInstanceAddr ( ) , "" , tokens , ring . ACTIVE , time . Now ( ) )
d . AddIngester ( rID , rulerAddrMap [ rID ] . lifecycler . GetInstanceAddr ( ) , "" , tokens , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
}
return d , true , nil
} )
@ -744,7 +744,7 @@ func TestSharding(t *testing.T) {
sharding : true ,
shardingStrategy : util . ShardingStrategyDefault ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : allRules } ,
} ,
@ -754,7 +754,7 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : map [ string ] rulespb . RuleGroupList {
user1 : { user1Group1 , user1Group2 } ,
@ -766,7 +766,7 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : map [ string ] rulespb . RuleGroupList {
user2 : { user2Group1 } ,
@ -778,8 +778,8 @@ func TestSharding(t *testing.T) {
sharding : true ,
shardingStrategy : util . ShardingStrategyDefault ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -800,8 +800,8 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -820,8 +820,8 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -840,7 +840,7 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . Ingesters [ ruler2 ] = ring . InstanceDesc {
Addr : ruler2Addr ,
Timestamp : time . Now ( ) . Add ( - time . Hour ) . Unix ( ) ,
@ -864,8 +864,8 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . LEAVING , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . LEAVING , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -880,8 +880,8 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyDefault ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . JOINING , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user2Group1Token + 1 } ) , ring . JOINING , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -896,7 +896,7 @@ func TestSharding(t *testing.T) {
shardingStrategy : util . ShardingStrategyShuffle ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { 0 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { 0 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -910,8 +910,8 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 1 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user1Group2Token + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user1Group2Token + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -928,8 +928,8 @@ func TestSharding(t *testing.T) {
setupRing : func ( desc * ring . Desc ) {
// Exact same tokens setup as previous test.
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user1Group2Token + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Token + 1 , user1Group2Token + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -944,8 +944,8 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 1 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -964,9 +964,9 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 2 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -988,9 +988,9 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 2 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Token + 1 , user1Group2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Token + 1 , user1Group2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user2Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1012,9 +1012,9 @@ func TestSharding(t *testing.T) {
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1035,9 +1035,9 @@ func TestSharding(t *testing.T) {
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Token + 1 , user3Group1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1054,7 +1054,7 @@ func TestSharding(t *testing.T) {
sharding : true ,
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : allRulesSharded } ,
} ,
@ -1064,7 +1064,7 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : map [ string ] rulespb . RuleGroupList {
user1 : {
@ -1080,7 +1080,7 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , [ ] uint32 { 0 } , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap { ruler1 : map [ string ] rulespb . RuleGroupList {
user2 : {
@ -1098,8 +1098,8 @@ func TestSharding(t *testing.T) {
sharding : true ,
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1127,8 +1127,8 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1152,8 +1152,8 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1180,7 +1180,7 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . Ingesters [ ruler2 ] = ring . InstanceDesc {
Addr : ruler2Addr ,
Timestamp : time . Now ( ) . Add ( - time . Hour ) . Unix ( ) ,
@ -1209,8 +1209,8 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . LEAVING , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . LEAVING , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1225,8 +1225,8 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . JOINING , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user1Group1Rule2Token + 1 } ) , ring . JOINING , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1242,7 +1242,7 @@ func TestSharding(t *testing.T) {
shardingAlgo : util . ShardingAlgoByRule ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { 0 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { 0 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1257,9 +1257,9 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 1 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
// immaterial what tokens this ruler has, it won't be assigned any rules
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group2Rule1Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1277,9 +1277,9 @@ func TestSharding(t *testing.T) {
setupRing : func ( desc * ring . Desc ) {
// Exact same tokens setup as previous test.
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
// this ruler has all the rule tokens, so it gets all the rules
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1295,8 +1295,8 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 1 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1327,9 +1327,9 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 2 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Rule1Token + 1 , user1Group2Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group1Rule2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , user1Group1Rule1Token + 1 , user1Group2Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , user1Group1Rule2Token + 1 , userToken ( user2 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user2Group1Rule1Token + 1 , user2Group1Rule2Token + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1363,9 +1363,9 @@ func TestSharding(t *testing.T) {
shuffleShardSize : 2 ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1400,9 +1400,9 @@ func TestSharding(t *testing.T) {
enabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user1Group2Rule1Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {
@ -1429,9 +1429,9 @@ func TestSharding(t *testing.T) {
disabledUsers : [ ] string { user1 } ,
setupRing : func ( desc * ring . Desc ) {
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user1Group2Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) )
desc . AddIngester ( ruler1 , ruler1Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 0 ) + 1 , userToken ( user2 , 1 ) + 1 , user1Group1Rule1Token + 1 , user1Group1Rule2Token + 1 , user2Group1Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler2 , ruler2Addr , "" , sortTokens ( [ ] uint32 { userToken ( user1 , 1 ) + 1 , userToken ( user3 , 1 ) + 1 , user1Group2Rule1Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
desc . AddIngester ( ruler3 , ruler3Addr , "" , sortTokens ( [ ] uint32 { userToken ( user2 , 0 ) + 1 , userToken ( user3 , 0 ) + 1 , user3Group1Rule1Token + 1 , user3Group1Rule2Token + 1 , user2Group1Rule2Token + 1 } ) , ring . ACTIVE , time . Now ( ) , false , time . Now ( ) )
} ,
expectedRules : expectedRulesMap {