Skip to content

Commit cf6f17c

Browse files
Backflow from https://github.com/dotnet/dotnet / f448387 build 286402
[[ commit created by automation ]]
1 parent cf932ba commit cf6f17c

File tree

4 files changed

+107
-3
lines changed

4 files changed

+107
-3
lines changed

eng/Versions.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>
2121
<DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
2222
<!-- Calculate prerelease label -->
23-
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">rc</PreReleaseVersionLabel>
23+
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">rtm</PreReleaseVersionLabel>
2424
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and $(VersionPrefix.EndsWith('00'))">rtm</PreReleaseVersionLabel>
2525
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and !$(VersionPrefix.EndsWith('00'))">servicing</PreReleaseVersionLabel>
26-
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">2</PreReleaseVersionIteration>
26+
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'"></PreReleaseVersionIteration>
2727
<!-- In source-build the version of the compiler must be same or newer than the version of the
2828
compiler API targeted by analyzer assemblies. This is mostly an issue on source-build as
2929
in that build mode analyzer assemblies always target the live compiler API. -->

es-metadata.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
schemaVersion: 0.0.1
2+
isProduction: true
3+
accountableOwners:
4+
service: 30f635d8-2918-48af-8ddf-d9bc854b7584
5+
routing:
6+
defaultAreaPath:
7+
org: devdiv
8+
path: DevDiv\NET Tools\SDK

src/Cli/dotnet/Commands/MSBuild/MSBuildLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ internal void SendAggregatedEventsOnBuildFinished(ITelemetry? telemetry)
163163

164164
internal void AggregateEvent(TelemetryEventArgs args)
165165
{
166-
if (args.EventName is null)
166+
if (args.EventName == null || args.Properties == null)
167167
{
168168
return;
169169
}

test/dotnet.Tests/CommandTests/MSBuild/GivenMSBuildLogger.cs

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,5 +214,101 @@ public void ItIgnoresNonIntegerPropertiesDuringAggregation()
214214
fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty");
215215
fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty2");
216216
}
217+
218+
[Fact]
219+
public void ItAggregatesEvents()
220+
{
221+
var fakeTelemetry = new FakeTelemetry();
222+
fakeTelemetry.Enabled = true;
223+
var logger = new MSBuildLogger(fakeTelemetry);
224+
225+
var event1 = new TelemetryEventArgs
226+
{
227+
EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName,
228+
Properties = new Dictionary<string, string>
229+
{
230+
{ "AssemblyTaskFactoryTasksExecutedCount", "2" },
231+
{ "RoslynCodeTaskFactoryTasksExecutedCount", "1" }
232+
}
233+
};
234+
235+
var event2 = new TelemetryEventArgs
236+
{
237+
EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName,
238+
Properties = new Dictionary<string, string>
239+
{
240+
{ "AssemblyTaskFactoryTasksExecutedCount", "3" },
241+
{ "CustomTaskFactoryTasksExecutedCount", "2" }
242+
}
243+
};
244+
245+
var event3 = new TelemetryEventArgs
246+
{
247+
EventName = MSBuildLogger.TasksTelemetryAggregatedEventName,
248+
Properties = new Dictionary<string, string>
249+
{
250+
{ "TasksExecutedCount", "3" },
251+
{ "TaskHostTasksExecutedCount", "2" }
252+
}
253+
};
254+
255+
var event4 = new TelemetryEventArgs
256+
{
257+
EventName = MSBuildLogger.TasksTelemetryAggregatedEventName,
258+
Properties = new Dictionary<string, string>
259+
{
260+
{ "TasksExecutedCount", "5" }
261+
}
262+
};
263+
264+
logger.AggregateEvent(event1);
265+
logger.AggregateEvent(event2);
266+
logger.AggregateEvent(event3);
267+
logger.AggregateEvent(event4);
268+
269+
logger.SendAggregatedEventsOnBuildFinished(fakeTelemetry);
270+
271+
fakeTelemetry.LogEntries.Should().HaveCount(2);
272+
273+
var taskFactoryEntry = fakeTelemetry.LogEntries.FirstOrDefault(e => e.EventName == $"msbuild/{MSBuildLogger.TaskFactoryTelemetryAggregatedEventName}");
274+
taskFactoryEntry.Should().NotBeNull();
275+
taskFactoryEntry.Properties["AssemblyTaskFactoryTasksExecutedCount"].Should().Be("5"); // 2 + 3
276+
taskFactoryEntry.Properties["RoslynCodeTaskFactoryTasksExecutedCount"].Should().Be("1"); // 1 + 0
277+
taskFactoryEntry.Properties["CustomTaskFactoryTasksExecutedCount"].Should().Be("2"); // 0 + 2
278+
279+
var tasksEntry = fakeTelemetry.LogEntries.FirstOrDefault(e => e.EventName == $"msbuild/{MSBuildLogger.TasksTelemetryAggregatedEventName}");
280+
tasksEntry.Should().NotBeNull();
281+
tasksEntry.Properties["TasksExecutedCount"].Should().Be("8"); // 3 + 5
282+
tasksEntry.Properties["TaskHostTasksExecutedCount"].Should().Be("2"); // 2 + 0
283+
}
284+
285+
[Fact]
286+
public void ItIgnoresNonIntegerPropertiesDuringAggregation()
287+
{
288+
var fakeTelemetry = new FakeTelemetry();
289+
fakeTelemetry.Enabled = true;
290+
var logger = new MSBuildLogger(fakeTelemetry);
291+
292+
var eventArgs = new TelemetryEventArgs
293+
{
294+
EventName = MSBuildLogger.TaskFactoryTelemetryAggregatedEventName,
295+
Properties = new Dictionary<string, string>
296+
{
297+
{ "AssemblyTaskFactoryTasksExecutedCount", "3" },
298+
{ "InvalidProperty", "not-a-number" },
299+
{ "InvalidProperty2", "1.234" },
300+
}
301+
};
302+
303+
logger.AggregateEvent(eventArgs);
304+
305+
logger.SendAggregatedEventsOnBuildFinished(fakeTelemetry);
306+
307+
fakeTelemetry.LogEntry.Should().NotBeNull();
308+
fakeTelemetry.LogEntry.EventName.Should().Be($"msbuild/{MSBuildLogger.TaskFactoryTelemetryAggregatedEventName}");
309+
fakeTelemetry.LogEntry.Properties["AssemblyTaskFactoryTasksExecutedCount"].Should().Be("3");
310+
fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty");
311+
fakeTelemetry.LogEntry.Properties.Should().NotContainKey("InvalidProperty2");
312+
}
217313
}
218314
}

0 commit comments

Comments
 (0)