Skip to content

Commit 3d97f28

Browse files
authored
[Azure.Monitor.Query] GA Release and Fix Test Failures (Azure#36154)
1 parent 1273e46 commit 3d97f28

23 files changed

+1132
-194
lines changed

sdk/monitor/Azure.Monitor.Query/CHANGELOG.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
# Release History
22

3-
## 1.2.0-beta.2 (Unreleased)
4-
5-
### Features Added
6-
7-
### Breaking Changes
3+
## 1.2.0 (2023-05-22)
84

95
### Bugs Fixed
10-
11-
### Other Changes
6+
- `QueryResourceAsync<T>` method was not returning the correct value.
127

138
## 1.2.0-beta.1 (2023-05-09)
149
### Features Added

sdk/monitor/Azure.Monitor.Query/README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -140,20 +140,25 @@ To find the resource ID:
140140
1. In the resulting JSON, copy the value of the `id` property.
141141

142142
```C# Snippet:QueryResource
143-
string resourceId = "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/<resource_provider>/<resource>";
144143
var client = new LogsQueryClient(new DefaultAzureCredential());
145144

146-
Response<LogsQueryResult> result = await client.QueryResourceAsync(
145+
string resourceId = "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/<resource_provider>/<resource>";
146+
string tableName = "<table_name>";
147+
Response<LogsQueryResult> results = await client.QueryResourceAsync(
147148
new ResourceIdentifier(resourceId),
148-
"AzureActivity | top 10 by TimeGenerated",
149-
new QueryTimeRange(TimeSpan.FromDays(1)));
149+
$"{tableName} | distinct * | project TimeGenerated",
150+
new QueryTimeRange(TimeSpan.FromDays(7)));
150151

151-
LogsTable table = result.Value.Table;
152-
153-
foreach (LogsTableRow row in table.Rows)
152+
LogsTable resultTable = results.Value.Table;
153+
foreach (LogsTableRow row in resultTable.Rows)
154154
{
155155
Console.WriteLine($"{row["OperationName"]} {row["ResourceGroup"]}");
156156
}
157+
158+
foreach (LogsTableColumn columns in resultTable.Columns)
159+
{
160+
Console.WriteLine("Name: " + columns.Name + " Type: " + columns.Type);
161+
}
157162
```
158163

159164
#### Handle logs query response

sdk/monitor/Azure.Monitor.Query/src/Azure.Monitor.Query.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<Description>A library for querying Azure Monitor's Logs and Metrics data sources.</Description>
44
<AssemblyTitle>Azure Monitor Query client library</AssemblyTitle>
5-
<Version>1.2.0-beta.2</Version>
5+
<Version>1.2.0</Version>
66
<!--The ApiCompatVersion is managed automatically and should not generally be modified manually.-->
77
<ApiCompatVersion>1.1.0</ApiCompatVersion>
88
<PackageTags>Azure Monitor Query</PackageTags>

sdk/monitor/Azure.Monitor.Query/src/LogsQueryClient.cs

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -322,20 +322,25 @@ public virtual async Task<Response<LogsBatchQueryResultCollection>> QueryBatchAs
322322
/// Returns all the Azure Monitor logs matching the given query for an Azure resource.
323323
/// <example snippet="Snippet:QueryResource">
324324
/// <code language="csharp">
325-
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
326325
/// var client = new LogsQueryClient(new DefaultAzureCredential());
327326
///
328-
/// Response&lt;LogsQueryResult&gt; result = await client.QueryResourceAsync(
327+
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
328+
/// string tableName = &quot;&lt;table_name&gt;&quot;;
329+
/// Response&lt;LogsQueryResult&gt; results = await client.QueryResourceAsync(
329330
/// new ResourceIdentifier(resourceId),
330-
/// &quot;AzureActivity | top 10 by TimeGenerated&quot;,
331-
/// new QueryTimeRange(TimeSpan.FromDays(1)));
332-
///
333-
/// LogsTable table = result.Value.Table;
331+
/// $&quot;{tableName} | distinct * | project TimeGenerated&quot;,
332+
/// new QueryTimeRange(TimeSpan.FromDays(7)));
334333
///
335-
/// foreach (LogsTableRow row in table.Rows)
334+
/// LogsTable resultTable = results.Value.Table;
335+
/// foreach (LogsTableRow row in resultTable.Rows)
336336
/// {
337337
/// Console.WriteLine($&quot;{row[&quot;OperationName&quot;]} {row[&quot;ResourceGroup&quot;]}&quot;);
338338
/// }
339+
///
340+
/// foreach (LogsTableColumn columns in resultTable.Columns)
341+
/// {
342+
/// Console.WriteLine(&quot;Name: &quot; + columns.Name + &quot; Type: &quot; + columns.Type);
343+
/// }
339344
/// </code>
340345
/// </example>
341346
/// </summary>
@@ -356,20 +361,25 @@ public virtual Response<IReadOnlyList<T>> QueryResource<T>(ResourceIdentifier re
356361
/// Returns all the Azure Monitor logs matching the given query for an Azure resource.
357362
/// <example snippet="Snippet:QueryResource">
358363
/// <code language="csharp">
359-
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
360364
/// var client = new LogsQueryClient(new DefaultAzureCredential());
361365
///
362-
/// Response&lt;LogsQueryResult&gt; result = await client.QueryResourceAsync(
366+
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
367+
/// string tableName = &quot;&lt;table_name&gt;&quot;;
368+
/// Response&lt;LogsQueryResult&gt; results = await client.QueryResourceAsync(
363369
/// new ResourceIdentifier(resourceId),
364-
/// &quot;AzureActivity | top 10 by TimeGenerated&quot;,
365-
/// new QueryTimeRange(TimeSpan.FromDays(1)));
366-
///
367-
/// LogsTable table = result.Value.Table;
370+
/// $&quot;{tableName} | distinct * | project TimeGenerated&quot;,
371+
/// new QueryTimeRange(TimeSpan.FromDays(7)));
368372
///
369-
/// foreach (LogsTableRow row in table.Rows)
373+
/// LogsTable resultTable = results.Value.Table;
374+
/// foreach (LogsTableRow row in resultTable.Rows)
370375
/// {
371376
/// Console.WriteLine($&quot;{row[&quot;OperationName&quot;]} {row[&quot;ResourceGroup&quot;]}&quot;);
372377
/// }
378+
///
379+
/// foreach (LogsTableColumn columns in resultTable.Columns)
380+
/// {
381+
/// Console.WriteLine(&quot;Name: &quot; + columns.Name + &quot; Type: &quot; + columns.Type);
382+
/// }
373383
/// </code>
374384
/// </example>
375385
/// </summary>
@@ -381,7 +391,7 @@ public virtual Response<IReadOnlyList<T>> QueryResource<T>(ResourceIdentifier re
381391
/// <returns>The logs matching the query.</returns>
382392
public virtual async Task<Response<IReadOnlyList<T>>> QueryResourceAsync<T>(ResourceIdentifier resourceId, string query, QueryTimeRange timeRange, LogsQueryOptions options = null, CancellationToken cancellationToken = default)
383393
{
384-
Response<LogsQueryResult> response = await QueryWorkspaceAsync(resourceId, query, timeRange, options, cancellationToken).ConfigureAwait(false);
394+
Response<LogsQueryResult> response = await QueryResourceAsync(resourceId, query, timeRange, options, cancellationToken).ConfigureAwait(false);
385395

386396
return Response.FromValue(RowBinder.Shared.BindResults<T>(response.Value.AllTables), response.GetRawResponse());
387397
}
@@ -390,20 +400,25 @@ public virtual async Task<Response<IReadOnlyList<T>>> QueryResourceAsync<T>(Reso
390400
/// Returns all the Azure Monitor logs matching the given query for an Azure resource.
391401
/// <example snippet="Snippet:QueryResource">
392402
/// <code language="csharp">
393-
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
394403
/// var client = new LogsQueryClient(new DefaultAzureCredential());
395404
///
396-
/// Response&lt;LogsQueryResult&gt; result = await client.QueryResourceAsync(
405+
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
406+
/// string tableName = &quot;&lt;table_name&gt;&quot;;
407+
/// Response&lt;LogsQueryResult&gt; results = await client.QueryResourceAsync(
397408
/// new ResourceIdentifier(resourceId),
398-
/// &quot;AzureActivity | top 10 by TimeGenerated&quot;,
399-
/// new QueryTimeRange(TimeSpan.FromDays(1)));
400-
///
401-
/// LogsTable table = result.Value.Table;
409+
/// $&quot;{tableName} | distinct * | project TimeGenerated&quot;,
410+
/// new QueryTimeRange(TimeSpan.FromDays(7)));
402411
///
403-
/// foreach (LogsTableRow row in table.Rows)
412+
/// LogsTable resultTable = results.Value.Table;
413+
/// foreach (LogsTableRow row in resultTable.Rows)
404414
/// {
405415
/// Console.WriteLine($&quot;{row[&quot;OperationName&quot;]} {row[&quot;ResourceGroup&quot;]}&quot;);
406416
/// }
417+
///
418+
/// foreach (LogsTableColumn columns in resultTable.Columns)
419+
/// {
420+
/// Console.WriteLine(&quot;Name: &quot; + columns.Name + &quot; Type: &quot; + columns.Type);
421+
/// }
407422
/// </code>
408423
/// </example>
409424
/// </summary>
@@ -434,20 +449,25 @@ public virtual Response<LogsQueryResult> QueryResource(ResourceIdentifier resour
434449
/// Returns all the Azure Monitor logs matching the given query for an Azure resource.
435450
/// <example snippet="Snippet:QueryResource">
436451
/// <code language="csharp">
437-
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
438452
/// var client = new LogsQueryClient(new DefaultAzureCredential());
439453
///
440-
/// Response&lt;LogsQueryResult&gt; result = await client.QueryResourceAsync(
454+
/// string resourceId = &quot;/subscriptions/&lt;subscription_id&gt;/resourceGroups/&lt;resource_group_name&gt;/providers/&lt;resource_provider&gt;/&lt;resource&gt;&quot;;
455+
/// string tableName = &quot;&lt;table_name&gt;&quot;;
456+
/// Response&lt;LogsQueryResult&gt; results = await client.QueryResourceAsync(
441457
/// new ResourceIdentifier(resourceId),
442-
/// &quot;AzureActivity | top 10 by TimeGenerated&quot;,
443-
/// new QueryTimeRange(TimeSpan.FromDays(1)));
444-
///
445-
/// LogsTable table = result.Value.Table;
458+
/// $&quot;{tableName} | distinct * | project TimeGenerated&quot;,
459+
/// new QueryTimeRange(TimeSpan.FromDays(7)));
446460
///
447-
/// foreach (LogsTableRow row in table.Rows)
461+
/// LogsTable resultTable = results.Value.Table;
462+
/// foreach (LogsTableRow row in resultTable.Rows)
448463
/// {
449464
/// Console.WriteLine($&quot;{row[&quot;OperationName&quot;]} {row[&quot;ResourceGroup&quot;]}&quot;);
450465
/// }
466+
///
467+
/// foreach (LogsTableColumn columns in resultTable.Columns)
468+
/// {
469+
/// Console.WriteLine(&quot;Name: &quot; + columns.Name + &quot; Type: &quot; + columns.Type);
470+
/// }
451471
/// </code>
452472
/// </example>
453473
/// </summary>

0 commit comments

Comments
 (0)