@@ -491,20 +491,40 @@ public function getLastSamples(Filter $filter): array
491491 public function info (string $ key ): Metadata
492492 {
493493 $ result = $ this ->redis ->executeCommand (['TS.INFO ' , $ key ]);
494+ $ result = $ this ->parseInfoResult ($ result );
494495
495496 $ 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 ]);
498499 }
499500
500- $ sourceKey = $ result [11 ] === false ? null : $ result [11 ];
501+ $ sourceKey = $ result [' sourceKey ' ] === false ? null : $ result [' sourceKey ' ];
501502
502503 $ rules = [];
503- foreach ($ result [13 ] as $ rule ) {
504+ foreach ($ result [' rules ' ] as $ rule ) {
504505 $ rules [$ rule [0 ]] = new AggregationRule ($ rule [2 ], $ rule [1 ]);
505506 }
506507
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 parseInfoResult (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 ;
508528 }
509529
510530 /**
0 commit comments