Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Colin/apply safe version ranges #341

Merged
merged 10 commits into from
May 14, 2019
1 change: 1 addition & 0 deletions GlobalSuppressions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@
[assembly: SuppressMessage("StyleCop.CSharp.LayoutRules", "SA1512:Single-line comments must not be followed by blank line", Justification = "Reviewed.")]
[assembly: SuppressMessage("StyleCop.CSharp.LayoutRules", "SA1515:Single-line comment must be preceded by blank line", Justification = "Reviewed.")]
[assembly: SuppressMessage("StyleCop.CSharp.LayoutRules", "SA1501:Statement must not be on a single line", Justification = "Reviewed.")]
[assembly: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1119:StatementMustNotUseUnnecessaryParenthesis", Justification = "Reviewed.")]
2 changes: 1 addition & 1 deletion devenv.bat
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
SET CORECLR_PROFILER_PATH=%~dp0\src\Datadog.Trace.ClrProfiler.Native\bin\%profiler_configuration%\%profiler_platform%\Datadog.Trace.ClrProfiler.Native.dll

rem Limit profiling to these processes only
REM SET DD_PROFILER_PROCESSES=w3wp.exe;iisexpress.exe;Samples.AspNetCoreMvc2.exe;dotnet.exe;Samples.SqlServer.exe;Samples.RedisCore.exe;Samples.Elasticsearch.exe;Samples.MongoDB.exe;wcfsvchost.exe
SET DD_PROFILER_PROCESSES=w3wp.exe;iisexpress.exe;Samples.AspNetCoreMvc2.exe;dotnet.exe;Samples.SqlServer.exe;Samples.RedisCore.exe;Samples.Elasticsearch.exe;Samples.Elasticsearch.V5.exe;Samples.MongoDB.exe;Samples.HttpMessageHandler.exe;Samples.Npgsql.exe;wcfsvchost.exe

rem Set location of integration definitions
SET DD_INTEGRATIONS=%~dp0\integrations.json;%~dp0\test-integrations.json
Expand Down
102 changes: 51 additions & 51 deletions integrations.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
"assembly": "System.Data",
"type": "System.Data.Common.DbCommand",
"method": "ExecuteDbDataReader",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -28,10 +28,10 @@
"assembly": "System.Data.Common",
"type": "System.Data.Common.DbCommand",
"method": "ExecuteDbDataReader",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -48,10 +48,10 @@
"assembly": "System.Data",
"type": "System.Data.Common.DbCommand",
"method": "ExecuteDbDataReaderAsync",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -68,10 +68,10 @@
"assembly": "System.Data.Common",
"type": "System.Data.Common.DbCommand",
"method": "ExecuteDbDataReaderAsync",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -95,10 +95,10 @@
"assembly": "Microsoft.AspNetCore.Mvc.Core",
"type": "Microsoft.AspNetCore.Mvc.Internal.MvcCoreDiagnosticSourceExtensions",
"method": "BeforeAction",
"minimum_major": 0,
"minimum_major": 2,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -117,10 +117,10 @@
"assembly": "Microsoft.AspNetCore.Mvc.Core",
"type": "Microsoft.AspNetCore.Mvc.Internal.MvcCoreDiagnosticSourceExtensions",
"method": "AfterAction",
"minimum_major": 0,
"minimum_major": 2,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -139,10 +139,10 @@
"assembly": "Microsoft.AspNetCore.Mvc.Core",
"type": "Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker",
"method": "Rethrow",
"minimum_major": 0,
"minimum_major": 2,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -168,7 +168,7 @@
"method": "BeginInvokeAction",
"minimum_major": 5,
"minimum_minor": 1,
"minimum_patch": 3,
"minimum_patch": 0,
"maximum_major": 5,
"maximum_minor": 65535,
"maximum_patch": 65535
Expand All @@ -188,10 +188,10 @@
"assembly": "System.Web.Mvc",
"type": "System.Web.Mvc.Async.IAsyncActionInvoker",
"method": "EndInvokeAction",
"minimum_major": 0,
"minimum_minor": 0,
"minimum_major": 5,
"minimum_minor": 1,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 5,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -213,10 +213,10 @@
"assembly": "System.Web.Http",
"type": "System.Web.Http.Controllers.IHttpController",
"method": "ExecuteAsync",
"minimum_major": 0,
"minimum_minor": 0,
"minimum_major": 5,
"minimum_minor": 2,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 5,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand Down Expand Up @@ -287,10 +287,10 @@
"assembly": "System.Net.Http",
"type": "System.Net.Http.HttpMessageHandler",
"method": "SendAsync",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -307,10 +307,10 @@
"assembly": "System.Net.Http",
"type": "System.Net.Http.HttpClientHandler",
"method": "SendAsync",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -335,7 +335,7 @@
"minimum_major": 2,
"minimum_minor": 2,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -355,7 +355,7 @@
"minimum_major": 2,
"minimum_minor": 2,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -375,7 +375,7 @@
"minimum_major": 2,
"minimum_minor": 1,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -395,7 +395,7 @@
"minimum_major": 2,
"minimum_minor": 1,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -419,10 +419,10 @@
"assembly": "ServiceStack.Redis",
"type": "ServiceStack.Redis.RedisNativeClient",
"method": "SendReceive",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 5,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -446,10 +446,10 @@
"assembly": "StackExchange.Redis",
"type": "StackExchange.Redis.ConnectionMultiplexer",
"method": "ExecuteSyncImpl",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -468,10 +468,10 @@
"assembly": "StackExchange.Redis.StrongName",
"type": "StackExchange.Redis.ConnectionMultiplexer",
"method": "ExecuteSyncImpl",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -490,10 +490,10 @@
"assembly": "StackExchange.Redis",
"type": "StackExchange.Redis.ConnectionMultiplexer",
"method": "ExecuteAsyncImpl",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -512,10 +512,10 @@
"assembly": "StackExchange.Redis.StrongName",
"type": "StackExchange.Redis.ConnectionMultiplexer",
"method": "ExecuteAsyncImpl",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 2,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -534,10 +534,10 @@
"assembly": "StackExchange.Redis",
"type": "StackExchange.Redis.RedisBase",
"method": "ExecuteAsync",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 1,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -556,10 +556,10 @@
"assembly": "StackExchange.Redis.StrongName",
"type": "StackExchange.Redis.RedisBase",
"method": "ExecuteAsync",
"minimum_major": 0,
"minimum_major": 1,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 1,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -581,10 +581,10 @@
"assembly": "System.ServiceModel",
"type": "System.ServiceModel.Dispatcher.ChannelHandler",
"method": "HandleRequest",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -606,10 +606,10 @@
"assembly": "System",
"type": "System.Net.WebRequest",
"method": "GetResponse",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -626,10 +626,10 @@
"assembly": "System.Net.Requests",
"type": "System.Net.WebRequest",
"method": "GetResponse",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand All @@ -646,10 +646,10 @@
"assembly": "System.Net",
"type": "System.Net.WebRequest",
"method": "GetResponseAsync",
"minimum_major": 0,
"minimum_major": 4,
"minimum_minor": 0,
"minimum_patch": 0,
"maximum_major": 65535,
"maximum_major": 4,
"maximum_minor": 65535,
"maximum_patch": 65535
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using System.Data.Common;
using System.Threading;
using System.Threading.Tasks;
using Datadog.Trace.ClrProfiler.Emit;
using Datadog.Trace.ExtensionMethods;
using Datadog.Trace.Logging;

Expand All @@ -15,6 +14,7 @@ namespace Datadog.Trace.ClrProfiler.Integrations
public static class AdoNetIntegration
{
private const string IntegrationName = "AdoNet";
private const string Major4 = "4";

private static readonly ILog Log = LogProvider.GetLogger(typeof(AdoNetIntegration));

Expand All @@ -26,10 +26,14 @@ public static class AdoNetIntegration
/// <returns>The value returned by the instrumented method.</returns>
[InterceptMethod(
TargetAssembly = "System.Data", // .NET Framework
TargetType = "System.Data.Common.DbCommand")]
TargetType = "System.Data.Common.DbCommand",
TargetMinimumVersion = Major4,
TargetMaximumVersion = Major4)]
[InterceptMethod(
TargetAssembly = "System.Data.Common", // .NET Core
TargetType = "System.Data.Common.DbCommand")]
TargetType = "System.Data.Common.DbCommand",
TargetMinimumVersion = Major4,
TargetMaximumVersion = Major4)]
public static object ExecuteDbDataReader(object @this, int behavior)
{
var command = (DbCommand)@this;
Expand Down Expand Up @@ -63,10 +67,14 @@ public static object ExecuteDbDataReader(object @this, int behavior)
/// <returns>The value returned by the instrumented method.</returns>
[InterceptMethod(
TargetAssembly = "System.Data", // .NET Framework
TargetType = "System.Data.Common.DbCommand")]
TargetType = "System.Data.Common.DbCommand",
TargetMinimumVersion = Major4,
TargetMaximumVersion = Major4)]
[InterceptMethod(
TargetAssembly = "System.Data.Common", // .NET Core
TargetType = "System.Data.Common.DbCommand")]
TargetType = "System.Data.Common.DbCommand",
TargetMinimumVersion = Major4,
TargetMaximumVersion = Major4)]
public static object ExecuteDbDataReaderAsync(object @this, int behavior, object cancellationTokenSource)
{
var tokenSource = cancellationTokenSource as CancellationTokenSource;
Expand Down
Loading