diff --git a/.craft.yml b/.craft.yml index cade1b38f6..0453b46dbe 100644 --- a/.craft.yml +++ b/.craft.yml @@ -10,7 +10,6 @@ targets: nuget:Sentry.AspNetCore.Grpc: nuget:Sentry.AspNetCore.Blazor.WebAssembly: nuget:Sentry.AspNet: - nuget:Sentry.Azure.Functions.Worker: nuget:Sentry.DiagnosticSource: nuget:Sentry.EntityFramework: nuget:Sentry.Extensions.Logging: diff --git a/.generated.NoMobile.sln b/.generated.NoMobile.sln index 41c02e6c1e..d5e24c17e9 100644 --- a/.generated.NoMobile.sln +++ b/.generated.NoMobile.sln @@ -25,7 +25,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.AspNetCore.S EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Aws.Lambda.AspNetCoreServer", "samples\Sentry.Samples.Aws.Lambda.AspNetCoreServer\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", "{50116F9A-646D-4BF7-9760-66E37CB9C459}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Azure.Functions.Worker", "samples\Sentry.Samples.Azure.Functions.Worker\Sentry.Samples.Azure.Functions.Worker.csproj", "{1F44075F-ABD6-49A4-8EA1-DBB70304AD24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.OpenTelemetry.AzureFunctions", "samples\Sentry.Samples.OpenTelemetry.AzureFunctions\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "{1F44075F-ABD6-49A4-8EA1-DBB70304AD24}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Console.Basic", "samples\Sentry.Samples.Console.Basic\Sentry.Samples.Console.Basic.csproj", "{B793249D-3E52-4B0D-964F-BC022CD8A753}" EndProject @@ -75,8 +75,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.Grpc", "s EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore", "src\Sentry.AspNetCore\Sentry.AspNetCore.csproj", "{4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Azure.Functions.Worker", "src\Sentry.Azure.Functions.Worker\Sentry.Azure.Functions.Worker.csproj", "{52262FBB-40D0-4F08-B00F-B298185FF6BD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Bindings.Android", "src\Sentry.Bindings.Android\Sentry.Bindings.Android.csproj", "{759D9E53-4717-491D-9970-B3A3367C65E7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Bindings.Cocoa", "src\Sentry.Bindings.Cocoa\Sentry.Bindings.Cocoa.csproj", "{33336B98-A69E-4F28-A71A-1D8753F3BA24}" @@ -121,8 +119,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.TestUtils EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.Tests", "test\Sentry.AspNetCore.Tests\Sentry.AspNetCore.Tests.csproj", "{6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Azure.Functions.Worker.Tests", "test\Sentry.Azure.Functions.Worker.Tests\Sentry.Azure.Functions.Worker.Tests.csproj", "{39F7BB08-908B-49F9-A96B-E14C16B69090}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.DiagnosticSource.IntegrationTests", "test\Sentry.DiagnosticSource.IntegrationTests\Sentry.DiagnosticSource.IntegrationTests.csproj", "{59742E7E-4380-4B40-BCC8-5AB314290198}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.DiagnosticSource.Tests", "test\Sentry.DiagnosticSource.Tests\Sentry.DiagnosticSource.Tests.csproj", "{6222BF96-2F1F-42DA-AF43-388B20151A5A}" @@ -209,6 +205,77 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Compiler.Extensions. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Maui.CommunityToolkit.Mvvm.Tests", "test\Sentry.Maui.CommunityToolkit.Mvvm.Tests\Sentry.Maui.CommunityToolkit.Mvvm.Tests.csproj", "{ADC91A84-6054-42EC-8241-0D717E4C7194}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{A8A97D6A-02C0-4808-9D62-DFFAB324A323}" + ProjectSection(SolutionItems) = preProject + scripts\update-cli.ps1 = scripts\update-cli.ps1 + scripts\bump-version.sh = scripts\bump-version.sh + scripts\device-test.ps1 = scripts\device-test.ps1 + scripts\dirty-check.ps1 = scripts\dirty-check.ps1 + scripts\update-java.ps1 = scripts\update-java.ps1 + scripts\bump-version.ps1 = scripts\bump-version.ps1 + scripts\parse-xunit2-xml.ps1 = scripts\parse-xunit2-xml.ps1 + scripts\build-sentry-cocoa.sh = scripts\build-sentry-cocoa.sh + scripts\update-project-xml.ps1 = scripts\update-project-xml.ps1 + scripts\build-sentry-native.ps1 = scripts\build-sentry-native.ps1 + scripts\ios-simulator-utils.ps1 = scripts\ios-simulator-utils.ps1 + scripts\commit-formatted-code.sh = scripts\commit-formatted-code.sh + scripts\accept-verifier-changes.ps1 = scripts\accept-verifier-changes.ps1 + scripts\generate-cocoa-bindings.ps1 = scripts\generate-cocoa-bindings.ps1 + scripts\generate-solution-filters.ps1 = scripts\generate-solution-filters.ps1 + scripts\generate-solution-filters-config.yaml = scripts\generate-solution-filters-config.yaml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{EC6ADE8A-E557-4848-8F03-519039830B5F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{BFF081D8-7CC0-4069-99F5-5CA0D70B56AB}" + ProjectSection(SolutionItems) = preProject + .github\workflows\build.yml = .github\workflows\build.yml + .github\workflows\alpine.yml = .github\workflows\alpine.yml + .github\workflows\danger.yml = .github\workflows\danger.yml + .github\workflows\release.yml = .github\workflows\release.yml + .github\workflows\format-code.yml = .github\workflows\format-code.yml + .github\workflows\update-deps.yml = .github\workflows\update-deps.yml + .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml + .github\workflows\vulnerabilities.yml = .github\workflows\vulnerabilities.yml + .github\workflows\device-tests-ios.yml = .github\workflows\device-tests-ios.yml + .github\workflows\device-tests-android.yml = .github\workflows\device-tests-android.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "actions", "actions", "{5D50D425-244F-4B79-B9F5-21D26DD52DC1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "environment", "environment", "{39216438-F347-427C-AB70-48DB1BA6E299}" + ProjectSection(SolutionItems) = preProject + .github\actions\environment\action.yml = .github\actions\environment\action.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "buildnative", "buildnative", "{A384A71C-A46F-49DB-B7FB-5DEEFC5E6CA3}" + ProjectSection(SolutionItems) = preProject + .github\actions\buildnative\action.yml = .github\actions\buildnative\action.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "freediskspace", "freediskspace", "{E34AA22F-B42E-4D4C-B96E-426AEBC2F367}" + ProjectSection(SolutionItems) = preProject + .github\actions\freediskspace\action.yml = .github\actions\freediskspace\action.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "install-zstd", "install-zstd", "{94A2DCA5-F298-41FB-913A-476668EF5786}" + ProjectSection(SolutionItems) = preProject + .github\actions\install-zstd\action.yml = .github\actions\install-zstd\action.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration-test", "integration-test", "{94CCDBEF-5867-4C24-A305-0C2AE738AF42}" + ProjectSection(SolutionItems) = preProject + integration-test\common.ps1 = integration-test\common.ps1 + integration-test\aot.Tests.ps1 = integration-test\aot.Tests.ps1 + integration-test\cli.Tests.ps1 = integration-test\cli.Tests.ps1 + integration-test\runtime.Tests.ps1 = integration-test\runtime.Tests.ps1 + integration-test\pester.ps1 = integration-test\pester.ps1 + integration-test\ios.Tests.ps1 = integration-test\ios.Tests.ps1 + integration-test\msbuild.Tests.ps1 = integration-test\msbuild.Tests.ps1 + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "net4-console", "net4-console", "{33793113-C7B5-434D-B5C1-6CA1A9587842}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -592,18 +659,6 @@ Global {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x64.Build.0 = Release|Any CPU {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x86.ActiveCfg = Release|Any CPU {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x86.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x64.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x64.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x86.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x86.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|Any CPU.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x64.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x64.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x86.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x86.Build.0 = Release|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -832,18 +887,6 @@ Global {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x64.Build.0 = Release|Any CPU {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x86.ActiveCfg = Release|Any CPU {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x86.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x64.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x64.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x86.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x86.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|Any CPU.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x64.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x64.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x86.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x86.Build.0 = Release|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|Any CPU.Build.0 = Debug|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1288,7 +1331,6 @@ Global {A7F651AD-51D3-4473-9641-7C76D2A0E3B7} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {DF785142-3E65-4176-8A6E-CAAD6BBF771F} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} - {52262FBB-40D0-4F08-B00F-B298185FF6BD} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {759D9E53-4717-491D-9970-B3A3367C65E7} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {33336B98-A69E-4F28-A71A-1D8753F3BA24} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {22E4E3F5-8D6E-433D-9456-F60DFB1EFC82} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} @@ -1308,7 +1350,6 @@ Global {D7D1EA68-ACE3-4DF3-A33C-EBB5B74701F5} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {563FEA1C-FDAE-4EDE-9ABF-22D76F2DA048} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} - {39F7BB08-908B-49F9-A96B-E14C16B69090} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {59742E7E-4380-4B40-BCC8-5AB314290198} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {6222BF96-2F1F-42DA-AF43-388B20151A5A} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {18FDE2B5-6023-487C-A349-E492F3F34B4A} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} @@ -1343,5 +1384,12 @@ Global {C3CDF61C-3E28-441C-A9CE-011C89D11719} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {3A76FF7D-2F32-4EA5-8999-2FFE3C7CB893} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {ADC91A84-6054-42EC-8241-0D717E4C7194} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} + {BFF081D8-7CC0-4069-99F5-5CA0D70B56AB} = {EC6ADE8A-E557-4848-8F03-519039830B5F} + {5D50D425-244F-4B79-B9F5-21D26DD52DC1} = {EC6ADE8A-E557-4848-8F03-519039830B5F} + {39216438-F347-427C-AB70-48DB1BA6E299} = {5D50D425-244F-4B79-B9F5-21D26DD52DC1} + {A384A71C-A46F-49DB-B7FB-5DEEFC5E6CA3} = {5D50D425-244F-4B79-B9F5-21D26DD52DC1} + {E34AA22F-B42E-4D4C-B96E-426AEBC2F367} = {5D50D425-244F-4B79-B9F5-21D26DD52DC1} + {94A2DCA5-F298-41FB-913A-476668EF5786} = {5D50D425-244F-4B79-B9F5-21D26DD52DC1} + {33793113-C7B5-434D-B5C1-6CA1A9587842} = {94CCDBEF-5867-4C24-A305-0C2AE738AF42} EndGlobalSection EndGlobal diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 37cff669b7..be40f01216 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -13,7 +13,6 @@ body: - Sentry.AspNetCore.Blazor.WebAssembly - Sentry.AspNetCore.Grpc - Sentry.AspNet - - Sentry.Azure.Functions.Worker - Sentry.DiagnosticSource - Sentry.EntityFramework - Sentry.Extensions.Logging diff --git a/CHANGELOG.md b/CHANGELOG.md index e12a0dfb3b..5f2e57a572 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Spans and Transactions now implement `IDisposable` so that they can be used with `using` statements/declarations that will automatically finish the span with a status of OK when it passes out of scope, if it has not already been finished, to be consistent with `Activity` classes when using OpenTelemetry ([#4627](https://github.com/getsentry/sentry-dotnet/pull/4627)) - SpanTracer and TransactionTracer are still public but these are now `sealed` (see also [#4627](https://github.com/getsentry/sentry-dotnet/pull/4627)) - CaptureFeedback now returns a `SentryId` and a `CaptureFeedbackResult` out parameter that indicate whether feedback was captured successfully and what the reason for failure was otherwise ([#4613](https://github.com/getsentry/sentry-dotnet/pull/4613)) +- Deprecated `Sentry.Azure.Functions.Worker` as very few people were using it and the functionality can easily be replaced with OpenTelemetry. We've replaced our integration with a sample showing how to do this using our OpenTelemetry package instead. ([#4693](https://github.com/getsentry/sentry-dotnet/pull/4693)) - UWP support has been dropped. Future efforts will likely focus on WinUI 3, in line with Microsoft's recommendations for building Windows UI apps. ([#4686](https://github.com/getsentry/sentry-dotnet/pull/4686)) - The _Structured Logs_ APIs are now stable: removed `Experimental` from `SentryOptions` ([#4699](https://github.com/getsentry/sentry-dotnet/pull/4699)) diff --git a/README.md b/README.md index 25d47bc58a..8c07c3ddce 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,6 @@ Sentry SDK for .NET | **Sentry.AspNetCore.Blazor.WebAssembly** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.AspNetCore.Blazor.WebAssembly.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Blazor.WebAssembly) | [![NuGet](https://img.shields.io/nuget/v/Sentry.AspNetCore.Blazor.WebAssembly.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Blazor.WebAssembly) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.AspNetCore.Blazor.WebAssembly.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Blazor.WebAssembly) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/blazor-webassembly/) | | **Sentry.AspNetCore.Grpc** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.AspNetCore.Grpc.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Grpc) | [![NuGet](https://img.shields.io/nuget/v/Sentry.AspNetCore.Grpc.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Grpc) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.AspNetCore.Grpc.svg)](https://www.nuget.org/packages/Sentry.AspNetCore.Grpc) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/) | | **Sentry.AspNet** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.AspNet.svg)](https://www.nuget.org/packages/Sentry.AspNet) | [![NuGet](https://img.shields.io/nuget/v/Sentry.AspNet.svg)](https://www.nuget.org/packages/Sentry.AspNet) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.AspNet.svg)](https://www.nuget.org/packages/Sentry.AspNet) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/aspnet) | -| **Sentry.Azure.Functions.Worker** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.Azure.Functions.Worker.svg)](https://www.nuget.org/packages/Sentry.Azure.Functions.Worker) | [![NuGet](https://img.shields.io/nuget/v/Sentry.Azure.Functions.Worker.svg)](https://www.nuget.org/packages/Sentry.Azure.Functions.Worker) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.Azure.Functions.Worker.svg)](https://www.nuget.org/packages/Sentry.Azure.Functions.Worker) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/azure-functions-worker/) | | **Sentry.DiagnosticSource** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.DiagnosticSource.svg)](https://www.nuget.org/packages/Sentry.DiagnosticSource) | [![NuGet](https://img.shields.io/nuget/v/Sentry.DiagnosticSource.svg)](https://www.nuget.org/packages/Sentry.DiagnosticSource) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.DiagnosticSource.svg)](https://www.nuget.org/packages/Sentry.DiagnosticSource) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/performance/instrumentation/automatic-instrumentation/#diagnosticsource-integration) | | **Sentry.EntityFramework** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.EntityFramework.svg)](https://www.nuget.org/packages/Sentry.EntityFramework) | [![NuGet](https://img.shields.io/nuget/v/Sentry.EntityFramework.svg)](https://www.nuget.org/packages/Sentry.EntityFramework) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.EntityFramework.svg)](https://www.nuget.org/packages/Sentry.EntityFramework) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/entityframework) | | **Sentry.Extensions.Logging** | [![Downloads](https://img.shields.io/nuget/dt/Sentry.Extensions.Logging.svg)](https://www.nuget.org/packages/Sentry.Extensions.Logging) | [![NuGet](https://img.shields.io/nuget/v/Sentry.Extensions.Logging.svg)](https://www.nuget.org/packages/Sentry.Extensions.Logging) | [![NuGet](https://img.shields.io/nuget/vpre/Sentry.Extensions.Logging.svg)](https://www.nuget.org/packages/Sentry.Extensions.Logging) | [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/platforms/dotnet/guides/extensions-logging/) | diff --git a/Sentry-CI-Build-Linux-NoMobile.slnf b/Sentry-CI-Build-Linux-NoMobile.slnf index e3497886f3..04b4b49290 100644 --- a/Sentry-CI-Build-Linux-NoMobile.slnf +++ b/Sentry-CI-Build-Linux-NoMobile.slnf @@ -11,7 +11,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -27,13 +26,13 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", @@ -50,7 +49,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/Sentry-CI-Build-Linux.slnf b/Sentry-CI-Build-Linux.slnf index 14877f60a6..f53160c6a9 100644 --- a/Sentry-CI-Build-Linux.slnf +++ b/Sentry-CI-Build-Linux.slnf @@ -12,7 +12,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -29,6 +28,7 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", @@ -36,7 +36,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Bindings.Android\\Sentry.Bindings.Android.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", @@ -57,7 +56,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/Sentry-CI-Build-Windows-arm64.slnf b/Sentry-CI-Build-Windows-arm64.slnf index 03b36063fb..b83f3c8428 100644 --- a/Sentry-CI-Build-Windows-arm64.slnf +++ b/Sentry-CI-Build-Windows-arm64.slnf @@ -13,7 +13,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -30,6 +29,7 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", @@ -38,7 +38,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Bindings.Android\\Sentry.Bindings.Android.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", @@ -59,7 +58,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.Extensions.Logging.Tests\\Sentry.Extensions.Logging.Tests.csproj", "test\\Sentry.Google.Cloud.Functions.Tests\\Sentry.Google.Cloud.Functions.Tests.csproj", diff --git a/Sentry-CI-Build-Windows.slnf b/Sentry-CI-Build-Windows.slnf index 5feb73b587..ac202e9d31 100644 --- a/Sentry-CI-Build-Windows.slnf +++ b/Sentry-CI-Build-Windows.slnf @@ -13,7 +13,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -30,6 +29,7 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", @@ -38,7 +38,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Bindings.Android\\Sentry.Bindings.Android.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", @@ -59,7 +58,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/Sentry-CI-Build-macOS.slnf b/Sentry-CI-Build-macOS.slnf index ae459279f2..8ed63506e9 100644 --- a/Sentry-CI-Build-macOS.slnf +++ b/Sentry-CI-Build-macOS.slnf @@ -14,7 +14,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -34,6 +33,7 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", @@ -42,7 +42,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Bindings.Android\\Sentry.Bindings.Android.csproj", "src\\Sentry.Bindings.Cocoa\\Sentry.Bindings.Cocoa.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", @@ -64,7 +63,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/Sentry-CI-CodeQL.slnf b/Sentry-CI-CodeQL.slnf index 859f0c8566..c8234ff35e 100644 --- a/Sentry-CI-CodeQL.slnf +++ b/Sentry-CI-CodeQL.slnf @@ -8,7 +8,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", diff --git a/Sentry.Azure.Functions.slnf b/Sentry.Azure.Functions.slnf deleted file mode 100644 index 54c80b23c9..0000000000 --- a/Sentry.Azure.Functions.slnf +++ /dev/null @@ -1,18 +0,0 @@ -{ - "solution": { - "path": "Sentry.sln", - "projects": [ - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", - "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", - "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", - "src\\Sentry.Extensions.Logging\\Sentry.Extensions.Logging.csproj", - "src\\Sentry\\Sentry.csproj", - "test\\Sentry.Analyzers.Tests\\Sentry.Analyzers.Tests.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", - "test\\Sentry.Testing.CrashableApp\\Sentry.Testing.CrashableApp.csproj", - "test\\Sentry.Testing\\Sentry.Testing.csproj", - "test\\Sentry.Tests\\Sentry.Tests.csproj" - ] - } -} diff --git a/Sentry.sln b/Sentry.sln index d59c64a7f5..cf1c80a04f 100644 --- a/Sentry.sln +++ b/Sentry.sln @@ -25,7 +25,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.AspNetCore.S EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Aws.Lambda.AspNetCoreServer", "samples\Sentry.Samples.Aws.Lambda.AspNetCoreServer\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", "{50116F9A-646D-4BF7-9760-66E37CB9C459}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Azure.Functions.Worker", "samples\Sentry.Samples.Azure.Functions.Worker\Sentry.Samples.Azure.Functions.Worker.csproj", "{1F44075F-ABD6-49A4-8EA1-DBB70304AD24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.OpenTelemetry.AzureFunctions", "samples\Sentry.Samples.OpenTelemetry.AzureFunctions\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "{1F44075F-ABD6-49A4-8EA1-DBB70304AD24}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Samples.Console.Basic", "samples\Sentry.Samples.Console.Basic\Sentry.Samples.Console.Basic.csproj", "{B793249D-3E52-4B0D-964F-BC022CD8A753}" EndProject @@ -75,8 +75,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.Grpc", "s EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore", "src\Sentry.AspNetCore\Sentry.AspNetCore.csproj", "{4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Azure.Functions.Worker", "src\Sentry.Azure.Functions.Worker\Sentry.Azure.Functions.Worker.csproj", "{52262FBB-40D0-4F08-B00F-B298185FF6BD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Bindings.Android", "src\Sentry.Bindings.Android\Sentry.Bindings.Android.csproj", "{759D9E53-4717-491D-9970-B3A3367C65E7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Bindings.Cocoa", "src\Sentry.Bindings.Cocoa\Sentry.Bindings.Cocoa.csproj", "{33336B98-A69E-4F28-A71A-1D8753F3BA24}" @@ -121,8 +119,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.TestUtils EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.AspNetCore.Tests", "test\Sentry.AspNetCore.Tests\Sentry.AspNetCore.Tests.csproj", "{6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.Azure.Functions.Worker.Tests", "test\Sentry.Azure.Functions.Worker.Tests\Sentry.Azure.Functions.Worker.Tests.csproj", "{39F7BB08-908B-49F9-A96B-E14C16B69090}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.DiagnosticSource.IntegrationTests", "test\Sentry.DiagnosticSource.IntegrationTests\Sentry.DiagnosticSource.IntegrationTests.csproj", "{59742E7E-4380-4B40-BCC8-5AB314290198}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sentry.DiagnosticSource.Tests", "test\Sentry.DiagnosticSource.Tests\Sentry.DiagnosticSource.Tests.csproj", "{6222BF96-2F1F-42DA-AF43-388B20151A5A}" @@ -662,18 +658,6 @@ Global {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x64.Build.0 = Release|Any CPU {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x86.ActiveCfg = Release|Any CPU {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2}.Release|x86.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x64.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x64.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x86.ActiveCfg = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Debug|x86.Build.0 = Debug|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|Any CPU.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x64.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x64.Build.0 = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x86.ActiveCfg = Release|Any CPU - {52262FBB-40D0-4F08-B00F-B298185FF6BD}.Release|x86.Build.0 = Release|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {759D9E53-4717-491D-9970-B3A3367C65E7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -902,18 +886,6 @@ Global {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x64.Build.0 = Release|Any CPU {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x86.ActiveCfg = Release|Any CPU {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E}.Release|x86.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x64.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x64.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x86.ActiveCfg = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Debug|x86.Build.0 = Debug|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|Any CPU.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x64.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x64.Build.0 = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x86.ActiveCfg = Release|Any CPU - {39F7BB08-908B-49F9-A96B-E14C16B69090}.Release|x86.Build.0 = Release|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|Any CPU.Build.0 = Debug|Any CPU {59742E7E-4380-4B40-BCC8-5AB314290198}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1358,7 +1330,6 @@ Global {A7F651AD-51D3-4473-9641-7C76D2A0E3B7} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {DF785142-3E65-4176-8A6E-CAAD6BBF771F} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {4B323BCC-0E8D-43CE-9AC2-4B708278C7C2} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} - {52262FBB-40D0-4F08-B00F-B298185FF6BD} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {759D9E53-4717-491D-9970-B3A3367C65E7} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {33336B98-A69E-4F28-A71A-1D8753F3BA24} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} {22E4E3F5-8D6E-433D-9456-F60DFB1EFC82} = {230B9384-90FD-4551-A5DE-1A5C197F25B6} @@ -1378,7 +1349,6 @@ Global {D7D1EA68-ACE3-4DF3-A33C-EBB5B74701F5} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {563FEA1C-FDAE-4EDE-9ABF-22D76F2DA048} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {6D9EB590-CED1-47C2-87B1-E65EE0EEBB9E} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} - {39F7BB08-908B-49F9-A96B-E14C16B69090} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {59742E7E-4380-4B40-BCC8-5AB314290198} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {6222BF96-2F1F-42DA-AF43-388B20151A5A} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} {18FDE2B5-6023-487C-A349-E492F3F34B4A} = {6987A1CC-608E-4868-A02C-09D30C8B7B2D} diff --git a/SentryNoMobile.slnf b/SentryNoMobile.slnf index 8e965ea675..b8ce932b8c 100644 --- a/SentryNoMobile.slnf +++ b/SentryNoMobile.slnf @@ -11,7 +11,6 @@ "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", "samples\\Sentry.Samples.AspNetCore.WebAPI.Profiling\\Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj", "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Azure.Functions.Worker\\Sentry.Samples.Azure.Functions.Worker.csproj", "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", "samples\\Sentry.Samples.Console.HeapDump\\Sentry.Samples.Console.HeapDump.csproj", @@ -28,6 +27,7 @@ "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", "samples\\Sentry.Samples.OpenTelemetry.AspNetCore\\Sentry.Samples.OpenTelemetry.AspNetCore.csproj", + "samples\\Sentry.Samples.OpenTelemetry.AzureFunctions\\Sentry.Samples.OpenTelemetry.AzureFunctions.csproj", "samples\\Sentry.Samples.OpenTelemetry.Console\\Sentry.Samples.OpenTelemetry.Console.csproj", "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", "src\\Sentry.Analyzers\\Sentry.Analyzers.csproj", @@ -35,7 +35,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", @@ -53,7 +52,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/SentryNoSamples.slnf b/SentryNoSamples.slnf index 36ad16825b..df020bdb52 100644 --- a/SentryNoSamples.slnf +++ b/SentryNoSamples.slnf @@ -9,7 +9,6 @@ "src\\Sentry.AspNetCore.Blazor.WebAssembly\\Sentry.AspNetCore.Blazor.WebAssembly.csproj", "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.Azure.Functions.Worker\\Sentry.Azure.Functions.Worker.csproj", "src\\Sentry.Compiler.Extensions\\Sentry.Compiler.Extensions.csproj", "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", @@ -30,7 +29,6 @@ "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", "test\\Sentry.AspNetCore.TestUtils\\Sentry.AspNetCore.TestUtils.csproj", - "test\\Sentry.Azure.Functions.Worker.Tests\\Sentry.Azure.Functions.Worker.Tests.csproj", "test\\Sentry.Compiler.Extensions.Tests\\Sentry.Compiler.Extensions.Tests.csproj", "test\\Sentry.DiagnosticSource.IntegrationTests\\Sentry.DiagnosticSource.IntegrationTests.csproj", "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/Program.cs b/samples/Sentry.Samples.Azure.Functions.Worker/Program.cs deleted file mode 100644 index efc8943223..0000000000 --- a/samples/Sentry.Samples.Azure.Functions.Worker/Program.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.Extensions.Hosting; -using Sentry.Azure.Functions.Worker; - -var host = new HostBuilder() - .ConfigureFunctionsWorkerDefaults((host, builder) => - { - builder.UseSentry(host, options => - { -#if !SENTRY_DSN_DEFINED_IN_ENV - // A DSN is required. You can set here in code, or you can set it in the SENTRY_DSN environment variable. - options.Dsn = SamplesShared.Dsn; -#endif - options.TracesSampleRate = 1.0; - options.Debug = true; - }); - }) - .Build(); - -await host.RunAsync(); diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/BadApple.cs b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/BadApple.cs similarity index 82% rename from samples/Sentry.Samples.Azure.Functions.Worker/BadApple.cs rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/BadApple.cs index 0712ad1fe9..4b900b8c0e 100644 --- a/samples/Sentry.Samples.Azure.Functions.Worker/BadApple.cs +++ b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/BadApple.cs @@ -1,4 +1,4 @@ -namespace Sentry.Samples.Azure.Functions.Worker; +namespace Sentry.Samples.OpenTelemetry.AzureFunctions; internal static class BadApple { diff --git a/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Program.cs b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Program.cs new file mode 100644 index 0000000000..65cfddb0bd --- /dev/null +++ b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Program.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using OpenTelemetry; +using OpenTelemetry.Trace; +using Sentry.OpenTelemetry; + +using var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSentry() // <-- Configure OpenTelemetry to send traces to Sentry + .AddAspNetCoreInstrumentation() // From OpenTelemetry.Instrumentation.AspNetCore... adds automatic tracing for incoming requests + .AddHttpClientInstrumentation() // From OpenTelemetry.Instrumentation.Http... adds automatic tracing for outgoing HTTP requests + .Build(); + +var host = new HostBuilder() + .ConfigureFunctionsWorkerDefaults() + .ConfigureLogging(logging => + { + logging.AddSentry(options => + { +#if !SENTRY_DSN_DEFINED_IN_ENV + // A DSN is required. You can set here in code, or you can set it in the SENTRY_DSN environment variable. + options.Dsn = SamplesShared.Dsn; +#endif + options.TracesSampleRate = 1.0; + options.UseOpenTelemetry(); // <-- Configure Sentry to use open telemetry + options.DisableSentryHttpMessageHandler = true; // So Sentry doesn't also create spans for outbound HTTP requests + options.Debug = true; + }); + }) + .Build(); + +await host.RunAsync(); diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/SampleHttpTrigger.cs b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleHttpTrigger.cs similarity index 93% rename from samples/Sentry.Samples.Azure.Functions.Worker/SampleHttpTrigger.cs rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleHttpTrigger.cs index 3fc70329ca..3f27000f3a 100644 --- a/samples/Sentry.Samples.Azure.Functions.Worker/SampleHttpTrigger.cs +++ b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleHttpTrigger.cs @@ -3,7 +3,7 @@ using Microsoft.Azure.Functions.Worker.Http; using Microsoft.Extensions.Logging; -namespace Sentry.Samples.Azure.Functions.Worker; +namespace Sentry.Samples.OpenTelemetry.AzureFunctions; public class SampleHttpTrigger { diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/SampleTimerTrigger.cs b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleTimerTrigger.cs similarity index 94% rename from samples/Sentry.Samples.Azure.Functions.Worker/SampleTimerTrigger.cs rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleTimerTrigger.cs index 99f14246b7..6d338f120f 100644 --- a/samples/Sentry.Samples.Azure.Functions.Worker/SampleTimerTrigger.cs +++ b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/SampleTimerTrigger.cs @@ -1,7 +1,7 @@ using Microsoft.Azure.Functions.Worker; using Microsoft.Extensions.Logging; -namespace Sentry.Samples.Azure.Functions.Worker; +namespace Sentry.Samples.OpenTelemetry.AzureFunctions; public class SampleTimerTrigger { diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Sentry.Samples.OpenTelemetry.AzureFunctions.csproj similarity index 74% rename from samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Sentry.Samples.OpenTelemetry.AzureFunctions.csproj index 1ee89930e3..2e844d2068 100644 --- a/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj +++ b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/Sentry.Samples.OpenTelemetry.AzureFunctions.csproj @@ -10,6 +10,9 @@ + + + @@ -30,6 +33,7 @@ - + + diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/host.json b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/host.json similarity index 100% rename from samples/Sentry.Samples.Azure.Functions.Worker/host.json rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/host.json diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/local.settings.json b/samples/Sentry.Samples.OpenTelemetry.AzureFunctions/local.settings.json similarity index 100% rename from samples/Sentry.Samples.Azure.Functions.Worker/local.settings.json rename to samples/Sentry.Samples.OpenTelemetry.AzureFunctions/local.settings.json diff --git a/scripts/generate-solution-filters-config.yaml b/scripts/generate-solution-filters-config.yaml index 05821343ea..331042afbc 100644 --- a/scripts/generate-solution-filters-config.yaml +++ b/scripts/generate-solution-filters-config.yaml @@ -166,22 +166,6 @@ filterConfigs: - "**/Sentry.Tests.csproj" - "**/Sentry.Analyzers.Tests.csproj" - - outputPath: Sentry.Azure.Functions.slnf - include: - patterns: - - "**/*Azure.Functions*.csproj" - - "**/Sentry.Samples.Console.Basic.csproj" - - "**/Sentry.Extensions.Logging.csproj" - - "**/Sentry.csproj" - - "**/Sentry.Analyzers.csproj" - - "**/Sentry.Testing.csproj" - - "**/Sentry.Testing.CrashableApp.csproj" - - "**/Sentry.Tests.csproj" - - "**/Sentry.Analyzers.Tests.csproj" - exclude: - groups: - - "artefacts" - - outputPath: SentryCore.slnf solution: .generated.NoMobile.sln include: diff --git a/src/Sentry.Azure.Functions.Worker/.editorconfig b/src/Sentry.Azure.Functions.Worker/.editorconfig deleted file mode 100644 index bdf468a081..0000000000 --- a/src/Sentry.Azure.Functions.Worker/.editorconfig +++ /dev/null @@ -1,5 +0,0 @@ -[*.cs] - -# Reason: Azure Functions worker doesn't set SynchronizationContext but Durable Functions does and required affinity. -# (https://github.com/Azure/azure-functions-dotnet-worker/issues/1520) -dotnet_diagnostic.CA2007.severity = none \ No newline at end of file diff --git a/src/Sentry.Azure.Functions.Worker/BindableSentryAzureFunctionsOptions.cs b/src/Sentry.Azure.Functions.Worker/BindableSentryAzureFunctionsOptions.cs deleted file mode 100644 index b094af917e..0000000000 --- a/src/Sentry.Azure.Functions.Worker/BindableSentryAzureFunctionsOptions.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Sentry.Extensions.Logging; - -namespace Sentry.Azure.Functions.Worker; - -/// -internal class BindableSentryAzureFunctionsOptions : BindableSentryLoggingOptions -{ - public void ApplyTo(SentryAzureFunctionsOptions options) - { - base.ApplyTo(options); - } -} diff --git a/src/Sentry.Azure.Functions.Worker/HttpRequestDataExtensions.cs b/src/Sentry.Azure.Functions.Worker/HttpRequestDataExtensions.cs deleted file mode 100644 index 194e8dcd6f..0000000000 --- a/src/Sentry.Azure.Functions.Worker/HttpRequestDataExtensions.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Microsoft.Azure.Functions.Worker.Http; -using Sentry.Extensibility; - -namespace Sentry.Azure.Functions.Worker; - -internal static class HttpRequestDataExtensions -{ - public static SentryTraceHeader? TryGetSentryTraceHeader(this HttpRequestData context, IDiagnosticLogger? logger) - { - var traceHeaderValue = context.Headers.TryGetValues(SentryTraceHeader.HttpHeaderName, out var values) - ? values.FirstOrDefault() - : null; - - if (traceHeaderValue is null) - { - logger?.LogDebug("Did not receive a Sentry trace header."); - return null; - } - - logger?.LogDebug("Received Sentry trace header '{0}'.", traceHeaderValue); - - try - { - return SentryTraceHeader.Parse(traceHeaderValue); - } - catch (Exception ex) - { - logger?.LogError(ex, "Invalid Sentry trace header '{0}'.", traceHeaderValue); - return null; - } - } - - public static BaggageHeader? TryGetBaggageHeader(this HttpRequestData context, IDiagnosticLogger? logger) - { - var baggageValue = context.Headers.TryGetValues(BaggageHeader.HttpHeaderName, out var value) - ? value.FirstOrDefault() - : null; - - if (baggageValue is null) - { - logger?.LogDebug("Did not receive a Sentry baggage header."); - return null; - } - - // Note: If there are multiple baggage headers, they will be joined with comma delimiters, - // and can thus be treated as a single baggage header. - - logger?.LogDebug("Received baggage header '{0}'.", baggageValue); - - try - { - return BaggageHeader.TryParse(baggageValue, onlySentry: true); - } - catch (Exception ex) - { - logger?.LogError(ex, "Invalid baggage header '{0}'.", baggageValue); - return null; - } - } -} diff --git a/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj b/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj deleted file mode 100644 index c3329b290f..0000000000 --- a/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - $(CurrentTfms);netstandard2.0 - $(PackageTags);Azure;Functions;Worker - Official Azure Functions Worker SDK integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time. - - - - true - true - - - - - - - - - - - - - - - - diff --git a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsLoggerProvider.cs b/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsLoggerProvider.cs deleted file mode 100644 index 175fb966a3..0000000000 --- a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsLoggerProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Sentry.Extensions.Logging; - -namespace Sentry.Azure.Functions.Worker; - -[ProviderAlias("Sentry")] -internal class SentryAzureFunctionsLoggerProvider : SentryLoggerProvider -{ - public SentryAzureFunctionsLoggerProvider(IOptions options, IHub hub) - : base(options, hub) - { - } -} diff --git a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptions.cs b/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptions.cs deleted file mode 100644 index 7bf9c4a8ab..0000000000 --- a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Sentry.Extensions.Logging; - -namespace Sentry.Azure.Functions.Worker; - -/// -/// Sentry Azure Functions integration options -/// -public class SentryAzureFunctionsOptions : SentryLoggingOptions -{ -} diff --git a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptionsSetup.cs b/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptionsSetup.cs deleted file mode 100644 index 5c34afd748..0000000000 --- a/src/Sentry.Azure.Functions.Worker/SentryAzureFunctionsOptionsSetup.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Options; - -namespace Sentry.Azure.Functions.Worker; - -#if NET8_0_OR_GREATER -internal class SentryAzureFunctionsOptionsSetup : IConfigureOptions -{ - private readonly IConfiguration _config; - - public SentryAzureFunctionsOptionsSetup(IConfiguration config) - { - ArgumentNullException.ThrowIfNull(config); - _config = config; - } - - public void Configure(SentryAzureFunctionsOptions options) - { - ArgumentNullException.ThrowIfNull(options); - - var bindable = new BindableSentryAzureFunctionsOptions(); - _config.Bind(bindable); - bindable.ApplyTo(options); - - // These can't be changed by the user - options.TagFilters.Add("AzureFunctions_"); - } -} -#else -internal class SentryAzureFunctionsOptionsSetup : ConfigureFromConfigurationOptions -{ - public SentryAzureFunctionsOptionsSetup(IConfiguration config) : base(config) - { - } - - public override void Configure(SentryAzureFunctionsOptions options) - { - // Mutable by user options - - base.Configure(options); - - // Immutable by user options - - options.TagFilters.Add("AzureFunctions_"); - } -} -#endif diff --git a/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerApplicationBuilderExtensions.cs b/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerApplicationBuilderExtensions.cs deleted file mode 100644 index 250db84e34..0000000000 --- a/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerApplicationBuilderExtensions.cs +++ /dev/null @@ -1,87 +0,0 @@ -using Microsoft.Azure.Functions.Worker; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Sentry.Extensions.Logging.Extensions.DependencyInjection; - -namespace Sentry.Azure.Functions.Worker; - -/// -/// Sentry extension methods for Azure Functions with Isolated Worker SDK -/// -[EditorBrowsable(EditorBrowsableState.Never)] -public static class SentryFunctionsWorkerApplicationBuilderExtensions -{ - /// - /// Uses Sentry integration. - /// - public static IFunctionsWorkerApplicationBuilder UseSentry(this IFunctionsWorkerApplicationBuilder builder, HostBuilderContext context) - => UseSentry(builder, context, (Action?)null); - - /// - /// Uses Sentry integration. - /// - public static IFunctionsWorkerApplicationBuilder UseSentry(this IFunctionsWorkerApplicationBuilder builder, HostBuilderContext context, string dsn) - => builder.UseSentry(context, o => o.Dsn = dsn); - - /// - /// Uses Sentry integration. - /// - public static IFunctionsWorkerApplicationBuilder UseSentry( - this IFunctionsWorkerApplicationBuilder builder, - Action? optionsConfiguration) - { - if (builder is IHostApplicationBuilder appBuilder) - { - return builder.UseSentry(appBuilder.Configuration, optionsConfiguration); - } - throw new InvalidOperationException("Builder is not of type " + typeof(IHostApplicationBuilder)); - } - - /// - /// Uses Sentry integration. - /// - public static IFunctionsWorkerApplicationBuilder UseSentry( - this IFunctionsWorkerApplicationBuilder builder, - HostBuilderContext context, - Action? optionsConfiguration) - => builder.UseSentry(context.Configuration, optionsConfiguration); - - - /// - /// Uses Sentry integration. - /// - public static IFunctionsWorkerApplicationBuilder UseSentry( - this IFunctionsWorkerApplicationBuilder builder, - IConfiguration configuration, - Action? optionsConfiguration) - { - builder.UseMiddleware(); - - var services = builder.Services; - var section = configuration.GetSection("Sentry"); -#if NET8_0_OR_GREATER - services.AddSingleton>(_ => - new SentryAzureFunctionsOptionsSetup(section) - ); -#else - services.Configure(options => - section.Bind(options)); -#endif - - if (optionsConfiguration != null) - { - services.Configure(optionsConfiguration); - } - - services.AddLogging(); - services.AddSingleton(); - services.AddSingleton, SentryAzureFunctionsOptionsSetup>(); - - services.AddSentry(); - - return builder; - } -} diff --git a/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerMiddleware.cs b/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerMiddleware.cs deleted file mode 100644 index 72eebe5d76..0000000000 --- a/src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerMiddleware.cs +++ /dev/null @@ -1,131 +0,0 @@ -using Microsoft.Azure.Functions.Worker; -using Microsoft.Azure.Functions.Worker.Middleware; -using Sentry.Extensibility; -using Sentry.Internal; - -namespace Sentry.Azure.Functions.Worker; - -internal class SentryFunctionsWorkerMiddleware : IFunctionsWorkerMiddleware -{ - private const string Operation = "function"; - internal const string AzureFunctionsOrigin = "auto.function.azure"; - - private readonly IHub _hub; - private readonly IDiagnosticLogger? _logger; - private static readonly ConcurrentDictionary TransactionNameCache = new(); - - public SentryFunctionsWorkerMiddleware(IHub hub) - { - _hub = hub; - _logger = hub.GetSentryOptions()?.DiagnosticLogger; - } - - public async Task Invoke(FunctionContext context, FunctionExecutionDelegate next) - { - var transactionContext = await StartOrContinueTraceAsync(context); - var transaction = _hub.StartTransaction(transactionContext); - transaction.Contexts.Trace.Origin = AzureFunctionsOrigin; - Exception? unhandledException = null; - - try - { - _hub.ConfigureScope(scope => - { - scope.Transaction = transaction; - - scope.Contexts["function"] = new Dictionary - { - { "name", context.FunctionDefinition.Name }, - { "entryPoint", context.FunctionDefinition.EntryPoint }, - { "invocationId", context.InvocationId } - }; - }); - - context.CancellationToken.ThrowIfCancellationRequested(); - - await next(context); - } - catch (Exception exception) - { - exception.SetSentryMechanism(nameof(SentryFunctionsWorkerMiddleware), - "This exception was caught by the Sentry Functions middleware. " + - "The Function has thrown an exception that was not handled by the user code.", - handled: false); - - unhandledException = exception; - - throw; - } - finally - { - if (unhandledException is not null) - { - transaction.Finish(unhandledException); - } - else - { - var statusCode = context.GetHttpResponseData()?.StatusCode; - - // For HTTP triggered function, finish transaction with the returned HTTP status code - if (statusCode is not null) - { - var status = SpanStatusConverter.FromHttpStatusCode(statusCode.Value); - - transaction.Finish(status); - } - else - { - transaction.Finish(); - } - } - } - } - - [UnconditionalSuppressMessage("Trimming", "IL2026: RequiresUnreferencedCode", Justification = AotHelper.AvoidAtRuntime)] - [UnconditionalSuppressMessage("Trimming", "IL2075: DynamicallyAccessedMembers", Justification = AotHelper.AvoidAtRuntime)] - private async Task StartOrContinueTraceAsync(FunctionContext context) - { - var transactionName = context.FunctionDefinition.Name; - - // Get the HTTP request data - var requestData = await context.GetHttpRequestDataAsync(); - if (requestData is null) - { - // not an HTTP trigger - return _hub.ContinueTrace((SentryTraceHeader?)null, (BaggageHeader?)null, transactionName, Operation); - } - - var httpMethod = requestData.Method.ToUpperInvariant(); - var transactionNameKey = $"{context.FunctionDefinition.EntryPoint}-{httpMethod}"; - - // Note that, when Trimming is enabled, we can't use reflection to read route data from the HttpTrigger - // attribute. In that case the route name will always be /api/ - // If this is ever a problem for customers, we can potentially see if there are alternate ways to get this info - // from route tables or something. We're not even sure if anyone will use this functionality for now though. - if (!AotHelper.IsTrimmed && !TransactionNameCache.TryGetValue(transactionNameKey, out transactionName)) - { - // Find the HTTP Trigger attribute via reflection - var assembly = Assembly.LoadFrom(context.FunctionDefinition.PathToAssembly); - var entryPointName = context.FunctionDefinition.EntryPoint; - - var typeName = entryPointName[..entryPointName.LastIndexOf('.')]; - var methodName = entryPointName[(typeName.Length + 1)..]; - var attribute = assembly.GetType(typeName)?.GetMethod(methodName)?.GetParameters() - .Select(p => p.GetCustomAttribute()) - .FirstOrDefault(a => a is not null); - - transactionName = attribute?.Route is { } route - // Compose the transaction name from the method and route - ? $"{httpMethod} /{route.TrimStart('/')}" - // There's no route provided, so use the absolute path of the URL - : $"{httpMethod} {requestData.Url.AbsolutePath}"; - - TransactionNameCache.TryAdd(transactionNameKey, transactionName); - } - - var traceHeader = requestData.TryGetSentryTraceHeader(_logger); - var baggageHeader = requestData.TryGetBaggageHeader(_logger); - - return SentrySdk.ContinueTrace(traceHeader, baggageHeader, transactionName, Operation); - } -} diff --git a/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj b/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj index 4201207da5..4f66c6e615 100644 --- a/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj +++ b/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj @@ -44,8 +44,6 @@ - - diff --git a/src/Sentry/Sentry.csproj b/src/Sentry/Sentry.csproj index ed8451dbfa..76cfe3021b 100644 --- a/src/Sentry/Sentry.csproj +++ b/src/Sentry/Sentry.csproj @@ -148,8 +148,6 @@ - - diff --git a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet10_0.verified.txt b/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet10_0.verified.txt deleted file mode 100644 index f6ee752df8..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet10_0.verified.txt +++ /dev/null @@ -1,15 +0,0 @@ -namespace Sentry.Azure.Functions.Worker -{ - public class SentryAzureFunctionsOptions : Sentry.Extensions.Logging.SentryLoggingOptions - { - public SentryAzureFunctionsOptions() { } - } - public static class SentryFunctionsWorkerApplicationBuilderExtensions - { - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { } - } -} \ No newline at end of file diff --git a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt b/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt deleted file mode 100644 index f6ee752df8..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt +++ /dev/null @@ -1,15 +0,0 @@ -namespace Sentry.Azure.Functions.Worker -{ - public class SentryAzureFunctionsOptions : Sentry.Extensions.Logging.SentryLoggingOptions - { - public SentryAzureFunctionsOptions() { } - } - public static class SentryFunctionsWorkerApplicationBuilderExtensions - { - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { } - } -} \ No newline at end of file diff --git a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt b/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt deleted file mode 100644 index f6ee752df8..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt +++ /dev/null @@ -1,15 +0,0 @@ -namespace Sentry.Azure.Functions.Worker -{ - public class SentryAzureFunctionsOptions : Sentry.Extensions.Logging.SentryLoggingOptions - { - public SentryAzureFunctionsOptions() { } - } - public static class SentryFunctionsWorkerApplicationBuilderExtensions - { - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { } - } -} \ No newline at end of file diff --git a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.Net4_8.verified.txt b/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.Net4_8.verified.txt deleted file mode 100644 index f6ee752df8..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.Net4_8.verified.txt +++ /dev/null @@ -1,15 +0,0 @@ -namespace Sentry.Azure.Functions.Worker -{ - public class SentryAzureFunctionsOptions : Sentry.Extensions.Logging.SentryLoggingOptions - { - public SentryAzureFunctionsOptions() { } - } - public static class SentryFunctionsWorkerApplicationBuilderExtensions - { - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action? optionsConfiguration) { } - public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { } - } -} \ No newline at end of file diff --git a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.verify.cs b/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.verify.cs deleted file mode 100644 index a99f9b7b25..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.verify.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Sentry.Azure.Functions.Worker.Tests; - -public class ApiApprovalTests -{ - [Fact] - public Task Run() - { - return typeof(SentryFunctionsWorkerMiddleware).Assembly.CheckApproval(); - } -} diff --git a/test/Sentry.Azure.Functions.Worker.Tests/BindableSentryAzureFunctionsOptionsTests.cs b/test/Sentry.Azure.Functions.Worker.Tests/BindableSentryAzureFunctionsOptionsTests.cs deleted file mode 100644 index 2f061b45e2..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/BindableSentryAzureFunctionsOptionsTests.cs +++ /dev/null @@ -1,30 +0,0 @@ -#if NET8_0_OR_GREATER -using Microsoft.Extensions.Configuration; - -namespace Sentry.Azure.Functions.Worker.Tests; - -public class BindableSentryAzureFunctionsOptionsTests : BindableTests -{ - [Fact] - public void BindableProperties_MatchOptionsProperties() - { - var actual = GetPropertyNames(); - AssertContainsAllOptionsProperties(actual); - } - - [Fact] - public void ApplyTo_SetsOptionsFromConfig() - { - // Arrange - var actual = new SentryAzureFunctionsOptions(); - var bindable = new BindableSentryAzureFunctionsOptions(); - - // Act - Fixture.Config.Bind(bindable); - bindable.ApplyTo(actual); - - // Assert - AssertContainsExpectedPropertyValues(actual); - } -} -#endif diff --git a/test/Sentry.Azure.Functions.Worker.Tests/Sentry.Azure.Functions.Worker.Tests.csproj b/test/Sentry.Azure.Functions.Worker.Tests/Sentry.Azure.Functions.Worker.Tests.csproj deleted file mode 100644 index 7e2f3e1603..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/Sentry.Azure.Functions.Worker.Tests.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - $(CurrentTfms) - - $(TargetFrameworks);net48 - - - - - - - - diff --git a/test/Sentry.Azure.Functions.Worker.Tests/SentryFunctionsWorkerMiddlewareTests.cs b/test/Sentry.Azure.Functions.Worker.Tests/SentryFunctionsWorkerMiddlewareTests.cs deleted file mode 100644 index 2408e00d1a..0000000000 --- a/test/Sentry.Azure.Functions.Worker.Tests/SentryFunctionsWorkerMiddlewareTests.cs +++ /dev/null @@ -1,140 +0,0 @@ -using Microsoft.Azure.Functions.Worker; -using Microsoft.Azure.Functions.Worker.Http; - -namespace Sentry.Azure.Functions.Worker.Tests; - -public class SentryFunctionsWorkerMiddlewareTests -{ - private class Fixture - { - public IHub Hub { get; set; } - public IInternalScopeManager ScopeManager { get; } - public SentryTransaction Transaction { get; set; } - - public Fixture() - { - var options = new SentryOptions - { - Dsn = ValidDsn, - TracesSampleRate = 1.0, - }; - - var client = Substitute.For(); - var sessionManager = Substitute.For(); - - client.When(x => x.CaptureTransaction(Arg.Any(), Arg.Any(), Arg.Any())) - .Do(callback => Transaction = callback.Arg()); - - ScopeManager = new SentryScopeManager(options, client); - Hub = new Hub(options, client, sessionManager, new MockClock(), ScopeManager); - } - - public SentryFunctionsWorkerMiddleware GetSut() => new(Hub); - } - - private readonly Fixture _fixture = new(); - - [Function(nameof(ThrowingHttpFunction))] - private Task ThrowingHttpFunction([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req, - FunctionContext executionContext) - { - throw new Exception("Kaboom, Riko!"); - } - - [Function(nameof(HttpFunction))] - private Task HttpFunction([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req, - FunctionContext executionContext) - { - return Task.FromResult(Substitute.For(executionContext)); - } - - [Fact] - public async Task Original_exception_rethrown() - { - var functionContext = Substitute.For(); - var expected = "Kaboom, Riko!"; - Task FunctionExecutionDelegate(FunctionContext context) => ThrowingHttpFunction(null, context); - - var sut = _fixture.GetSut(); - - var actual = await Assert.ThrowsAsync(async () => await sut.Invoke(functionContext, FunctionExecutionDelegate)); - - actual.Message.Should().Be(expected); - } - - [Fact] - public async Task Transaction_PropertiesAreSet() - { - // Arrange - var functionContext = Substitute.For(); - var functionDefinition = Substitute.For(); - functionContext.FunctionDefinition.Returns(functionDefinition); - functionDefinition.Name.Returns(nameof(HttpFunction)); - - var sut = _fixture.GetSut(); - - // Act - await sut.Invoke(functionContext, context => HttpFunction(null, context)); - - // Assert - var transaction = _fixture.Transaction; - transaction.Should().NotBeNull(); - transaction.Name.Should().Be(functionDefinition.Name); - transaction.Operation.Should().Be("function"); - transaction.Origin.Should().Be(SentryFunctionsWorkerMiddleware.AzureFunctionsOrigin); - } - - [Fact] - public async Task Tags_set() - { - var functionContext = Substitute.For(); - var functionDefinition = Substitute.For(); - functionContext.FunctionDefinition.Returns(functionDefinition); - functionDefinition.Name.Returns(nameof(HttpFunction)); - - var sut = _fixture.GetSut(); - - await sut.Invoke(functionContext, context => HttpFunction(null, context)); - - var scope = _fixture.ScopeManager.GetCurrent().Key; - var context = scope.Contexts["function"].As>(); - - context.Should().NotBeNull(); - context.Count.Should().Be(3); - context["name"].Should().Be(functionDefinition.Name); - context["entryPoint"].Should().Be(functionDefinition.EntryPoint); - context["invocationId"].Should().Be(functionContext.InvocationId); - } - - [Fact] - public async Task Unhandled_exception_sets_mechanism() - { - var functionContext = Substitute.For(); - - var sut = _fixture.GetSut(); - - var actual = await Assert.ThrowsAsync(async () => await sut.Invoke(functionContext, context => ThrowingHttpFunction(null, context))); - - actual.Data[Mechanism.MechanismKey].Should().Be(nameof(SentryFunctionsWorkerMiddleware)); - actual.Data[Mechanism.HandledKey].Should().Be(false); - actual.Data[Mechanism.DescriptionKey].Should().NotBeNull(); - } - - [Fact] - public async Task Skips_function_invocation_when_cancellation_requested() - { - var functionContext = Substitute.For(); - functionContext.CancellationToken.Returns(new CancellationToken(canceled: true)); - var functionInvoked = false; - - var sut = _fixture.GetSut(); - - _ = await Assert.ThrowsAsync(() => sut.Invoke(functionContext, _ => - { - functionInvoked = true; - return Task.CompletedTask; - })); - - functionInvoked.Should().BeFalse(); - } -} diff --git a/test/Sentry.Testing/Sentry.Testing.csproj b/test/Sentry.Testing/Sentry.Testing.csproj index ef007c56b8..4a5c86e2bd 100644 --- a/test/Sentry.Testing/Sentry.Testing.csproj +++ b/test/Sentry.Testing/Sentry.Testing.csproj @@ -14,7 +14,6 @@ - diff --git a/test/Sentry.TrimTest/Sentry.TrimTest.csproj b/test/Sentry.TrimTest/Sentry.TrimTest.csproj index 5b671fa03e..4a525274ef 100644 --- a/test/Sentry.TrimTest/Sentry.TrimTest.csproj +++ b/test/Sentry.TrimTest/Sentry.TrimTest.csproj @@ -39,7 +39,6 @@ -