Skip to content

Commit 0110215

Browse files
committed
Merge pull request #220 from Microsoft/develop
Develop to master
2 parents 1ccd5b4 + 2be9876 commit 0110215

File tree

45 files changed

+1141
-360
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1141
-360
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@
22

33
This changelog will be used to generate documentation on [release notes page](http://azure.microsoft.com/en-us/documentation/articles/app-insights-release-notes-dotnet/).
44

5+
## Version 2.1.0-beta3
6+
- Support partial success (206) from the Application Insights backend. Before this change SDK may have lost data because some items of the batch were accepted and some items of the batch were asked to be retried (because of burst throttling or intermittent issues).
7+
- Bug fixes
8+
59
## Version 2.1.0-beta1
610

711
- Upgraded to depend on EventSource.Redist nuget version 1.1.28
812
- Upgraded to depend on Microsoft.Bcl nuget version 1.1.10
913

10-
## Version 2.0.0 (stable)
14+
## Version 2.0.1
15+
16+
- Add Win Phone, Win Store and UWP targets that include 1.2.3 version of ApplicationInsights.dll. It is included to prevent applications that upgrade to 2.0.0 from crashing. In any case using this nuget for Win Phone, Win Store and UWP targets is not recommended and not supported.
17+
18+
## Version 2.0.0
1119

1220
- Disallow Nan, +-Infinity measurements. Value will be replaced on 0.
1321
- Disallow Nan, +-Infinity metrics (Value, Min, Max and StandardDeviation). Values will be replaced on 0.

GlobalStaticVersion.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<SemanticVersionMajor>2</SemanticVersionMajor>
99
<SemanticVersionMinor>1</SemanticVersionMinor>
1010
<SemanticVersionPatch>0</SemanticVersionPatch>
11-
<PreReleaseMilestone>beta1</PreReleaseMilestone>
11+
<PreReleaseMilestone>beta3</PreReleaseMilestone>
1212
<!--
1313
Date when Semantic Version was changed.
1414
Update for every public release.
@@ -18,4 +18,4 @@
1818
<PreReleaseVersionFileName>.PreReleaseVersion</PreReleaseVersionFileName>
1919
<PreReleaseVersionFilePath>$(MSBuildThisFileDirectory)$(PreReleaseVersionFileName)</PreReleaseVersionFilePath>
2020
</PropertyGroup>
21-
</Project>
21+
</Project>

Microsoft.ApplicationInsights.sln

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 14
4-
VisualStudioVersion = 14.0.23107.0
4+
VisualStudioVersion = 14.0.24720.0
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Core.Shared", "src\Core\Managed\Shared\Core.Shared.shproj", "{C1AAA703-5E32-45C0-A69D-F46D1C659AE4}"
77
EndProject
@@ -65,19 +65,28 @@ EndProject
6565
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Operation.AL.Tests.Shared", "Test\CoreSDK.Test\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.shproj", "{4E54ED64-28B4-484F-AD5E-089FD2EC9B8B}"
6666
EndProject
6767
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.NuGet", "src\Core\NuGet\Core\Core.NuGet.csproj", "{B69CBB57-4D1F-4FBE-B4AB-FD87EDBEE12B}"
68+
ProjectSection(ProjectDependencies) = postProject
69+
{40CCD816-19FD-4B1D-9E24-AD2099351187} = {40CCD816-19FD-4B1D-9E24-AD2099351187}
70+
{958CFE53-53B7-4E26-846D-DA3F214013E6} = {958CFE53-53B7-4E26-846D-DA3F214013E6}
71+
{862B97AF-F620-43FD-9B65-7E5423F3B7E3} = {862B97AF-F620-43FD-9B65-7E5423F3B7E3}
72+
{412659CA-49B0-4834-BFBF-8183055083C8} = {412659CA-49B0-4834-BFBF-8183055083C8}
73+
{CD752CD2-6711-4AD7-B5C8-F8C23CF076B1} = {CD752CD2-6711-4AD7-B5C8-F8C23CF076B1}
74+
EndProjectSection
75+
EndProject
76+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DummyCore", "src\Core\Managed\DummyCore\DummyCore.csproj", "{40CCD816-19FD-4B1D-9E24-AD2099351187}"
6877
EndProject
6978
Global
7079
GlobalSection(SharedMSBuildProjectFiles) = preSolution
7180
src\Core\Managed\Shared\Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
7281
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
7382
Test\CoreSDK.Test\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.projitems*{0927e682-4a56-46b6-8125-94fa066b2f57}*SharedItemsImports = 4
7483
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{0927e682-4a56-46b6-8125-94fa066b2f57}*SharedItemsImports = 4
75-
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{0927e682-4a56-45b6-8125-94fa066b2f57}*SharedItemsImports = 4
7684
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{0927e682-4a56-45b6-8125-94fa066b2f57}*SharedItemsImports = 4
85+
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{0927e682-4a56-45b6-8125-94fa066b2f57}*SharedItemsImports = 4
7786
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{4dc2927f-bb78-4363-8428-0f02955064bc}*SharedItemsImports = 13
7887
src\Core\Managed\Shared\Shared.projitems*{862b97af-f620-43fd-9b65-7e5423f3b7e3}*SharedItemsImports = 4
79-
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{394a78e5-2f8f-4d2d-ae08-027380c9f6b2}*SharedItemsImports = 4
8088
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{394a78e5-2f8f-4d2d-ae08-027380c9f6b2}*SharedItemsImports = 4
89+
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{394a78e5-2f8f-4d2d-ae08-027380c9f6b2}*SharedItemsImports = 4
8190
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{f76c6cbd-29b0-4564-bdcb-c969f8fec136}*SharedItemsImports = 13
8291
src\Core\Managed\Shared\Shared.projitems*{958cfe53-53b7-4e26-846d-da3f214013e6}*SharedItemsImports = 4
8392
src\Core\Managed\Operation.AL.Shared\Operation.AL.Shared.projitems*{958cfe53-53b7-4e26-846d-da3f214013e6}*SharedItemsImports = 4
@@ -323,6 +332,26 @@ Global
323332
{B69CBB57-4D1F-4FBE-B4AB-FD87EDBEE12B}.Release|x64.Build.0 = Release|Any CPU
324333
{B69CBB57-4D1F-4FBE-B4AB-FD87EDBEE12B}.Release|x86.ActiveCfg = Release|Any CPU
325334
{B69CBB57-4D1F-4FBE-B4AB-FD87EDBEE12B}.Release|x86.Build.0 = Release|Any CPU
335+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
336+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|Any CPU.Build.0 = Debug|Any CPU
337+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|ARM.ActiveCfg = Debug|Any CPU
338+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|ARM.Build.0 = Debug|Any CPU
339+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
340+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
341+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|x64.ActiveCfg = Debug|Any CPU
342+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|x64.Build.0 = Debug|Any CPU
343+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|x86.ActiveCfg = Debug|Any CPU
344+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Debug|x86.Build.0 = Debug|Any CPU
345+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|Any CPU.ActiveCfg = Release|Any CPU
346+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|Any CPU.Build.0 = Release|Any CPU
347+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|ARM.ActiveCfg = Release|Any CPU
348+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|ARM.Build.0 = Release|Any CPU
349+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
350+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|Mixed Platforms.Build.0 = Release|Any CPU
351+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|x64.ActiveCfg = Release|Any CPU
352+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|x64.Build.0 = Release|Any CPU
353+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|x86.ActiveCfg = Release|Any CPU
354+
{40CCD816-19FD-4B1D-9E24-AD2099351187}.Release|x86.Build.0 = Release|Any CPU
326355
EndGlobalSection
327356
GlobalSection(SolutionProperties) = preSolution
328357
HideSolutionNode = FALSE
@@ -346,5 +375,6 @@ Global
346375
{21350114-0BF7-4F90-9732-5395840E8CBB} = {68CC2924-E162-44BE-8D7A-DBA385365585}
347376
{4E54ED64-28B4-484F-AD5E-089FD2EC9B8B} = {C2FEEDE5-8CAE-41A4-8932-42D284A86EA7}
348377
{B69CBB57-4D1F-4FBE-B4AB-FD87EDBEE12B} = {05ACA4F0-E560-4E7A-BF50-1C248DAAA0D2}
378+
{40CCD816-19FD-4B1D-9E24-AD2099351187} = {68CC2924-E162-44BE-8D7A-DBA385365585}
349379
EndGlobalSection
350380
EndGlobal

Test/CoreSDK.Test/Shared/Channel/TransmissionTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void SetsContentPropertyToSpecifiedValue()
5151
[TestMethod]
5252
public void ThrowsArgumentNullExceptionWhenContentIsNull()
5353
{
54-
Assert.Throws<ArgumentNullException>(() => new Transmission(new Uri("http://address"), null, "content/type", "content/encoding"));
54+
Assert.Throws<ArgumentNullException>(() => new Transmission(new Uri("http://address"), (byte[])null, "content/type", "content/encoding"));
5555
}
5656

5757
[TestMethod]

Test/CoreSDK.Test/Shared/Core.Shared.Tests.projitems

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\Implementation\Tracing\ThreadResourceLockTest.cs" />
6767
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\Implementation\UserContextTest.cs" />
6868
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\Implementation\WeakConcurrentRandomTests.cs" />
69-
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\SdkVersionPropertyTelemetryInitializerTest.cs" />
7069
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\TelemetryConfigurationFactoryTest.cs" />
7170
<Compile Include="$(MSBuildThisFileDirectory)Extensibility\TelemetryConfigurationTest.cs" />
7271
<Compile Include="$(MSBuildThisFileDirectory)OperationTelemetryExtensionsTests.cs" />

Test/CoreSDK.Test/Shared/Extensibility/Implementation/JsonSerializerTest.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,13 @@ public void SanitizesTimestampInIsoFormat()
5151
Assert.True(json.Contains("\"time\":\"0001-01-01T00:00:00.0000000Z\""));
5252
}
5353

54+
[TestMethod]
55+
public void IfCallConvertToArrayAndThanDeserializeYouGetSameResult()
56+
{
57+
byte[] array = JsonSerializer.ConvertToByteArray("test");
58+
string result = JsonSerializer.Deserialize(array);
59+
60+
Assert.Equal("test", result);
61+
}
5462
}
5563
}

Test/CoreSDK.Test/Shared/Extensibility/Implementation/Tracing/DiagnosticsTelemetryModuleTest.cs

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
#if NET40
99
using Microsoft.Diagnostics.Tracing;
1010
#endif
11+
using System.Threading;
12+
using System.Threading.Tasks;
1113
using Microsoft.VisualStudio.TestTools.UnitTesting;
14+
using Assert = Xunit.Assert;
1215

1316
[TestClass]
1417
public class DiagnosticsTelemetryModuleTest
@@ -20,12 +23,12 @@ public void TestModuleDefaultInitialization()
2023
{
2124
initializedModule.Initialize(new TelemetryConfiguration());
2225

23-
Assert.IsTrue(string.IsNullOrEmpty(initializedModule.DiagnosticsInstrumentationKey));
24-
Assert.AreEqual("Error", initializedModule.Severity);
26+
Assert.True(string.IsNullOrEmpty(initializedModule.DiagnosticsInstrumentationKey));
27+
Assert.Equal("Error", initializedModule.Severity);
2528

26-
Assert.AreEqual(2, initializedModule.Senders.Count);
27-
Assert.AreEqual(1, initializedModule.Senders.OfType<PortalDiagnosticsSender>().Count());
28-
Assert.AreEqual(1, initializedModule.Senders.OfType<F5DiagnosticsSender>().Count());
29+
Assert.Equal(2, initializedModule.Senders.Count);
30+
Assert.Equal(1, initializedModule.Senders.OfType<PortalDiagnosticsSender>().Count());
31+
Assert.Equal(1, initializedModule.Senders.OfType<F5DiagnosticsSender>().Count());
2932
}
3033
}
3134

@@ -38,9 +41,9 @@ public void TestDiagnosticsModuleSetInstrumentationKey()
3841
initializedModule.Initialize(new TelemetryConfiguration());
3942
initializedModule.DiagnosticsInstrumentationKey = diagnosticsInstrumentationKey;
4043

41-
Assert.AreEqual(diagnosticsInstrumentationKey, initializedModule.DiagnosticsInstrumentationKey);
44+
Assert.Equal(diagnosticsInstrumentationKey, initializedModule.DiagnosticsInstrumentationKey);
4245

43-
Assert.AreEqual(
46+
Assert.Equal(
4447
diagnosticsInstrumentationKey,
4548
initializedModule.Senders.OfType<PortalDiagnosticsSender>().First().DiagnosticsInstrumentationKey);
4649
}
@@ -53,20 +56,51 @@ public void TestDiagnosticsModuleSetSeverity()
5356
{
5457
initializedModule.Initialize(new TelemetryConfiguration());
5558

56-
Assert.AreEqual(EventLevel.Error.ToString(), initializedModule.Severity);
59+
Assert.Equal(EventLevel.Error.ToString(), initializedModule.Severity);
5760

5861
initializedModule.Severity = "Informational";
5962

60-
Assert.AreEqual(EventLevel.Informational, initializedModule.EventListener.LogLevel);
63+
Assert.Equal(EventLevel.Informational, initializedModule.EventListener.LogLevel);
6164
}
6265
}
6366

6467
[TestMethod]
6568
public void TestDiagnosticModuleDoesNotThrowIfInitailizedTwice()
6669
{
67-
DiagnosticsTelemetryModule module = new DiagnosticsTelemetryModule();
68-
module.Initialize(TelemetryConfiguration.Active);
69-
module.Initialize(TelemetryConfiguration.Active);
70+
using (DiagnosticsTelemetryModule module = new DiagnosticsTelemetryModule())
71+
{
72+
module.Initialize(new TelemetryConfiguration());
73+
module.Initialize(new TelemetryConfiguration());
74+
}
75+
}
76+
77+
[TestMethod]
78+
public void DiagnosticModuleDoesNotThrowIfQueueSenderContinuesRecieveEvents()
79+
{
80+
using (DiagnosticsTelemetryModule module = new DiagnosticsTelemetryModule())
81+
{
82+
var queueSender = module.Senders.OfType<PortalDiagnosticsQueueSender>().First();
83+
84+
using (var cancellationTokenSource = new CancellationTokenSource())
85+
{
86+
var taskStarted = new AutoResetEvent(false);
87+
TaskEx.Run(() =>
88+
{
89+
taskStarted.Set();
90+
while (!cancellationTokenSource.IsCancellationRequested)
91+
{
92+
queueSender.Send(new TraceEvent());
93+
Thread.Sleep(1);
94+
}
95+
}, cancellationTokenSource.Token);
96+
97+
taskStarted.WaitOne(TimeSpan.FromSeconds(5));
98+
99+
Assert.DoesNotThrow(() => module.Initialize(new TelemetryConfiguration()));
100+
101+
cancellationTokenSource.Cancel();
102+
}
103+
}
70104
}
71105
}
72106
}

Test/CoreSDK.Test/Shared/Extensibility/SdkVersionPropertyTelemetryInitializerTest.cs

Lines changed: 0 additions & 48 deletions
This file was deleted.

Test/CoreSDK.Test/Shared/Extensibility/TelemetryConfigurationFactoryTest.cs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -79,23 +79,11 @@ public void InitializeAddsOperationContextTelemetryInitializerByDefault()
7979
var configuration = new TelemetryConfiguration();
8080
new TestableTelemetryConfigurationFactory().Initialize(configuration, null);
8181

82-
// Assume that SdkVersionInitializer is added by default
83-
var contextInitializer = configuration.TelemetryInitializers[1];
82+
var contextInitializer = configuration.TelemetryInitializers[0];
8483
Assert.IsType<OperationCorrelationTelemetryInitializer>(contextInitializer);
8584
}
8685
#endif
87-
[TestMethod]
88-
public void InitializeAddsSdkVersionTelemetryInitializerByDefault()
89-
{
90-
var configuration = new TelemetryConfiguration();
91-
new TestableTelemetryConfigurationFactory().Initialize(configuration, null);
92-
93-
// Assume that SdkVersionInitializer is added by default
94-
var contextInitializer = configuration.TelemetryInitializers[0];
95-
Assert.IsType<SdkVersionPropertyTelemetryInitializer>(contextInitializer);
96-
}
97-
98-
86+
9987
[TestMethod]
10088
public void InitializeNotifiesTelemetryInitializersImplementingITelemetryModuleInterface()
10189
{
@@ -610,7 +598,7 @@ public void InitializeAddTelemetryInitializersWithOneInvalid()
610598
var configuration = new TelemetryConfiguration();
611599
new TestableTelemetryConfigurationFactory().Initialize(configuration, null, configFileContents);
612600

613-
Assert.Equal(3, configuration.TelemetryInitializers.Count); // Time and operation initializers are added by default
601+
Assert.Equal(2, configuration.TelemetryInitializers.Count); // Time and operation initializers are added by default
614602
Assert.NotNull(configuration.TelemetryInitializers.First(item => item.GetType().Name == "StubTelemetryInitializer"));
615603
}
616604

Test/CoreSDK.Test/Shared/TelemetryClientTest.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,33 @@ public void TrackWhenChannelIsNullWillThrowInvalidOperationException()
730730
Assert.Throws<InvalidOperationException>(() => client.TrackTrace("test trace"));
731731
}
732732

733+
[TestMethod]
734+
public void TrackAddsSdkVerionByDefault()
735+
{
736+
var configuration = new TelemetryConfiguration { TelemetryChannel = new StubTelemetryChannel(), InstrumentationKey = Guid.NewGuid().ToString() };
737+
var client = new TelemetryClient(configuration);
738+
739+
client.Context.InstrumentationKey = "Test";
740+
EventTelemetry eventTelemetry = new EventTelemetry("test");
741+
client.Track(eventTelemetry);
742+
743+
Assert.StartsWith("dotnet: ", eventTelemetry.Context.Internal.SdkVersion);
744+
}
745+
746+
[TestMethod]
747+
public void TrackDoesNotOverrideSdkVersion()
748+
{
749+
var configuration = new TelemetryConfiguration { TelemetryChannel = new StubTelemetryChannel(), InstrumentationKey = Guid.NewGuid().ToString() };
750+
var client = new TelemetryClient(configuration);
751+
752+
client.Context.InstrumentationKey = "Test";
753+
EventTelemetry eventTelemetry = new EventTelemetry("test");
754+
eventTelemetry.Context.Internal.SdkVersion = "test";
755+
client.Track(eventTelemetry);
756+
757+
Assert.Equal("test", eventTelemetry.Context.Internal.SdkVersion);
758+
}
759+
733760
#endregion
734761

735762
#region Sampling

0 commit comments

Comments
 (0)