@@ -12,8 +12,8 @@ namespace ServiceControl.Transports.ASBS;
1212using Azure . Core ;
1313using Azure . Core . Pipeline ;
1414using Azure . Identity ;
15- using Azure . Monitor . Query ;
16- using Azure . Monitor . Query . Models ;
15+ using Azure . Monitor . Query . Metrics ;
16+ using Azure . Monitor . Query . Metrics . Models ;
1717using Azure . ResourceManager ;
1818using Azure . ResourceManager . Resources ;
1919using Azure . ResourceManager . ServiceBus ;
@@ -26,7 +26,7 @@ public class AzureQuery(ILogger<AzureQuery> logger, TimeProvider timeProvider, T
2626 : BrokerThroughputQuery ( logger , "AzureServiceBus" )
2727{
2828 string serviceBusName = string . Empty ;
29- MetricsQueryClient ? client ;
29+ MetricsClient ? client ;
3030 ArmClient ? armClient ;
3131 string ? resourceId ;
3232 ArmEnvironment armEnvironment ;
@@ -129,8 +129,8 @@ protected override void InitializeCore(ReadOnlyDictionary<string, string> settin
129129 clientCredentials = new ClientSecretCredential ( tenantId , clientId , clientSecret ) ;
130130 }
131131
132- client = new MetricsQueryClient ( armEnvironment . Endpoint , clientCredentials ,
133- new MetricsQueryClientOptions
132+ client = new MetricsClient ( armEnvironment . Endpoint , clientCredentials ,
133+ new MetricsClientOptions
134134 {
135135 Audience = metricsQueryAudience ,
136136 Transport = new HttpClientTransport (
@@ -152,31 +152,31 @@ protected override void InitializeCore(ReadOnlyDictionary<string, string> settin
152152
153153 return ;
154154
155- ( ArmEnvironment armEnvironment , MetricsQueryAudience metricsQueryAudience ) GetEnvironment ( )
155+ ( ArmEnvironment armEnvironment , MetricsClientAudience metricsQueryAudience ) GetEnvironment ( )
156156 {
157157 if ( managementUrlParsed == null )
158158 {
159- return ( ArmEnvironment . AzurePublicCloud , MetricsQueryAudience . AzurePublicCloud ) ;
159+ return ( ArmEnvironment . AzurePublicCloud , MetricsClientAudience . AzurePublicCloud ) ;
160160 }
161161
162162 if ( managementUrlParsed == ArmEnvironment . AzurePublicCloud . Endpoint )
163163 {
164- return ( ArmEnvironment . AzurePublicCloud , MetricsQueryAudience . AzurePublicCloud ) ;
164+ return ( ArmEnvironment . AzurePublicCloud , MetricsClientAudience . AzurePublicCloud ) ;
165165 }
166166
167167 if ( managementUrlParsed == ArmEnvironment . AzureChina . Endpoint )
168168 {
169- return ( ArmEnvironment . AzureChina , MetricsQueryAudience . AzureChina ) ;
169+ return ( ArmEnvironment . AzureChina , MetricsClientAudience . AzureChina ) ;
170170 }
171171
172172 if ( managementUrlParsed == ArmEnvironment . AzureGermany . Endpoint )
173173 {
174- return ( ArmEnvironment . AzureGermany , MetricsQueryAudience . AzurePublicCloud ) ;
174+ return ( ArmEnvironment . AzureGermany , MetricsClientAudience . AzurePublicCloud ) ;
175175 }
176176
177177 if ( managementUrlParsed == ArmEnvironment . AzureGovernment . Endpoint )
178178 {
179- return ( ArmEnvironment . AzureGovernment , MetricsQueryAudience . AzureGovernment ) ;
179+ return ( ArmEnvironment . AzureGovernment , MetricsClientAudience . AzureGovernment ) ;
180180 }
181181
182182 string options = string . Join ( ", " ,
@@ -187,7 +187,7 @@ protected override void InitializeCore(ReadOnlyDictionary<string, string> settin
187187 } . Select ( armEnvironment => $ "\" { armEnvironment . Endpoint } \" ") ) ;
188188 InitialiseErrors . Add ( $ "Management url configuration is invalid, available options are { options } ") ;
189189
190- return ( ArmEnvironment . AzurePublicCloud , MetricsQueryAudience . AzurePublicCloud ) ;
190+ return ( ArmEnvironment . AzurePublicCloud , MetricsClientAudience . AzurePublicCloud ) ;
191191 }
192192 }
193193
@@ -247,20 +247,22 @@ public override async IAsyncEnumerable<QueueThroughput> GetThroughputPerDay(IBro
247247 async Task < IReadOnlyList < MetricValue > > GetMetrics ( string queueName , DateOnly startTime , DateOnly endTime ,
248248 CancellationToken cancellationToken = default )
249249 {
250- var response = await client ! . QueryResourceAsync ( resourceId ,
251- new [ ] { "CompleteMessage" } ,
252- new MetricsQueryOptions
250+ var response = await client ! . QueryResourcesAsync (
251+ [ new ResourceIdentifier ( resourceId ! ) ] ,
252+ [ "CompleteMessage" ] ,
253+ "Microsoft.ServiceBus/namespaces" ,
254+ new MetricsQueryResourcesOptions
253255 {
254256 Filter = $ "EntityName eq '{ queueName } '",
255- TimeRange = new QueryTimeRange ( startTime . ToDateTime ( TimeOnly . MinValue , DateTimeKind . Utc ) , endTime . ToDateTime ( TimeOnly . MaxValue , DateTimeKind . Utc ) ) ,
257+ TimeRange = new MetricsQueryTimeRange ( startTime . ToDateTime ( TimeOnly . MinValue , DateTimeKind . Utc ) , endTime . ToDateTime ( TimeOnly . MaxValue , DateTimeKind . Utc ) ) ,
256258 Granularity = TimeSpan . FromDays ( 1 )
257259 } ,
258260 cancellationToken ) ;
259261
260262 var metricValues =
261- response . Value . Metrics . FirstOrDefault ( ) ? . TimeSeries . FirstOrDefault ( ) ? . Values ?? [ ] ;
263+ response . Value . Values . FirstOrDefault ( ) ? . Metrics . FirstOrDefault ( ) ? . TimeSeries . FirstOrDefault ( ) ? . Values ?? [ ] ;
262264
263- return metricValues ;
265+ return metricValues . AsReadOnly ( ) ;
264266 }
265267
266268 public override async IAsyncEnumerable < IBrokerQueue > GetQueueNames (
0 commit comments