From 120de82a67616df013026e2f3b54734ada7e7fbc Mon Sep 17 00:00:00 2001 From: Steven Bouwkamp Date: Wed, 6 Aug 2025 13:23:10 -0400 Subject: [PATCH 1/3] Add Nuke steps to generate supported integrations This was something I messed around with last R&D week with Cursor / other LLM coding agents to see how they would fair taking in some JSON structure and wrangling it into a "different" format. There isn't much benefit of this TBH compared to the current supported_versions.json file but since that one has additional information :shrug: --- .../Build.SupportedIntegrationsTable.cs | 55 +++ .../SupportedIntegrationsTableGenerator.cs | 326 ++++++++++++++++++ 2 files changed, 381 insertions(+) create mode 100644 tracer/build/_build/Build.SupportedIntegrationsTable.cs create mode 100644 tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs diff --git a/tracer/build/_build/Build.SupportedIntegrationsTable.cs b/tracer/build/_build/Build.SupportedIntegrationsTable.cs new file mode 100644 index 000000000000..42c516c09803 --- /dev/null +++ b/tracer/build/_build/Build.SupportedIntegrationsTable.cs @@ -0,0 +1,55 @@ +using System.IO; +using CodeGenerators; +using Nuke.Common; +using Nuke.Common.IO; +using static Nuke.Common.IO.FileSystemTasks; +using Logger = Serilog.Log; + +partial class Build +{ + AbsolutePath SupportedVersionsJson => TracerDirectory / "build" / "supported_versions.json"; + AbsolutePath SupportedIntegrationsOutputDirectory => TracerDirectory / "build" / "integrations"; + + Target GenerateSupportedIntegrationsCsv => _ => _ + .Description("Generates CSV files with supported integrations CSVs") + .Executes(() => + { + // all information / data is just pulled from the supported_versions.json file and just rendered into CSV files + if (!File.Exists(SupportedVersionsJson)) + { + Logger.Error("supported_versions.json not found at {Path}", SupportedVersionsJson); + throw new FileNotFoundException($"Could not find supported_versions.json at {SupportedVersionsJson}"); + } + + Logger.Information("Generating supported integrations CSV files"); + + EnsureExistingDirectory(SupportedIntegrationsOutputDirectory); + + SupportedIntegrationsTableGenerator.GenerateCsvFiles(SupportedVersionsJson, SupportedIntegrationsOutputDirectory); + + // Also copy to artifacts directory if it exists + if (Directory.Exists(ArtifactsDirectory)) + { + var netCoreCsv = SupportedIntegrationsOutputDirectory / "supported_integrations_netcore.csv"; + var netFxCsv = SupportedIntegrationsOutputDirectory / "supported_integrations_netfx.csv"; + var allCsv = SupportedIntegrationsOutputDirectory / "supported_integrations.csv"; + + if (File.Exists(netCoreCsv)) + { + CopyFile(netCoreCsv, ArtifactsDirectory / "supported_integrations_netcore.csv", FileExistsPolicy.Overwrite); + } + + if (File.Exists(netFxCsv)) + { + CopyFile(netFxCsv, ArtifactsDirectory / "supported_integrations_netfx.csv", FileExistsPolicy.Overwrite); + } + + if (File.Exists(allCsv)) + { + CopyFile(allCsv, ArtifactsDirectory / "supported_integrations.csv", FileExistsPolicy.Overwrite); + } + } + + Logger.Information("Supported Integrations CSV files generated."); + }); +} diff --git a/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs new file mode 100644 index 000000000000..c773cbcda21f --- /dev/null +++ b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs @@ -0,0 +1,326 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.Json; +using Nuke.Common.IO; +using static Nuke.Common.IO.FileSystemTasks; +using Logger = Serilog.Log; + +namespace CodeGenerators +{ + /// + /// Generates CSV files containing information about supported integrations from the supported_versions.json file. + /// + public static class SupportedIntegrationsTableGenerator + { + public class SupportedVersion + { + public string IntegrationName { get; set; } + public string AssemblyName { get; set; } + public string MinAssemblyVersionInclusive { get; set; } + public string MaxAssemblyVersionInclusive { get; set; } + public List Packages { get; set; } + } + + public class Package + { + public string Name { get; set; } + public string MinVersionAvailableInclusive { get; set; } + public string MinVersionSupportedInclusive { get; set; } + public string MinVersionTestedInclusive { get; set; } + public string MaxVersionSupportedInclusive { get; set; } + public string MaxVersionAvailableInclusive { get; set; } + public string MaxVersionTestedInclusive { get; set; } + } + + public class IntegrationInfo + { + public string IntegrationName { get; set; } + public string DisplayName { get; set; } + public string NuGetPackage { get; set; } + public string AssemblyName { get; set; } + public string MinVersion { get; set; } + public string MaxVersion { get; set; } + public bool IsBuiltIn { get; set; } + public bool IsNetCore { get; set; } + public bool IsNetFramework { get; set; } + } + + // skip these integrations as they are helpers/utilities, not real integrations + // Well OpenTelemetry is a real integration, but unsure how to present that + private static readonly HashSet HelperIntegrations = new() + { + "CallTargetNativeTest", + "ServiceRemoting", + "OpenTelemetry", + "AssemblyResolve" + }; + + // User-friendly display names for integrations + private static readonly Dictionary IntegrationDisplayNames = new() + { + ["AdoNet"] = "ADO.NET", + ["Aerospike"] = "Aerospike", + ["AspNet"] = "ASP.NET", + ["AspNetCore"] = "ASP.NET Core", + ["AspNetMvc"] = "ASP.NET MVC", + ["AspNetWebApi2"] = "ASP.NET Web API", + ["AwsDynamoDb"] = "AWS DynamoDB", + ["AwsKinesis"] = "AWS Kinesis", + ["AwsLambda"] = "AWS Lambda", + ["AwsSns"] = "AWS SNS", + ["AwsSqs"] = "AWS SQS", + ["AzureFunctions"] = "Azure Functions", + ["CosmosDb"] = "Azure Cosmos DB", + ["Couchbase"] = "Couchbase", + ["DatadogTraceManual"] = "Manual Instrumentation", + ["DiagnosticSource"] = "DiagnosticSource (Activity)", + ["Elasticsearch"] = "Elasticsearch", + ["GraphQL"] = "GraphQL .NET", + ["Grpc"] = "gRPC", + ["HotChocolate"] = "HotChocolate (GraphQL)", + ["HttpMessageHandler"] = "HttpClient", + ["ILogger"] = "ILogger", + ["Kafka"] = "Kafka (Confluent)", + ["MassTransit"] = "MassTransit", + ["MongoDB"] = "MongoDB", + ["Msmq"] = "MSMQ", + ["MySql"] = "MySQL (MySql.Data)", + ["MySqlData"] = "MySQL (MySqlConnector)", + ["NLog"] = "NLog", + ["Npgsql"] = "PostgreSQL (Npgsql)", + ["NServiceBus"] = "NServiceBus", + ["NUnit"] = "NUnit", + ["Oracle"] = "Oracle", + ["Owin"] = "OWIN", + ["Process"] = "Process (Command Injection)", + ["RabbitMQ"] = "RabbitMQ", + ["Registry"] = "Windows Registry (LFI)", + ["Remoting"] = ".NET Remoting", + ["Serilog"] = "Serilog", + ["ServiceStackRedis"] = "Redis (ServiceStack)", + ["StackExchangeRedis"] = "Redis (StackExchange)", + ["Sqlite"] = "SQLite", + ["SqlClient"] = "SQL Server", + ["Ssrf"] = "SSRF Protection", + ["StackTraceLeak"] = "StackTrace Leak Protection", + ["TestPlatformAssemblyResolver"] = "Test Platform Assembly Resolver", + ["Wcf"] = "WCF", + ["WebRequest"] = "WebClient / WebRequest", + ["Xss"] = "XSS Protection", + ["XUnit"] = "xUnit", + ["MsTestV2"] = "MSTest" + }; + + // not 100% sure on these TBH would have to check + private static readonly HashSet NetCoreOnlyIntegrations = new() + { + "AspNetCore", + "Grpc", + "HotChocolate" + }; + + private static readonly HashSet NetFrameworkOnlyIntegrations = new() + { + "AspNet", + "AspNetMvc", + "AspNetWebApi2", + "Msmq", + "Owin", + "Remoting", + "Wcf" + }; + + // runtime stuff that _usually_ don't come from NuGet packages, but they could + private static readonly HashSet BuiltInAssemblies = new() + { + "System.Web", + "System.Web.Mvc", + "System.Web.Http", + "System.Messaging", + "System.Runtime.Remoting", + "System.ServiceModel", + "System.Diagnostics.Process", + "System.Data", + "System.Data.Common", + "System.Data.SqlClient", + "System.Net.Http", + "System.Net.Requests", + "Microsoft.Owin", + "Owin", + "netstandard" + }; + + /// + /// Generates CSV files containing supported integrations information. + /// + /// Path to the supported_versions.json file + /// Directory where CSV files will be saved + public static void GenerateCsvFiles(AbsolutePath supportedVersionsPath, AbsolutePath outputDirectory) + { + Logger.Information("Reading supported versions from {Path}", supportedVersionsPath); + + var supportedVersions = ReadSupportedVersions(supportedVersionsPath); + var integrations = ProcessIntegrations(supportedVersions); + + GenerateOutputFiles(integrations, outputDirectory); + } + + private static List ReadSupportedVersions(AbsolutePath supportedVersionsPath) + { + var json = File.ReadAllText(supportedVersionsPath); + return JsonSerializer.Deserialize>(json, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); + } + + private static void GenerateOutputFiles(List integrations, AbsolutePath outputDirectory) + { + // Generate .NET Core/.NET CSV + GenerateCsv( + integrations.Where(i => i.IsNetCore).OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + outputDirectory / "supported_integrations_netcore.csv", + ".NET Core / .NET"); + + // Generate .NET Framework CSV + GenerateCsv( + integrations.Where(i => i.IsNetFramework).OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + outputDirectory / "supported_integrations_netfx.csv", + ".NET Framework"); + + // Generate combined CSV + GenerateCsv( + integrations.OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + outputDirectory / "supported_integrations.csv", + "All Frameworks"); + } + + private static List ProcessIntegrations(List supportedVersions) + { + var integrations = new List(); + + foreach (var version in supportedVersions) + { + if (IsHelperIntegration(version.IntegrationName)) + continue; + + var displayName = GetDisplayName(version.IntegrationName); + + if (version.Packages != null && version.Packages.Any()) + { + foreach (var package in version.Packages) + { + var info = CreateIntegrationInfo(version, package, displayName); + integrations.Add(info); + } + } + else + { + var info = CreateIntegrationInfoFromAssembly(version, displayName); + integrations.Add(info); + } + } + + return integrations; + } + + private static IntegrationInfo CreateIntegrationInfo(SupportedVersion version, Package package, string displayName) + { + return new IntegrationInfo + { + IntegrationName = version.IntegrationName, + DisplayName = displayName, + NuGetPackage = package.Name, + AssemblyName = version.AssemblyName, + MinVersion = GetVersionString(package.MinVersionSupportedInclusive ?? version.MinAssemblyVersionInclusive), + MaxVersion = GetVersionString(package.MaxVersionSupportedInclusive ?? version.MaxAssemblyVersionInclusive), + IsBuiltIn = IsBuiltInPackage(package.Name), + IsNetCore = !NetFrameworkOnlyIntegrations.Contains(version.IntegrationName), + IsNetFramework = !NetCoreOnlyIntegrations.Contains(version.IntegrationName) + }; + } + + private static IntegrationInfo CreateIntegrationInfoFromAssembly(SupportedVersion version, string displayName) + { + var packageName = GetPackageNameForAssembly(version.IntegrationName, version.AssemblyName); + + return new IntegrationInfo + { + IntegrationName = version.IntegrationName, + DisplayName = displayName, + NuGetPackage = packageName, + AssemblyName = version.AssemblyName, + MinVersion = GetVersionString(version.MinAssemblyVersionInclusive), + MaxVersion = GetVersionString(version.MaxAssemblyVersionInclusive), + IsBuiltIn = IsBuiltInPackage(packageName), + IsNetCore = !NetFrameworkOnlyIntegrations.Contains(version.IntegrationName), + IsNetFramework = !NetCoreOnlyIntegrations.Contains(version.IntegrationName) + }; + } + + private static bool IsHelperIntegration(string integrationName) + { + return HelperIntegrations.Contains(integrationName); + } + + private static bool IsBuiltInPackage(string packageName) + { + return BuiltInAssemblies.Contains(packageName) || + packageName.StartsWith("System.") || + packageName == "netstandard"; + } + + private static string GetDisplayName(string integrationName) + { + return IntegrationDisplayNames.TryGetValue(integrationName, out var displayName) + ? displayName + : integrationName; + } + + private static string GetPackageNameForAssembly(string integrationName, string assemblyName) + { + // For assemblies without NuGet packages, return the assembly name + // The built-in status will be determined by IsBuiltInPackage + return assemblyName; + } + + private static string GetVersionString(string version) + { + if (string.IsNullOrEmpty(version)) + return "N/A"; + + // Handle versions like "4.65535.65535" by showing just major version + if (version.Contains("65535")) + { + var parts = version.Split('.'); + if (parts.Length > 0) + { + return parts[0] + ".x"; + } + } + + return version; + } + + private static void GenerateCsv(IEnumerable integrations, AbsolutePath outputPath, string framework) + { + var sb = new StringBuilder(); + sb.AppendLine("Display Name,Integration Name,NuGet Package,Assembly,Min Version,Max Version,Built-in"); + + foreach (var integration in integrations) + { + var builtIn = integration.IsBuiltIn ? "Yes" : "No"; + sb.AppendLine($"\"{integration.DisplayName}\",\"{integration.IntegrationName}\",\"{integration.NuGetPackage}\",\"{integration.AssemblyName}\",\"{integration.MinVersion}\",\"{integration.MaxVersion}\",\"{builtIn}\""); + } + + EnsureExistingDirectory(outputPath.Parent); + File.WriteAllText(outputPath, sb.ToString()); + + Logger.Information("Generated {Framework} supported integrations CSV: {Path}", framework, outputPath); + Logger.Information("Total integrations: {Count}", integrations.Count()); + } + } +} From cc363432559db362a2ccf6228446cc9a7676c38e Mon Sep 17 00:00:00 2001 From: Steven Bouwkamp Date: Wed, 6 Aug 2025 13:31:48 -0400 Subject: [PATCH 2/3] Simplify the data --- .../SupportedIntegrationsTableGenerator.cs | 5 +- .../integrations/supported_integrations.csv | 97 +++++++++++++++++++ .../supported_integrations_netcore.csv | 91 +++++++++++++++++ .../supported_integrations_netfx.csv | 82 ++++++++++++++++ 4 files changed, 272 insertions(+), 3 deletions(-) create mode 100644 tracer/build/integrations/supported_integrations.csv create mode 100644 tracer/build/integrations/supported_integrations_netcore.csv create mode 100644 tracer/build/integrations/supported_integrations_netfx.csv diff --git a/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs index c773cbcda21f..809d23d49c3a 100644 --- a/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs +++ b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs @@ -308,12 +308,11 @@ private static string GetVersionString(string version) private static void GenerateCsv(IEnumerable integrations, AbsolutePath outputPath, string framework) { var sb = new StringBuilder(); - sb.AppendLine("Display Name,Integration Name,NuGet Package,Assembly,Min Version,Max Version,Built-in"); + sb.AppendLine("Integration Name,NuGet Package,Min Version,Max Version"); foreach (var integration in integrations) { - var builtIn = integration.IsBuiltIn ? "Yes" : "No"; - sb.AppendLine($"\"{integration.DisplayName}\",\"{integration.IntegrationName}\",\"{integration.NuGetPackage}\",\"{integration.AssemblyName}\",\"{integration.MinVersion}\",\"{integration.MaxVersion}\",\"{builtIn}\""); + sb.AppendLine($"\"{integration.IntegrationName}\",\"{integration.NuGetPackage}\",\"{integration.MinVersion}\",\"{integration.MaxVersion}\""); } EnsureExistingDirectory(outputPath.Parent); diff --git a/tracer/build/integrations/supported_integrations.csv b/tracer/build/integrations/supported_integrations.csv new file mode 100644 index 000000000000..8fb93175417f --- /dev/null +++ b/tracer/build/integrations/supported_integrations.csv @@ -0,0 +1,97 @@ +Integration Name,NuGet Package,Min Version,Max Version +"Remoting","System.Runtime.Remoting","4.0.0","4.x" +"AdoNet","netstandard","2.0.0","2.x" +"AdoNet","System.Data.Common","4.0.0","4.3.0" +"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" +"Aerospike","Aerospike.Client","4.0.0","8.1.0" +"AspNet","System.Web","4.0.0","4.x" +"AspNetCore","Microsoft.AspNetCore.Authentication.Abstractions","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Http","2.0.0","9.x" +"AspNetCore","Microsoft.AspNetCore.Http.Abstractions","2.2.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Identity","2.0.0","2.3.1" +"AspNetCore","Microsoft.AspNetCore.Mvc.Core","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Server.IIS","2.2.0","2.2.6" +"AspNetCore","Microsoft.AspNetCore.Server.Kestrel.Core","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Session","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.StaticFiles","2.0.0","2.3.0" +"AspNetCore","Microsoft.Extensions.Identity.Core","2.0.0","9.0.8" +"AspNetMvc","Microsoft.AspNet.Mvc","4.0.20505","5.3.0" +"AspNetWebApi2","System.Web.Http","5.1.0","5.x" +"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" +"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" +"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" +"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" +"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" +"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" +"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" +"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" +"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" +"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" +"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" +"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" +"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" +"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" +"DotnetTest","coverlet.core","3.0.0","6.x" +"DotnetTest","dotnet","2.0.0","9.x" +"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" +"DotnetTest","vstest.console","15.0.0","15.x" +"DotnetTest","vstest.console.arm64","15.0.0","15.x" +"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" +"GraphQL","GraphQL","2.3.0","8.5.0" +"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" +"Grpc","Google.Protobuf","3.0.0","3.31.1" +"Grpc","Grpc","2.23.0","2.46.6" +"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" +"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" +"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" +"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" +"HotChocolate","HotChocolate.AspNetCore","11.0.0","15.1.8" +"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" +"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" +"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" +"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" +"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" +"Kafka","Confluent.Kafka","1.4.0","2.11.0" +"Log4Net","log4net","1.2.10","3.1.0" +"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" +"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" +"Msmq","System.Messaging","4.0.0","4.x" +"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" +"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MySql","MySql.Data","6.7.4","9.4.0" +"MySql","MySqlConnector","0.61.0","2.4.0" +"NLog","NLog","1.0.0.505","6.0.2" +"NUnit","NUnit","3.0.0","4.3.2" +"Oracle","Oracle.DataAccess","4.122.0","4.x" +"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" +"Npgsql","Npgsql","4.0.0","9.0.3" +"Process","System","1.0.0","9.x" +"Process","System.Diagnostics.Process","1.0.0","9.x" +"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" +"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" +"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" +"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" +"Selenium","Selenium.WebDriver","3.0.0","4.34.0" +"Serilog","Serilog","1.0.1","4.3.0" +"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" +"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" +"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" +"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" +"Ssrf","RestSharp","104.0.0","112.x" +"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" +"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" +"Wcf","System.ServiceModel.Http","4.0.0","4.10.3" +"WebRequest","System.Net.Requests","4.0.0","4.3.0" +"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" +"XUnit","xunit","2.2.0","2.9.3" +"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" +"XUnit","xunit.v3","1.0.0","3.0.0" diff --git a/tracer/build/integrations/supported_integrations_netcore.csv b/tracer/build/integrations/supported_integrations_netcore.csv new file mode 100644 index 000000000000..9f31ffdada9f --- /dev/null +++ b/tracer/build/integrations/supported_integrations_netcore.csv @@ -0,0 +1,91 @@ +Integration Name,NuGet Package,Min Version,Max Version +"AdoNet","netstandard","2.0.0","2.x" +"AdoNet","System.Data.Common","4.0.0","4.3.0" +"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" +"Aerospike","Aerospike.Client","4.0.0","8.1.0" +"AspNetCore","Microsoft.AspNetCore.Authentication.Abstractions","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Http","2.0.0","9.x" +"AspNetCore","Microsoft.AspNetCore.Http.Abstractions","2.2.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Identity","2.0.0","2.3.1" +"AspNetCore","Microsoft.AspNetCore.Mvc.Core","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Server.IIS","2.2.0","2.2.6" +"AspNetCore","Microsoft.AspNetCore.Server.Kestrel.Core","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.Session","2.0.0","2.3.0" +"AspNetCore","Microsoft.AspNetCore.StaticFiles","2.0.0","2.3.0" +"AspNetCore","Microsoft.Extensions.Identity.Core","2.0.0","9.0.8" +"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" +"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" +"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" +"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" +"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" +"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" +"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" +"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" +"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" +"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" +"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" +"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" +"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" +"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" +"DotnetTest","coverlet.core","3.0.0","6.x" +"DotnetTest","dotnet","2.0.0","9.x" +"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" +"DotnetTest","vstest.console","15.0.0","15.x" +"DotnetTest","vstest.console.arm64","15.0.0","15.x" +"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" +"GraphQL","GraphQL","2.3.0","8.5.0" +"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" +"Grpc","Google.Protobuf","3.0.0","3.31.1" +"Grpc","Grpc","2.23.0","2.46.6" +"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" +"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" +"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" +"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" +"HotChocolate","HotChocolate.AspNetCore","11.0.0","15.1.8" +"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" +"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" +"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" +"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" +"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" +"Kafka","Confluent.Kafka","1.4.0","2.11.0" +"Log4Net","log4net","1.2.10","3.1.0" +"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" +"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" +"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" +"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MySql","MySql.Data","6.7.4","9.4.0" +"MySql","MySqlConnector","0.61.0","2.4.0" +"NLog","NLog","1.0.0.505","6.0.2" +"NUnit","NUnit","3.0.0","4.3.2" +"Oracle","Oracle.DataAccess","4.122.0","4.x" +"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" +"Npgsql","Npgsql","4.0.0","9.0.3" +"Process","System","1.0.0","9.x" +"Process","System.Diagnostics.Process","1.0.0","9.x" +"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" +"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" +"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" +"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" +"Selenium","Selenium.WebDriver","3.0.0","4.34.0" +"Serilog","Serilog","1.0.1","4.3.0" +"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" +"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" +"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" +"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" +"Ssrf","RestSharp","104.0.0","112.x" +"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" +"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" +"WebRequest","System.Net.Requests","4.0.0","4.3.0" +"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" +"XUnit","xunit","2.2.0","2.9.3" +"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" +"XUnit","xunit.v3","1.0.0","3.0.0" diff --git a/tracer/build/integrations/supported_integrations_netfx.csv b/tracer/build/integrations/supported_integrations_netfx.csv new file mode 100644 index 000000000000..15082a210e21 --- /dev/null +++ b/tracer/build/integrations/supported_integrations_netfx.csv @@ -0,0 +1,82 @@ +Integration Name,NuGet Package,Min Version,Max Version +"Remoting","System.Runtime.Remoting","4.0.0","4.x" +"AdoNet","netstandard","2.0.0","2.x" +"AdoNet","System.Data.Common","4.0.0","4.3.0" +"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" +"Aerospike","Aerospike.Client","4.0.0","8.1.0" +"AspNet","System.Web","4.0.0","4.x" +"AspNetMvc","Microsoft.AspNet.Mvc","4.0.20505","5.3.0" +"AspNetWebApi2","System.Web.Http","5.1.0","5.x" +"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" +"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" +"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" +"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" +"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" +"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" +"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" +"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" +"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" +"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" +"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" +"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" +"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" +"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" +"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" +"DotnetTest","coverlet.core","3.0.0","6.x" +"DotnetTest","dotnet","2.0.0","9.x" +"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" +"DotnetTest","vstest.console","15.0.0","15.x" +"DotnetTest","vstest.console.arm64","15.0.0","15.x" +"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" +"GraphQL","GraphQL","2.3.0","8.5.0" +"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" +"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" +"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" +"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" +"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" +"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" +"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" +"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" +"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" +"Kafka","Confluent.Kafka","1.4.0","2.11.0" +"Log4Net","log4net","1.2.10","3.1.0" +"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" +"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver","2.1.0","3.4.2" +"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" +"Msmq","System.Messaging","4.0.0","4.x" +"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" +"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" +"MySql","MySql.Data","6.7.4","9.4.0" +"MySql","MySqlConnector","0.61.0","2.4.0" +"NLog","NLog","1.0.0.505","6.0.2" +"NUnit","NUnit","3.0.0","4.3.2" +"Oracle","Oracle.DataAccess","4.122.0","4.x" +"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" +"Npgsql","Npgsql","4.0.0","9.0.3" +"Process","System","1.0.0","9.x" +"Process","System.Diagnostics.Process","1.0.0","9.x" +"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" +"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" +"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" +"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" +"Selenium","Selenium.WebDriver","3.0.0","4.34.0" +"Serilog","Serilog","1.0.1","4.3.0" +"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" +"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" +"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" +"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" +"Ssrf","RestSharp","104.0.0","112.x" +"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" +"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" +"Wcf","System.ServiceModel.Http","4.0.0","4.10.3" +"WebRequest","System.Net.Requests","4.0.0","4.3.0" +"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" +"XUnit","xunit","2.2.0","2.9.3" +"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" +"XUnit","xunit.v3","1.0.0","3.0.0" From f71601d7806f4306bbb4bce51307f19a83d3156e Mon Sep 17 00:00:00 2001 From: Steven Bouwkamp Date: Mon, 11 Aug 2025 13:58:08 -0400 Subject: [PATCH 3/3] Simplify generation further and use floating versions --- .../SupportedIntegrationsTableGenerator.cs | 164 +++------------ .../integrations/supported_integrations.csv | 194 +++++++++--------- .../supported_integrations_netcore.csv | 182 ++++++++-------- .../supported_integrations_netfx.csv | 164 +++++++-------- 4 files changed, 300 insertions(+), 404 deletions(-) diff --git a/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs index 809d23d49c3a..d1313f4a725b 100644 --- a/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs +++ b/tracer/build/_build/CodeGenerators/SupportedIntegrationsTableGenerator.cs @@ -38,12 +38,9 @@ public class Package public class IntegrationInfo { public string IntegrationName { get; set; } - public string DisplayName { get; set; } - public string NuGetPackage { get; set; } - public string AssemblyName { get; set; } + public string PackageName { get; set; } public string MinVersion { get; set; } public string MaxVersion { get; set; } - public bool IsBuiltIn { get; set; } public bool IsNetCore { get; set; } public bool IsNetFramework { get; set; } } @@ -58,62 +55,6 @@ public class IntegrationInfo "AssemblyResolve" }; - // User-friendly display names for integrations - private static readonly Dictionary IntegrationDisplayNames = new() - { - ["AdoNet"] = "ADO.NET", - ["Aerospike"] = "Aerospike", - ["AspNet"] = "ASP.NET", - ["AspNetCore"] = "ASP.NET Core", - ["AspNetMvc"] = "ASP.NET MVC", - ["AspNetWebApi2"] = "ASP.NET Web API", - ["AwsDynamoDb"] = "AWS DynamoDB", - ["AwsKinesis"] = "AWS Kinesis", - ["AwsLambda"] = "AWS Lambda", - ["AwsSns"] = "AWS SNS", - ["AwsSqs"] = "AWS SQS", - ["AzureFunctions"] = "Azure Functions", - ["CosmosDb"] = "Azure Cosmos DB", - ["Couchbase"] = "Couchbase", - ["DatadogTraceManual"] = "Manual Instrumentation", - ["DiagnosticSource"] = "DiagnosticSource (Activity)", - ["Elasticsearch"] = "Elasticsearch", - ["GraphQL"] = "GraphQL .NET", - ["Grpc"] = "gRPC", - ["HotChocolate"] = "HotChocolate (GraphQL)", - ["HttpMessageHandler"] = "HttpClient", - ["ILogger"] = "ILogger", - ["Kafka"] = "Kafka (Confluent)", - ["MassTransit"] = "MassTransit", - ["MongoDB"] = "MongoDB", - ["Msmq"] = "MSMQ", - ["MySql"] = "MySQL (MySql.Data)", - ["MySqlData"] = "MySQL (MySqlConnector)", - ["NLog"] = "NLog", - ["Npgsql"] = "PostgreSQL (Npgsql)", - ["NServiceBus"] = "NServiceBus", - ["NUnit"] = "NUnit", - ["Oracle"] = "Oracle", - ["Owin"] = "OWIN", - ["Process"] = "Process (Command Injection)", - ["RabbitMQ"] = "RabbitMQ", - ["Registry"] = "Windows Registry (LFI)", - ["Remoting"] = ".NET Remoting", - ["Serilog"] = "Serilog", - ["ServiceStackRedis"] = "Redis (ServiceStack)", - ["StackExchangeRedis"] = "Redis (StackExchange)", - ["Sqlite"] = "SQLite", - ["SqlClient"] = "SQL Server", - ["Ssrf"] = "SSRF Protection", - ["StackTraceLeak"] = "StackTrace Leak Protection", - ["TestPlatformAssemblyResolver"] = "Test Platform Assembly Resolver", - ["Wcf"] = "WCF", - ["WebRequest"] = "WebClient / WebRequest", - ["Xss"] = "XSS Protection", - ["XUnit"] = "xUnit", - ["MsTestV2"] = "MSTest" - }; - // not 100% sure on these TBH would have to check private static readonly HashSet NetCoreOnlyIntegrations = new() { @@ -133,26 +74,6 @@ public class IntegrationInfo "Wcf" }; - // runtime stuff that _usually_ don't come from NuGet packages, but they could - private static readonly HashSet BuiltInAssemblies = new() - { - "System.Web", - "System.Web.Mvc", - "System.Web.Http", - "System.Messaging", - "System.Runtime.Remoting", - "System.ServiceModel", - "System.Diagnostics.Process", - "System.Data", - "System.Data.Common", - "System.Data.SqlClient", - "System.Net.Http", - "System.Net.Requests", - "Microsoft.Owin", - "Owin", - "netstandard" - }; - /// /// Generates CSV files containing supported integrations information. /// @@ -181,19 +102,19 @@ private static void GenerateOutputFiles(List integrations, Abso { // Generate .NET Core/.NET CSV GenerateCsv( - integrations.Where(i => i.IsNetCore).OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + integrations.Where(i => i.IsNetCore).OrderBy(i => i.IntegrationName).ThenBy(i => i.PackageName), outputDirectory / "supported_integrations_netcore.csv", ".NET Core / .NET"); // Generate .NET Framework CSV GenerateCsv( - integrations.Where(i => i.IsNetFramework).OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + integrations.Where(i => i.IsNetFramework).OrderBy(i => i.IntegrationName).ThenBy(i => i.PackageName), outputDirectory / "supported_integrations_netfx.csv", ".NET Framework"); // Generate combined CSV GenerateCsv( - integrations.OrderBy(i => i.DisplayName).ThenBy(i => i.NuGetPackage), + integrations.OrderBy(i => i.IntegrationName).ThenBy(i => i.PackageName), outputDirectory / "supported_integrations.csv", "All Frameworks"); } @@ -207,19 +128,17 @@ private static List ProcessIntegrations(List if (IsHelperIntegration(version.IntegrationName)) continue; - var displayName = GetDisplayName(version.IntegrationName); - if (version.Packages != null && version.Packages.Any()) { foreach (var package in version.Packages) { - var info = CreateIntegrationInfo(version, package, displayName); + var info = CreateIntegrationInfo(version, package); integrations.Add(info); } } else { - var info = CreateIntegrationInfoFromAssembly(version, displayName); + var info = CreateIntegrationInfoFromAssembly(version); integrations.Add(info); } } @@ -227,35 +146,34 @@ private static List ProcessIntegrations(List return integrations; } - private static IntegrationInfo CreateIntegrationInfo(SupportedVersion version, Package package, string displayName) + private static IntegrationInfo CreateIntegrationInfo(SupportedVersion version, Package package) { + // For packages with NuGet packages, use minVersionTestedInclusive as min + // and the floating major version of maxVersionTestedInclusive as max + var minVersion = package.MinVersionTestedInclusive ?? package.MinVersionSupportedInclusive ?? version.MinAssemblyVersionInclusive; + var maxVersion = package.MaxVersionTestedInclusive ?? package.MaxVersionSupportedInclusive ?? version.MaxAssemblyVersionInclusive; + return new IntegrationInfo { IntegrationName = version.IntegrationName, - DisplayName = displayName, - NuGetPackage = package.Name, - AssemblyName = version.AssemblyName, - MinVersion = GetVersionString(package.MinVersionSupportedInclusive ?? version.MinAssemblyVersionInclusive), - MaxVersion = GetVersionString(package.MaxVersionSupportedInclusive ?? version.MaxAssemblyVersionInclusive), - IsBuiltIn = IsBuiltInPackage(package.Name), + PackageName = package.Name, + MinVersion = minVersion, + MaxVersion = GetFloatingMajorVersion(maxVersion), // Use floating version for max IsNetCore = !NetFrameworkOnlyIntegrations.Contains(version.IntegrationName), IsNetFramework = !NetCoreOnlyIntegrations.Contains(version.IntegrationName) }; } - private static IntegrationInfo CreateIntegrationInfoFromAssembly(SupportedVersion version, string displayName) + private static IntegrationInfo CreateIntegrationInfoFromAssembly(SupportedVersion version) { - var packageName = GetPackageNameForAssembly(version.IntegrationName, version.AssemblyName); - + // For assemblies without NuGet packages, use minAssemblyVersionInclusive as min + // and the floating version of maxAssemblyVersionInclusive as max return new IntegrationInfo { IntegrationName = version.IntegrationName, - DisplayName = displayName, - NuGetPackage = packageName, - AssemblyName = version.AssemblyName, - MinVersion = GetVersionString(version.MinAssemblyVersionInclusive), - MaxVersion = GetVersionString(version.MaxAssemblyVersionInclusive), - IsBuiltIn = IsBuiltInPackage(packageName), + PackageName = version.AssemblyName, // Use assembly name as package name + MinVersion = version.MinAssemblyVersionInclusive, + MaxVersion = GetFloatingMajorVersion(version.MaxAssemblyVersionInclusive), // Use floating version for max IsNetCore = !NetFrameworkOnlyIntegrations.Contains(version.IntegrationName), IsNetFramework = !NetCoreOnlyIntegrations.Contains(version.IntegrationName) }; @@ -266,40 +184,17 @@ private static bool IsHelperIntegration(string integrationName) return HelperIntegrations.Contains(integrationName); } - private static bool IsBuiltInPackage(string packageName) - { - return BuiltInAssemblies.Contains(packageName) || - packageName.StartsWith("System.") || - packageName == "netstandard"; - } - - private static string GetDisplayName(string integrationName) - { - return IntegrationDisplayNames.TryGetValue(integrationName, out var displayName) - ? displayName - : integrationName; - } - - private static string GetPackageNameForAssembly(string integrationName, string assemblyName) - { - // For assemblies without NuGet packages, return the assembly name - // The built-in status will be determined by IsBuiltInPackage - return assemblyName; - } - - private static string GetVersionString(string version) + private static string GetFloatingMajorVersion(string version) { if (string.IsNullOrEmpty(version)) return "N/A"; - // Handle versions like "4.65535.65535" by showing just major version - if (version.Contains("65535")) + // Parse the version string to get the major version + var parts = version.Split('.'); + if (parts.Length > 0) { - var parts = version.Split('.'); - if (parts.Length > 0) - { - return parts[0] + ".x"; - } + // Return major version with .x suffix + return parts[0] + ".x"; } return version; @@ -308,11 +203,12 @@ private static string GetVersionString(string version) private static void GenerateCsv(IEnumerable integrations, AbsolutePath outputPath, string framework) { var sb = new StringBuilder(); - sb.AppendLine("Integration Name,NuGet Package,Min Version,Max Version"); + // Simple 4-column CSV format + sb.AppendLine("integration,package,min_version,max_version"); foreach (var integration in integrations) { - sb.AppendLine($"\"{integration.IntegrationName}\",\"{integration.NuGetPackage}\",\"{integration.MinVersion}\",\"{integration.MaxVersion}\""); + sb.AppendLine($"{integration.IntegrationName},{integration.PackageName},{integration.MinVersion},{integration.MaxVersion}"); } EnsureExistingDirectory(outputPath.Parent); diff --git a/tracer/build/integrations/supported_integrations.csv b/tracer/build/integrations/supported_integrations.csv index 8fb93175417f..17471bd44ea9 100644 --- a/tracer/build/integrations/supported_integrations.csv +++ b/tracer/build/integrations/supported_integrations.csv @@ -1,97 +1,97 @@ -Integration Name,NuGet Package,Min Version,Max Version -"Remoting","System.Runtime.Remoting","4.0.0","4.x" -"AdoNet","netstandard","2.0.0","2.x" -"AdoNet","System.Data.Common","4.0.0","4.3.0" -"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" -"Aerospike","Aerospike.Client","4.0.0","8.1.0" -"AspNet","System.Web","4.0.0","4.x" -"AspNetCore","Microsoft.AspNetCore.Authentication.Abstractions","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Http","2.0.0","9.x" -"AspNetCore","Microsoft.AspNetCore.Http.Abstractions","2.2.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Identity","2.0.0","2.3.1" -"AspNetCore","Microsoft.AspNetCore.Mvc.Core","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Server.IIS","2.2.0","2.2.6" -"AspNetCore","Microsoft.AspNetCore.Server.Kestrel.Core","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Session","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.StaticFiles","2.0.0","2.3.0" -"AspNetCore","Microsoft.Extensions.Identity.Core","2.0.0","9.0.8" -"AspNetMvc","Microsoft.AspNet.Mvc","4.0.20505","5.3.0" -"AspNetWebApi2","System.Web.Http","5.1.0","5.x" -"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" -"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" -"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" -"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" -"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" -"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" -"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" -"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" -"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" -"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" -"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" -"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" -"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" -"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" -"DotnetTest","coverlet.core","3.0.0","6.x" -"DotnetTest","dotnet","2.0.0","9.x" -"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" -"DotnetTest","vstest.console","15.0.0","15.x" -"DotnetTest","vstest.console.arm64","15.0.0","15.x" -"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" -"GraphQL","GraphQL","2.3.0","8.5.0" -"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" -"Grpc","Google.Protobuf","3.0.0","3.31.1" -"Grpc","Grpc","2.23.0","2.46.6" -"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" -"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" -"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" -"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" -"HotChocolate","HotChocolate.AspNetCore","11.0.0","15.1.8" -"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" -"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" -"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" -"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" -"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" -"Kafka","Confluent.Kafka","1.4.0","2.11.0" -"Log4Net","log4net","1.2.10","3.1.0" -"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" -"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" -"Msmq","System.Messaging","4.0.0","4.x" -"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" -"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MySql","MySql.Data","6.7.4","9.4.0" -"MySql","MySqlConnector","0.61.0","2.4.0" -"NLog","NLog","1.0.0.505","6.0.2" -"NUnit","NUnit","3.0.0","4.3.2" -"Oracle","Oracle.DataAccess","4.122.0","4.x" -"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" -"Npgsql","Npgsql","4.0.0","9.0.3" -"Process","System","1.0.0","9.x" -"Process","System.Diagnostics.Process","1.0.0","9.x" -"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" -"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" -"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" -"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" -"Selenium","Selenium.WebDriver","3.0.0","4.34.0" -"Serilog","Serilog","1.0.1","4.3.0" -"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" -"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" -"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" -"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" -"Ssrf","RestSharp","104.0.0","112.x" -"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" -"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" -"Wcf","System.ServiceModel.Http","4.0.0","4.10.3" -"WebRequest","System.Net.Requests","4.0.0","4.3.0" -"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" -"XUnit","xunit","2.2.0","2.9.3" -"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" -"XUnit","xunit.v3","1.0.0","3.0.0" +integration,package,min_version,max_version +AdoNet,netstandard,2.0.0,2.x +AdoNet,System.Data.Common,4.0.0,4.x +AdoNet,System.Data.SqlClient,4.1.0,4.x +Aerospike,Aerospike.Client,4.0.3,8.x +AspNet,System.Web,4.0.0,4.x +AspNetCore,Microsoft.AspNetCore.Authentication.Abstractions,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Http,2.0.0,9.x +AspNetCore,Microsoft.AspNetCore.Http.Abstractions,2.2.0,2.x +AspNetCore,Microsoft.AspNetCore.Identity,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Mvc.Core,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Server.IIS,2.2.0,2.x +AspNetCore,Microsoft.AspNetCore.Server.Kestrel.Core,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Session,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.StaticFiles,2.0.0,2.x +AspNetCore,Microsoft.Extensions.Identity.Core,2.0.0,9.x +AspNetMvc,Microsoft.AspNet.Mvc,4.0.20505,5.x +AspNetWebApi2,System.Web.Http,5.1.0,5.x +AwsDynamoDb,AWSSDK.DynamoDBv2,3.1.5.3,4.x +AwsEventBridge,AWSSDK.EventBridge,3.3.102.16,4.x +AwsKinesis,AWSSDK.Kinesis,3.1.3.5,4.x +AwsLambda,Amazon.Lambda.RuntimeSupport,1.13.1,1.x +AwsS3,AWSSDK.S3,3.3.113.2,4.x +AwsSdk,AWSSDK.Core,3.1.11,4.x +AwsSns,AWSSDK.SimpleNotificationService,3.1.2.1,4.x +AwsSqs,AWSSDK.SQS,3.1.0.13,4.x +AwsStepFunctions,AWSSDK.StepFunctions,3.3.104.87,4.x +AzureFunctions,Microsoft.Azure.Functions.Worker.Core,1.4.0,2.x +AzureFunctions,Microsoft.Azure.WebJobs,3.0.0,3.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.Grpc,4.0.0,4.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.WebHost,3.0.0,4.x +AzureServiceBus,Azure.Messaging.ServiceBus,7.4.0,7.x +CosmosDb,Microsoft.Azure.Cosmos,3.6.0,3.x +Couchbase,CouchbaseNetClient,2.4.8,3.x +DatadogTraceManual,Datadog.Trace.Manual,3.0.0,3.x +DatadogTraceManual,Datadog.Trace.OpenTracing,3.0.0,3.x +DotnetTest,coverlet.core,3.0.0,6.x +DotnetTest,dotnet,2.0.0,9.x +DotnetTest,Microsoft.VisualStudio.TraceDataCollector,15.0.0,15.x +DotnetTest,vstest.console,15.0.0,15.x +DotnetTest,vstest.console.arm64,15.0.0,15.x +ElasticsearchNet,Elasticsearch.Net,5.3.1,7.x +GraphQL,GraphQL,4.1.0,8.x +GraphQL,GraphQL.SystemReactive,4.0.0,4.x +Grpc,Google.Protobuf,3.12.4,3.x +Grpc,Grpc,2.29.0,2.x +Grpc,Grpc.AspNetCore,2.29.0,2.x +Grpc,Grpc.AspNetCore,2.29.0,2.x +HashAlgorithm,System.Security.Cryptography,7.0.0,9.x +HashAlgorithm,System.Security.Cryptography.Primitives,1.0.0,6.x +HotChocolate,HotChocolate.AspNetCore,11.3.8,15.x +HttpMessageHandler,System.Net.Http,4.0.0,4.x +HttpMessageHandler,System.Net.Http.WinHttpHandler,4.0.0,9.x +HttpMessageHandler,Yarp.ReverseProxy,1.0.1,2.x +IbmMq,IBMMQDotnetClient,9.1.4,9.x +ILogger,Microsoft.Extensions.Logging,2.0.0,9.x +ILogger,Microsoft.Extensions.Logging.Abstractions,2.0.0,9.x +ILogger,Microsoft.Extensions.Telemetry,8.10.0,9.x +Kafka,Confluent.Kafka,1.4.4,2.x +Log4Net,log4net,1.2.11,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver.Core,2.1.0,2.x +Msmq,System.Messaging,4.0.0,4.x +MsTestV2,Microsoft.TestPlatform.CrossPlatEngine,14.0.0,15.x +MsTestV2,Microsoft.VisualStudio.TestPlatform,14.0.0,14.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MySql,MySql.Data,6.7.9,9.x +MySql,MySqlConnector,0.61.0,2.x +NLog,NLog,1.0.0.505,6.x +Npgsql,Npgsql,4.1.14,9.x +NUnit,NUnit,3.6.1,4.x +Oracle,Oracle.DataAccess,4.122.0,4.x +Oracle,Oracle.ManagedDataAccess,12.1.21,23.x +Process,System,1.0.0,9.x +Process,System.Diagnostics.Process,1.0.0,9.x +RabbitMQ,RabbitMQ.Client,3.6.9,7.x +Remoting,System.Runtime.Remoting,4.0.0,4.x +Selenium,Selenium.WebDriver,4.0.1,4.x +Serilog,Serilog,1.4.214,4.x +ServiceStackRedis,ServiceStack.Redis,4.5.14,8.x +SqlClient,Microsoft.Data.SqlClient,1.1.4,6.x +SqlClient,Microsoft.Data.Sqlite,2.3.0,9.x +SqlClient,System.Data.SqlClient,4.1.0,4.x +SqlClient,System.Data.SQLite,1.0.66.1,1.x +Ssrf,RestSharp,104.0.0,112.x +StackExchangeRedis,StackExchange.Redis,1.0.488,2.x +StackExchangeRedis,StackExchange.Redis.StrongName,1.0.312,1.x +StackTraceLeak,Microsoft.AspNetCore.Diagnostics,2.0.0,2.x +TestPlatformAssemblyResolver,Microsoft.TestPlatform.PlatformAbstractions,15.0.0,15.x +Wcf,System.ServiceModel.Http,4.0.0,4.x +WebRequest,System.Net.Requests,4.0.0,4.x +Xss,Microsoft.AspNetCore.Html.Abstractions,1.0.0,2.x +XUnit,xunit,2.2.0,2.x +XUnit,xunit.extensibility.execution,2.2.0,2.x +XUnit,xunit.v3,2.0.3,3.x diff --git a/tracer/build/integrations/supported_integrations_netcore.csv b/tracer/build/integrations/supported_integrations_netcore.csv index 9f31ffdada9f..1ef4f6937266 100644 --- a/tracer/build/integrations/supported_integrations_netcore.csv +++ b/tracer/build/integrations/supported_integrations_netcore.csv @@ -1,91 +1,91 @@ -Integration Name,NuGet Package,Min Version,Max Version -"AdoNet","netstandard","2.0.0","2.x" -"AdoNet","System.Data.Common","4.0.0","4.3.0" -"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" -"Aerospike","Aerospike.Client","4.0.0","8.1.0" -"AspNetCore","Microsoft.AspNetCore.Authentication.Abstractions","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Http","2.0.0","9.x" -"AspNetCore","Microsoft.AspNetCore.Http.Abstractions","2.2.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Identity","2.0.0","2.3.1" -"AspNetCore","Microsoft.AspNetCore.Mvc.Core","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Server.IIS","2.2.0","2.2.6" -"AspNetCore","Microsoft.AspNetCore.Server.Kestrel.Core","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.Session","2.0.0","2.3.0" -"AspNetCore","Microsoft.AspNetCore.StaticFiles","2.0.0","2.3.0" -"AspNetCore","Microsoft.Extensions.Identity.Core","2.0.0","9.0.8" -"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" -"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" -"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" -"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" -"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" -"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" -"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" -"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" -"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" -"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" -"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" -"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" -"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" -"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" -"DotnetTest","coverlet.core","3.0.0","6.x" -"DotnetTest","dotnet","2.0.0","9.x" -"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" -"DotnetTest","vstest.console","15.0.0","15.x" -"DotnetTest","vstest.console.arm64","15.0.0","15.x" -"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" -"GraphQL","GraphQL","2.3.0","8.5.0" -"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" -"Grpc","Google.Protobuf","3.0.0","3.31.1" -"Grpc","Grpc","2.23.0","2.46.6" -"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" -"Grpc","Grpc.AspNetCore","2.23.0","2.71.0" -"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" -"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" -"HotChocolate","HotChocolate.AspNetCore","11.0.0","15.1.8" -"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" -"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" -"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" -"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" -"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" -"Kafka","Confluent.Kafka","1.4.0","2.11.0" -"Log4Net","log4net","1.2.10","3.1.0" -"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" -"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" -"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" -"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MySql","MySql.Data","6.7.4","9.4.0" -"MySql","MySqlConnector","0.61.0","2.4.0" -"NLog","NLog","1.0.0.505","6.0.2" -"NUnit","NUnit","3.0.0","4.3.2" -"Oracle","Oracle.DataAccess","4.122.0","4.x" -"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" -"Npgsql","Npgsql","4.0.0","9.0.3" -"Process","System","1.0.0","9.x" -"Process","System.Diagnostics.Process","1.0.0","9.x" -"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" -"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" -"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" -"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" -"Selenium","Selenium.WebDriver","3.0.0","4.34.0" -"Serilog","Serilog","1.0.1","4.3.0" -"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" -"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" -"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" -"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" -"Ssrf","RestSharp","104.0.0","112.x" -"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" -"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" -"WebRequest","System.Net.Requests","4.0.0","4.3.0" -"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" -"XUnit","xunit","2.2.0","2.9.3" -"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" -"XUnit","xunit.v3","1.0.0","3.0.0" +integration,package,min_version,max_version +AdoNet,netstandard,2.0.0,2.x +AdoNet,System.Data.Common,4.0.0,4.x +AdoNet,System.Data.SqlClient,4.1.0,4.x +Aerospike,Aerospike.Client,4.0.3,8.x +AspNetCore,Microsoft.AspNetCore.Authentication.Abstractions,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Http,2.0.0,9.x +AspNetCore,Microsoft.AspNetCore.Http.Abstractions,2.2.0,2.x +AspNetCore,Microsoft.AspNetCore.Identity,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Mvc.Core,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Server.IIS,2.2.0,2.x +AspNetCore,Microsoft.AspNetCore.Server.Kestrel.Core,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.Session,2.0.0,2.x +AspNetCore,Microsoft.AspNetCore.StaticFiles,2.0.0,2.x +AspNetCore,Microsoft.Extensions.Identity.Core,2.0.0,9.x +AwsDynamoDb,AWSSDK.DynamoDBv2,3.1.5.3,4.x +AwsEventBridge,AWSSDK.EventBridge,3.3.102.16,4.x +AwsKinesis,AWSSDK.Kinesis,3.1.3.5,4.x +AwsLambda,Amazon.Lambda.RuntimeSupport,1.13.1,1.x +AwsS3,AWSSDK.S3,3.3.113.2,4.x +AwsSdk,AWSSDK.Core,3.1.11,4.x +AwsSns,AWSSDK.SimpleNotificationService,3.1.2.1,4.x +AwsSqs,AWSSDK.SQS,3.1.0.13,4.x +AwsStepFunctions,AWSSDK.StepFunctions,3.3.104.87,4.x +AzureFunctions,Microsoft.Azure.Functions.Worker.Core,1.4.0,2.x +AzureFunctions,Microsoft.Azure.WebJobs,3.0.0,3.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.Grpc,4.0.0,4.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.WebHost,3.0.0,4.x +AzureServiceBus,Azure.Messaging.ServiceBus,7.4.0,7.x +CosmosDb,Microsoft.Azure.Cosmos,3.6.0,3.x +Couchbase,CouchbaseNetClient,2.4.8,3.x +DatadogTraceManual,Datadog.Trace.Manual,3.0.0,3.x +DatadogTraceManual,Datadog.Trace.OpenTracing,3.0.0,3.x +DotnetTest,coverlet.core,3.0.0,6.x +DotnetTest,dotnet,2.0.0,9.x +DotnetTest,Microsoft.VisualStudio.TraceDataCollector,15.0.0,15.x +DotnetTest,vstest.console,15.0.0,15.x +DotnetTest,vstest.console.arm64,15.0.0,15.x +ElasticsearchNet,Elasticsearch.Net,5.3.1,7.x +GraphQL,GraphQL,4.1.0,8.x +GraphQL,GraphQL.SystemReactive,4.0.0,4.x +Grpc,Google.Protobuf,3.12.4,3.x +Grpc,Grpc,2.29.0,2.x +Grpc,Grpc.AspNetCore,2.29.0,2.x +Grpc,Grpc.AspNetCore,2.29.0,2.x +HashAlgorithm,System.Security.Cryptography,7.0.0,9.x +HashAlgorithm,System.Security.Cryptography.Primitives,1.0.0,6.x +HotChocolate,HotChocolate.AspNetCore,11.3.8,15.x +HttpMessageHandler,System.Net.Http,4.0.0,4.x +HttpMessageHandler,System.Net.Http.WinHttpHandler,4.0.0,9.x +HttpMessageHandler,Yarp.ReverseProxy,1.0.1,2.x +IbmMq,IBMMQDotnetClient,9.1.4,9.x +ILogger,Microsoft.Extensions.Logging,2.0.0,9.x +ILogger,Microsoft.Extensions.Logging.Abstractions,2.0.0,9.x +ILogger,Microsoft.Extensions.Telemetry,8.10.0,9.x +Kafka,Confluent.Kafka,1.4.4,2.x +Log4Net,log4net,1.2.11,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver.Core,2.1.0,2.x +MsTestV2,Microsoft.TestPlatform.CrossPlatEngine,14.0.0,15.x +MsTestV2,Microsoft.VisualStudio.TestPlatform,14.0.0,14.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MySql,MySql.Data,6.7.9,9.x +MySql,MySqlConnector,0.61.0,2.x +NLog,NLog,1.0.0.505,6.x +Npgsql,Npgsql,4.1.14,9.x +NUnit,NUnit,3.6.1,4.x +Oracle,Oracle.DataAccess,4.122.0,4.x +Oracle,Oracle.ManagedDataAccess,12.1.21,23.x +Process,System,1.0.0,9.x +Process,System.Diagnostics.Process,1.0.0,9.x +RabbitMQ,RabbitMQ.Client,3.6.9,7.x +Selenium,Selenium.WebDriver,4.0.1,4.x +Serilog,Serilog,1.4.214,4.x +ServiceStackRedis,ServiceStack.Redis,4.5.14,8.x +SqlClient,Microsoft.Data.SqlClient,1.1.4,6.x +SqlClient,Microsoft.Data.Sqlite,2.3.0,9.x +SqlClient,System.Data.SqlClient,4.1.0,4.x +SqlClient,System.Data.SQLite,1.0.66.1,1.x +Ssrf,RestSharp,104.0.0,112.x +StackExchangeRedis,StackExchange.Redis,1.0.488,2.x +StackExchangeRedis,StackExchange.Redis.StrongName,1.0.312,1.x +StackTraceLeak,Microsoft.AspNetCore.Diagnostics,2.0.0,2.x +TestPlatformAssemblyResolver,Microsoft.TestPlatform.PlatformAbstractions,15.0.0,15.x +WebRequest,System.Net.Requests,4.0.0,4.x +Xss,Microsoft.AspNetCore.Html.Abstractions,1.0.0,2.x +XUnit,xunit,2.2.0,2.x +XUnit,xunit.extensibility.execution,2.2.0,2.x +XUnit,xunit.v3,2.0.3,3.x diff --git a/tracer/build/integrations/supported_integrations_netfx.csv b/tracer/build/integrations/supported_integrations_netfx.csv index 15082a210e21..752874f60dc4 100644 --- a/tracer/build/integrations/supported_integrations_netfx.csv +++ b/tracer/build/integrations/supported_integrations_netfx.csv @@ -1,82 +1,82 @@ -Integration Name,NuGet Package,Min Version,Max Version -"Remoting","System.Runtime.Remoting","4.0.0","4.x" -"AdoNet","netstandard","2.0.0","2.x" -"AdoNet","System.Data.Common","4.0.0","4.3.0" -"AdoNet","System.Data.SqlClient","4.1.0","4.9.0" -"Aerospike","Aerospike.Client","4.0.0","8.1.0" -"AspNet","System.Web","4.0.0","4.x" -"AspNetMvc","Microsoft.AspNet.Mvc","4.0.20505","5.3.0" -"AspNetWebApi2","System.Web.Http","5.1.0","5.x" -"AwsDynamoDb","AWSSDK.DynamoDBv2","3.1.0","4.0.3.3" -"AwsKinesis","AWSSDK.Kinesis","3.1.0","4.0.2.15" -"AwsLambda","Amazon.Lambda.RuntimeSupport","1.4.0","1.13.1" -"AwsSns","AWSSDK.SimpleNotificationService","3.1.0","4.0.0.17" -"AwsSqs","AWSSDK.SQS","3.1.0","4.0.0.18" -"AwsEventBridge","AWSSDK.EventBridge","3.3.100","4.0.3.2" -"AwsS3","AWSSDK.S3","3.3.0","4.0.6.3" -"AwsSdk","AWSSDK.Core","3.1.0","4.0.0.20" -"AwsStepFunctions","AWSSDK.StepFunctions","3.3.0","4.0.0.18" -"CosmosDb","Microsoft.Azure.Cosmos","3.6.0","3.52.1" -"AzureFunctions","Microsoft.Azure.Functions.Worker.Core","1.4.0","2.0.0" -"AzureFunctions","Microsoft.Azure.WebJobs","3.0.0","3.0.41" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.Grpc","4.0.0","4.x" -"AzureFunctions","Microsoft.Azure.WebJobs.Script.WebHost","3.0.0","4.x" -"AzureServiceBus","Azure.Messaging.ServiceBus","7.14.0","7.20.1" -"Couchbase","CouchbaseNetClient","2.2.8","3.7.2" -"DotnetTest","coverlet.core","3.0.0","6.x" -"DotnetTest","dotnet","2.0.0","9.x" -"DotnetTest","Microsoft.VisualStudio.TraceDataCollector","15.0.0","15.x" -"DotnetTest","vstest.console","15.0.0","15.x" -"DotnetTest","vstest.console.arm64","15.0.0","15.x" -"ElasticsearchNet","Elasticsearch.Net","5.0.0","7.17.5" -"GraphQL","GraphQL","2.3.0","8.5.0" -"GraphQL","GraphQL.SystemReactive","4.0.0","4.8.0" -"HashAlgorithm","System.Security.Cryptography","7.0.0","9.x" -"HashAlgorithm","System.Security.Cryptography.Primitives","1.0.0","6.x" -"HttpMessageHandler","System.Net.Http","4.0.0","4.3.4" -"HttpMessageHandler","System.Net.Http.WinHttpHandler","4.0.0","9.0.8" -"HttpMessageHandler","Yarp.ReverseProxy","1.1.0","2.3.0" -"IbmMq","IBMMQDotnetClient","9.1.4","9.4.3" -"ILogger","Microsoft.Extensions.Logging","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Logging.Abstractions","2.0.0","9.0.8" -"ILogger","Microsoft.Extensions.Telemetry","8.0.0","9.7.0" -"Kafka","Confluent.Kafka","1.4.0","2.11.0" -"Log4Net","log4net","1.2.10","3.1.0" -"DatadogTraceManual","Datadog.Trace.Manual","3.0.0","3.x" -"DatadogTraceManual","Datadog.Trace.OpenTracing","3.0.0","3.x" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver","2.1.0","3.4.2" -"MongoDb","MongoDB.Driver.Core","2.1.0","2.30.0" -"Msmq","System.Messaging","4.0.0","4.x" -"MsTestV2","Microsoft.TestPlatform.CrossPlatEngine","14.0.0","15.x" -"MsTestV2","Microsoft.VisualStudio.TestPlatform","14.0.0","14.0.0.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MsTestV2","MSTest.TestAdapter","1.1.11","3.10.1" -"MySql","MySql.Data","6.7.4","9.4.0" -"MySql","MySqlConnector","0.61.0","2.4.0" -"NLog","NLog","1.0.0.505","6.0.2" -"NUnit","NUnit","3.0.0","4.3.2" -"Oracle","Oracle.DataAccess","4.122.0","4.x" -"Oracle","Oracle.ManagedDataAccess","12.1.21","23.9.1" -"Npgsql","Npgsql","4.0.0","9.0.3" -"Process","System","1.0.0","9.x" -"Process","System.Diagnostics.Process","1.0.0","9.x" -"RabbitMQ","RabbitMQ.Client","3.6.9","7.1.2" -"ServiceStackRedis","ServiceStack.Redis","4.0.2","8.8.0" -"StackExchangeRedis","StackExchange.Redis","1.0.187","2.8.58" -"StackExchangeRedis","StackExchange.Redis.StrongName","1.0.312","1.2.6" -"Selenium","Selenium.WebDriver","3.0.0","4.34.0" -"Serilog","Serilog","1.0.1","4.3.0" -"SqlClient","Microsoft.Data.SqlClient","1.0.19239.1","6.1.0" -"SqlClient","Microsoft.Data.Sqlite","2.0.0","9.0.8" -"SqlClient","System.Data.SqlClient","4.1.0","4.9.0" -"SqlClient","System.Data.SQLite","1.0.66.1","1.0.119" -"Ssrf","RestSharp","104.0.0","112.x" -"StackTraceLeak","Microsoft.AspNetCore.Diagnostics","2.0.0","2.3.0" -"TestPlatformAssemblyResolver","Microsoft.TestPlatform.PlatformAbstractions","15.0.0","15.x" -"Wcf","System.ServiceModel.Http","4.0.0","4.10.3" -"WebRequest","System.Net.Requests","4.0.0","4.3.0" -"Xss","Microsoft.AspNetCore.Html.Abstractions","1.0.0","2.3.0" -"XUnit","xunit","2.2.0","2.9.3" -"XUnit","xunit.extensibility.execution","2.2.0","2.9.3" -"XUnit","xunit.v3","1.0.0","3.0.0" +integration,package,min_version,max_version +AdoNet,netstandard,2.0.0,2.x +AdoNet,System.Data.Common,4.0.0,4.x +AdoNet,System.Data.SqlClient,4.1.0,4.x +Aerospike,Aerospike.Client,4.0.3,8.x +AspNet,System.Web,4.0.0,4.x +AspNetMvc,Microsoft.AspNet.Mvc,4.0.20505,5.x +AspNetWebApi2,System.Web.Http,5.1.0,5.x +AwsDynamoDb,AWSSDK.DynamoDBv2,3.1.5.3,4.x +AwsEventBridge,AWSSDK.EventBridge,3.3.102.16,4.x +AwsKinesis,AWSSDK.Kinesis,3.1.3.5,4.x +AwsLambda,Amazon.Lambda.RuntimeSupport,1.13.1,1.x +AwsS3,AWSSDK.S3,3.3.113.2,4.x +AwsSdk,AWSSDK.Core,3.1.11,4.x +AwsSns,AWSSDK.SimpleNotificationService,3.1.2.1,4.x +AwsSqs,AWSSDK.SQS,3.1.0.13,4.x +AwsStepFunctions,AWSSDK.StepFunctions,3.3.104.87,4.x +AzureFunctions,Microsoft.Azure.Functions.Worker.Core,1.4.0,2.x +AzureFunctions,Microsoft.Azure.WebJobs,3.0.0,3.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.Grpc,4.0.0,4.x +AzureFunctions,Microsoft.Azure.WebJobs.Script.WebHost,3.0.0,4.x +AzureServiceBus,Azure.Messaging.ServiceBus,7.4.0,7.x +CosmosDb,Microsoft.Azure.Cosmos,3.6.0,3.x +Couchbase,CouchbaseNetClient,2.4.8,3.x +DatadogTraceManual,Datadog.Trace.Manual,3.0.0,3.x +DatadogTraceManual,Datadog.Trace.OpenTracing,3.0.0,3.x +DotnetTest,coverlet.core,3.0.0,6.x +DotnetTest,dotnet,2.0.0,9.x +DotnetTest,Microsoft.VisualStudio.TraceDataCollector,15.0.0,15.x +DotnetTest,vstest.console,15.0.0,15.x +DotnetTest,vstest.console.arm64,15.0.0,15.x +ElasticsearchNet,Elasticsearch.Net,5.3.1,7.x +GraphQL,GraphQL,4.1.0,8.x +GraphQL,GraphQL.SystemReactive,4.0.0,4.x +HashAlgorithm,System.Security.Cryptography,7.0.0,9.x +HashAlgorithm,System.Security.Cryptography.Primitives,1.0.0,6.x +HttpMessageHandler,System.Net.Http,4.0.0,4.x +HttpMessageHandler,System.Net.Http.WinHttpHandler,4.0.0,9.x +HttpMessageHandler,Yarp.ReverseProxy,1.0.1,2.x +IbmMq,IBMMQDotnetClient,9.1.4,9.x +ILogger,Microsoft.Extensions.Logging,2.0.0,9.x +ILogger,Microsoft.Extensions.Logging.Abstractions,2.0.0,9.x +ILogger,Microsoft.Extensions.Telemetry,8.10.0,9.x +Kafka,Confluent.Kafka,1.4.4,2.x +Log4Net,log4net,1.2.11,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver,2.0.2,3.x +MongoDb,MongoDB.Driver.Core,2.1.0,2.x +Msmq,System.Messaging,4.0.0,4.x +MsTestV2,Microsoft.TestPlatform.CrossPlatEngine,14.0.0,15.x +MsTestV2,Microsoft.VisualStudio.TestPlatform,14.0.0,14.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MsTestV2,MSTest.TestAdapter,1.1.11,3.x +MySql,MySql.Data,6.7.9,9.x +MySql,MySqlConnector,0.61.0,2.x +NLog,NLog,1.0.0.505,6.x +Npgsql,Npgsql,4.1.14,9.x +NUnit,NUnit,3.6.1,4.x +Oracle,Oracle.DataAccess,4.122.0,4.x +Oracle,Oracle.ManagedDataAccess,12.1.21,23.x +Process,System,1.0.0,9.x +Process,System.Diagnostics.Process,1.0.0,9.x +RabbitMQ,RabbitMQ.Client,3.6.9,7.x +Remoting,System.Runtime.Remoting,4.0.0,4.x +Selenium,Selenium.WebDriver,4.0.1,4.x +Serilog,Serilog,1.4.214,4.x +ServiceStackRedis,ServiceStack.Redis,4.5.14,8.x +SqlClient,Microsoft.Data.SqlClient,1.1.4,6.x +SqlClient,Microsoft.Data.Sqlite,2.3.0,9.x +SqlClient,System.Data.SqlClient,4.1.0,4.x +SqlClient,System.Data.SQLite,1.0.66.1,1.x +Ssrf,RestSharp,104.0.0,112.x +StackExchangeRedis,StackExchange.Redis,1.0.488,2.x +StackExchangeRedis,StackExchange.Redis.StrongName,1.0.312,1.x +StackTraceLeak,Microsoft.AspNetCore.Diagnostics,2.0.0,2.x +TestPlatformAssemblyResolver,Microsoft.TestPlatform.PlatformAbstractions,15.0.0,15.x +Wcf,System.ServiceModel.Http,4.0.0,4.x +WebRequest,System.Net.Requests,4.0.0,4.x +Xss,Microsoft.AspNetCore.Html.Abstractions,1.0.0,2.x +XUnit,xunit,2.2.0,2.x +XUnit,xunit.extensibility.execution,2.2.0,2.x +XUnit,xunit.v3,2.0.3,3.x