Skip to content

Commit

Permalink
Second wave of performance fixes (#1158)
Browse files Browse the repository at this point in the history
* ISupportSampling changes, Foreach to for

* Fix build

* Refactoring of pre-sampling

* Fix tests

* Remove request pool

* Small refactoring

* Remove changes from public API to preserve major version

* ISupportAdvancedSampling tests & SamplingRateStore tests

* Sampling Processor Tests and ISupportSampling back-compat

* typos

* code analysis fixes

* change beta for aspnetcore test

* Code Review - 1

* Stylecop

* Add Operation ID as initializer in Telemetry Client tests

* Use experimental features for proactive sampling

* Fix stylecop

* Cijo CR - 1

* Remove sampling decision from Telemetry Client

* Rename ProactiveSampling To Head Sampling.
Remove SupportsProactiveSampling property.

* Changelog and version

* Sampling gain up comment
  • Loading branch information
Dmitry-Matveev authored Jul 5, 2019
1 parent 9405f13 commit 981feb7
Show file tree
Hide file tree
Showing 41 changed files with 1,244 additions and 179 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
This changelog will be used to generate documentation on [release notes page](http://azure.microsoft.com/documentation/articles/app-insights-release-notes-dotnet/).

## Version 2.11.0-beta1
- [Performance fixes: Support Head Sampling; Remove NewGuid(); Sampling Flags; etc... ](https://github.com/microsoft/ApplicationInsights-dotnet/pull/1158)
- [Deprecate TelemetryConfiguration.Active on .NET Core in favor of dependency injection pattern](https://github.com/microsoft/ApplicationInsights-dotnet/pull/1152)
- [Make TrackMetric() visible. This method is not recommended unless you are sending pre-aggregated metrics.](https://github.com/microsoft/ApplicationInsights-dotnet/pull/1149)

Expand Down
4 changes: 2 additions & 2 deletions GlobalStaticVersion.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
Update for every public release.
-->
<SemanticVersionMajor>2</SemanticVersionMajor>
<SemanticVersionMinor>10</SemanticVersionMinor>
<SemanticVersionMinor>11</SemanticVersionMinor>
<SemanticVersionPatch>0</SemanticVersionPatch>
<!--Valid values: beta1, beta2, EMPTY for stable -->
<PreReleaseMilestone></PreReleaseMilestone>
<PreReleaseMilestone>beta1</PreReleaseMilestone>
<!--
Date when Semantic Version was changed.
Update for every public release.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.ExperimentalFeatures.get -> System.Collections.Generic.IList<string>
static Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension.EvaluateExperimentalFeature(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfiguration, string featureName) -> bool
static Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension.EvaluateExperimentalFeature(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfiguration, string featureName) -> bool
Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions
static Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions.GetLastObservedSamplingPercentage(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration configuration, Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes samplingItemType) -> double
static Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions.SetLastObservedSamplingPercentage(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration configuration, Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes samplingItemType, double value) -> void
Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator
static Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator.GetSamplingScore(string value) -> double
static Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator.GetSamplingScore(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry) -> double
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.None = 0 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Event = 1 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Exception = 2 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Message = 4 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Metric = 8 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PageView = 16 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PageViewPerformance = 32 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PerformanceCounter = 64 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.RemoteDependency = 128 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Request = 256 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.SessionState = 512 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Availability = 1024 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.IsSampledOutAtHead.set -> void
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.ExperimentalFeatures.get -> System.Collections.Generic.IList<string>
static Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension.EvaluateExperimentalFeature(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfiguration, string featureName) -> bool
static Microsoft.ApplicationInsights.Extensibility.Implementation.Experimental.ExperimentalFeaturesExtension.EvaluateExperimentalFeature(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfiguration, string featureName) -> bool
Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions
static Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions.GetLastObservedSamplingPercentage(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration configuration, Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes samplingItemType) -> double
static Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationExtensions.SetLastObservedSamplingPercentage(this Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration configuration, Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes samplingItemType, double value) -> void
Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator
static Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator.GetSamplingScore(string value) -> double
static Microsoft.ApplicationInsights.Channel.SamplingScoreGenerator.GetSamplingScore(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry) -> double
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.None = 0 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Event = 1 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Exception = 2 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Message = 4 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Metric = 8 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PageView = 16 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PageViewPerformance = 32 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.PerformanceCounter = 64 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.RemoteDependency = 128 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Request = 256 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.SessionState = 512 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes.Availability = 1024 -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.ItemTypeFlag.get -> Microsoft.ApplicationInsights.DataContracts.SamplingTelemetryItemTypes
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.ISupportAdvancedSampling.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.IsSampledOutAtHead.get -> bool
Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.EventTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.PageViewPerformanceTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.IsSampledOutAtHead.set -> void
Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.IsSampledOutAtHead.set -> void
Loading

0 comments on commit 981feb7

Please sign in to comment.