55namespace RunAsRoot \PrometheusExporter \Result ;
66
77use Magento \Framework \Api \SearchCriteriaBuilder ;
8+ use Magento \Framework \Api \SortOrder ;
9+ use Magento \Framework \Api \SortOrderBuilder ;
10+ use Magento \Framework \App \ObjectManager ;
811use Magento \Framework \App \Response \HttpInterface as HttpResponseInterface ;
912use Magento \Framework \Controller \Result \Raw ;
1013use RunAsRoot \PrometheusExporter \Api \Data \MetricInterface ;
@@ -19,17 +22,20 @@ class PrometheusResult extends Raw
1922 private $ searchCriteriaBuilder ;
2023 private $ metricAggregatorPool ;
2124 private $ config ;
25+ private $ sortOrderBuilder ;
2226
2327 public function __construct (
2428 MetricAggregatorPool $ metricAggregatorPool ,
2529 MetricRepositoryInterface $ metricRepository ,
2630 SearchCriteriaBuilder $ searchCriteriaBuilder ,
27- Config $ config
31+ Config $ config ,
32+ ?SortOrderBuilder $ sortOrderBuilder = null ,
2833 ) {
29- $ this ->metricRepository = $ metricRepository ;
34+ $ this ->metricRepository = $ metricRepository ;
3035 $ this ->searchCriteriaBuilder = $ searchCriteriaBuilder ;
31- $ this ->metricAggregatorPool = $ metricAggregatorPool ;
32- $ this ->config = $ config ;
36+ $ this ->metricAggregatorPool = $ metricAggregatorPool ;
37+ $ this ->config = $ config ;
38+ $ this ->sortOrderBuilder = $ sortOrderBuilder ?? ObjectManager::getInstance ()->get (SortOrderBuilder::class);
3339 }
3440
3541 protected function render (HttpResponseInterface $ response )
@@ -49,6 +55,9 @@ protected function render(HttpResponseInterface $response)
4955 protected function collectMetrics (): string
5056 {
5157 $ searchCriteria = $ this ->searchCriteriaBuilder ->create ();
58+ $ searchCriteria ->setSortOrders ([
59+ $ this ->sortOrderBuilder ->setField ('code ' )->setDirection (SortOrder::SORT_ASC )->create ()
60+ ]);
5261
5362 /** @var MetricInterface[] $metrics */
5463 $ metrics = $ this ->metricRepository ->getList ($ searchCriteria )->getItems ();
0 commit comments