Skip to content

Commit 37a6dff

Browse files
authored
Add more telemetry for progression graph query commands to help better understand usage patterns (#78202)
This will help us understand better which commands are being used and the efforts we should expend to continue supporting certain commands if we move from the progression APIs to IAttachedCollectionSourceProvider.
2 parents c407108 + c123334 commit 37a6dff

File tree

7 files changed

+25
-0
lines changed

7 files changed

+25
-0
lines changed

src/VisualStudio/Core/Def/Progression/GraphQueries/CallsGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Threading;
99
using System.Threading.Tasks;
1010
using Microsoft.CodeAnalysis;
11+
using Microsoft.CodeAnalysis.Internal.Log;
1112
using Microsoft.CodeAnalysis.PooledObjects;
1213
using Microsoft.VisualStudio.GraphModel;
1314
using Microsoft.VisualStudio.GraphModel.Schemas;
@@ -18,6 +19,8 @@ internal sealed class CallsGraphQuery : IGraphQuery
1819
{
1920
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
2021
{
22+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_Calls, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
23+
2124
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
2225

2326
foreach (var node in context.InputNodes)

src/VisualStudio/Core/Def/Progression/GraphQueries/ContainsGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading;
77
using System.Threading.Tasks;
88
using Microsoft.CodeAnalysis;
9+
using Microsoft.CodeAnalysis.Internal.Log;
910
using Microsoft.VisualStudio.GraphModel;
1011
using Microsoft.VisualStudio.GraphModel.Schemas;
1112

@@ -15,6 +16,8 @@ internal sealed class ContainsGraphQuery : IGraphQuery
1516
{
1617
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
1718
{
19+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_Contains, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
20+
1821
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
1922
var nodesToProcess = context.InputNodes;
2023

src/VisualStudio/Core/Def/Progression/GraphQueries/InheritedByGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading.Tasks;
77
using Microsoft.CodeAnalysis;
88
using Microsoft.CodeAnalysis.FindSymbols;
9+
using Microsoft.CodeAnalysis.Internal.Log;
910
using Microsoft.VisualStudio.GraphModel;
1011
using Microsoft.VisualStudio.GraphModel.Schemas;
1112
using Roslyn.Utilities;
@@ -16,6 +17,8 @@ internal sealed class InheritedByGraphQuery : IGraphQuery
1617
{
1718
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
1819
{
20+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_InheritedBy, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
21+
1922
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
2023

2124
foreach (var node in context.InputNodes)

src/VisualStudio/Core/Def/Progression/GraphQueries/InheritsGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Threading;
88
using System.Threading.Tasks;
99
using Microsoft.CodeAnalysis;
10+
using Microsoft.CodeAnalysis.Internal.Log;
1011
using Microsoft.VisualStudio.GraphModel;
1112
using Microsoft.VisualStudio.GraphModel.Schemas;
1213

@@ -16,6 +17,8 @@ internal sealed class InheritsGraphQuery : IGraphQuery
1617
{
1718
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
1819
{
20+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_Inherits, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
21+
1922
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
2023
var nodesToProcess = context.InputNodes;
2124

src/VisualStudio/Core/Def/Progression/GraphQueries/OverriddenByGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Threading;
66
using System.Threading.Tasks;
77
using Microsoft.CodeAnalysis;
8+
using Microsoft.CodeAnalysis.Internal.Log;
89
using Microsoft.CodeAnalysis.Shared.Extensions;
910
using Microsoft.VisualStudio.GraphModel;
1011

@@ -14,6 +15,8 @@ internal sealed class OverriddenByGraphQuery : IGraphQuery
1415
{
1516
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
1617
{
18+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_OverriddenBy, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
19+
1720
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
1821

1922
foreach (var node in context.InputNodes)

src/VisualStudio/Core/Def/Progression/GraphQueries/SearchGraphQuery.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading.Tasks;
77
using Microsoft.CodeAnalysis;
88
using Microsoft.CodeAnalysis.Host;
9+
using Microsoft.CodeAnalysis.Internal.Log;
910
using Microsoft.CodeAnalysis.NavigateTo;
1011
using Microsoft.CodeAnalysis.Shared.Extensions;
1112
using Microsoft.VisualStudio.GraphModel;
@@ -18,6 +19,8 @@ internal sealed partial class SearchGraphQuery(
1819
{
1920
public async Task<GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken)
2021
{
22+
using var _ = Logger.LogBlock(FunctionId.GraphQuery_Search, KeyValueLogMessage.Create(LogType.UserAction), cancellationToken);
23+
2124
var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false);
2225
var callback = new ProgressionNavigateToSearchCallback(solution, context, graphBuilder);
2326

src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/FunctionId.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,13 @@ internal enum FunctionId
651651
VSCode_Project_Load_Started = 861,
652652
VSCode_Projects_Load_Completed = 862,
653653

654+
GraphQuery_Calls = 870,
655+
GraphQuery_Contains = 871,
656+
GraphQuery_InheritedBy = 872,
657+
GraphQuery_Inherits = 873,
658+
GraphQuery_OverriddenBy = 874,
659+
GraphQuery_Search = 875,
660+
654661
// 900-999 for items that don't fit into other categories.
655662
Workspace_EventsImmediate = 900,
656663
ChecksumUpdater_SynchronizeTextChangesStatus = 901,

0 commit comments

Comments
 (0)