Skip to content

Commit 39f7589

Browse files
committed
Fix telemetry to calculate properties only on demand
1 parent a738e59 commit 39f7589

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

source/Nuke.Common/Execution/Telemetry.Events.cs

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ public static void BuildStarted(NukeBuild build)
1717
{
1818
TrackEvent(
1919
eventName: nameof(BuildStarted),
20-
properties: GetCommonProperties(build)
21-
.AddDictionary(GetBuildProperties(build))
22-
.AddDictionary(GetRepositoryProperties(NukeBuild.RootDirectory)));
20+
propertiesProvider: () =>
21+
GetCommonProperties(build)
22+
.AddDictionary(GetBuildProperties(build))
23+
.AddDictionary(GetRepositoryProperties(NukeBuild.RootDirectory)));
2324
}
2425

2526
public static void TargetSucceeded(ExecutableTarget target, NukeBuild build)
@@ -29,52 +30,58 @@ public static void TargetSucceeded(ExecutableTarget target, NukeBuild build)
2930
{
3031
TrackEvent(
3132
eventName: nameof(TargetSucceeded),
32-
properties: GetCommonProperties(build)
33-
.AddDictionary(GetTargetProperties(build, target))
34-
.AddDictionary(GetBuildProperties(build))
35-
.AddDictionary(GetRepositoryProperties(NukeBuild.RootDirectory)));
33+
propertiesProvider: () =>
34+
GetCommonProperties(build)
35+
.AddDictionary(GetTargetProperties(build, target))
36+
.AddDictionary(GetBuildProperties(build))
37+
.AddDictionary(GetRepositoryProperties(NukeBuild.RootDirectory)));
3638
}
3739
}
3840

3941
public static void ConfigurationGenerated(Type hostType, string generatorId, NukeBuild build)
4042
{
4143
TrackEvent(
4244
eventName: nameof(ConfigurationGenerated),
43-
properties: GetCommonProperties(build)
44-
.AddDictionary(GetGeneratorProperties(hostType, generatorId))
45-
.AddDictionary(GetBuildProperties(build))
46-
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
45+
propertiesProvider: () =>
46+
GetCommonProperties(build)
47+
.AddDictionary(GetGeneratorProperties(hostType, generatorId))
48+
.AddDictionary(GetBuildProperties(build))
49+
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
4750
}
4851

4952
public static void SetupBuild()
5053
{
5154
TrackEvent(
5255
eventName: nameof(SetupBuild),
53-
properties: GetCommonProperties()
54-
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
56+
propertiesProvider: () =>
57+
GetCommonProperties()
58+
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
5559
}
5660

5761
public static void ConvertCake()
5862
{
5963
TrackEvent(
6064
eventName: nameof(ConvertCake),
61-
properties: GetCommonProperties()
62-
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
65+
propertiesProvider: () =>
66+
GetCommonProperties()
67+
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
6368
}
6469

6570
public static void AddPackage()
6671
{
6772
TrackEvent(
6873
eventName: nameof(AddPackage),
69-
properties: GetCommonProperties()
70-
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
74+
propertiesProvider: () =>
75+
GetCommonProperties()
76+
.AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory)));
7177
}
7278

73-
private static void TrackEvent(string eventName, IDictionary<string, string> properties)
79+
private static void TrackEvent(string eventName, Func<IDictionary<string, string>> propertiesProvider)
7480
{
7581
if (s_client == null)
7682
return;
7783

84+
var properties = propertiesProvider.Invoke();
7885
// TODO: logging additional
7986
Log.Verbose("Sending {EventName} telemetry event ...", eventName);
8087
var longestPropertyName = properties.Keys.Max(x => x.Length);

0 commit comments

Comments
 (0)