@@ -491,20 +491,40 @@ public function getLastSamples(Filter $filter): array
491
491
public function info (string $ key ): Metadata
492
492
{
493
493
$ result = $ this ->redis ->executeCommand (['TS.INFO ' , $ key ]);
494
+ $ result = $ this ->parseInfo ($ result );
494
495
495
496
$ labels = [];
496
- foreach ($ result [9 ] as $ strLabel ) {
497
- $ labels [] = new Label ($ strLabel [0 ], $ strLabel [1 ]);
497
+ foreach ($ result [' labels ' ] as $ label ) {
498
+ $ labels [] = new Label ($ label [0 ], $ label [1 ]);
498
499
}
499
500
500
- $ sourceKey = $ result [11 ] === false ? null : $ result [11 ];
501
+ $ sourceKey = $ result [' sourceKey ' ] === false ? null : $ result [' sourceKey ' ];
501
502
502
503
$ rules = [];
503
- foreach ($ result [13 ] as $ rule ) {
504
+ foreach ($ result [' rules ' ] as $ rule ) {
504
505
$ rules [$ rule [0 ]] = new AggregationRule ($ rule [2 ], $ rule [1 ]);
505
506
}
506
507
507
- return Metadata::fromRedis ($ result [1 ], $ result [3 ], $ result [5 ], $ result [7 ], $ labels , $ sourceKey , $ rules );
508
+ return Metadata::fromRedis (
509
+ $ result ['lastTimestamp ' ],
510
+ $ result ['retentionTime ' ],
511
+ $ result ['chunkCount ' ],
512
+ $ result ['maxSamplesPerChunk ' ],
513
+ $ labels ,
514
+ $ sourceKey ,
515
+ $ rules
516
+ );
517
+ }
518
+
519
+ protected function parseInfo (array $ info )
520
+ {
521
+ $ chunks = array_chunk ($ result , 2 );
522
+ $ props = [];
523
+ foreach ($ chunks as $ chunk ) {
524
+ $ props [$ chunk [0 ]] = $ chunk [1 ];
525
+ }
526
+
527
+ return $ props ;
508
528
}
509
529
510
530
/**
0 commit comments