diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 7e6723ea8d..08fb886c80 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -26,9 +26,9 @@ updates:
# Update a specific set of packages for unit and integration tests
- package-ecosystem: nuget
- directories:
- - /tests/Agent/IntegrationTests
- - /
+ directories: # not recursive - only the specified directory will be scanned for .csproj or .sln files
+ - /tests/Agent/IntegrationTests # will pick up container, integration and unbounded test solutions
+ - / # will pick up FullAgent.sln which contains the unit tests
schedule:
interval: weekly
groups:
@@ -44,3 +44,5 @@ updates:
- dependency-name: "NUnit*"
- dependency-name: "Selenium*"
- dependency-name: "xunit*"
+ - dependency-name: "PublicApiGenerator"
+ - dependency-name: "Verify.NUnit"
diff --git a/.github/workflows/all_solutions.yml b/.github/workflows/all_solutions.yml
index 133bcd085c..91b5ffcc09 100644
--- a/.github/workflows/all_solutions.yml
+++ b/.github/workflows/all_solutions.yml
@@ -71,7 +71,7 @@ jobs:
shell: powershell
- name: Archive FullAgent Home folders
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: homefolders
path: |
@@ -115,7 +115,7 @@ jobs:
shell: powershell
- name: Archive msi _build Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: msi-build-folder-artifacts
path: ${{ github.workspace }}\src\_build
@@ -160,7 +160,7 @@ jobs:
shell: powershell
- name: Archive Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: integrationtests
path: |
@@ -198,7 +198,7 @@ jobs:
shell: powershell
- name: Archive Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: unboundedintegrationtests
path: |
@@ -276,7 +276,7 @@ jobs:
env:
integration_tests_shared_project: ${{ github.workspace }}/tests/Agent/IntegrationTests/Shared
- integration_tests_path: ${{ github.workspace }}/tests/Agent/IntegrationTests/IntegrationTests/bin/Release/net462
+ integration_tests_path: ${{ github.workspace }}/tests/Agent/IntegrationTests/IntegrationTests/bin/Release/net481
# Make this variable true to enable extra data-gathering and logging to help troubleshoot test failures, at the cost of additional time and resources
enhanced_logging: false
NR_DOTNET_TEST_SAVE_WORKING_DIRECTORY: 1
@@ -327,9 +327,24 @@ jobs:
name: integrationtests
# Should not need a path because the integration test artifacts are archived with the full directory structure
- - name: Install dependencies
+ - name: Install HostableWebCore Feature
+ if: | # only install for the required namespaces
+ matrix.namespace == 'AgentFeatures' || matrix.namespace == 'AgentLogs' || matrix.namespace == 'AgentMetrics' || matrix.namespace == 'BasicInstrumentation' ||
+ matrix.namespace == 'CatInbound' || matrix.namespace == 'CatOutbound' || matrix.namespace == 'CodeLevelMetrics' || matrix.namespace == 'CSP' ||
+ matrix.namespace == 'CustomAttributes' || matrix.namespace == 'CustomInstrumentation' || matrix.namespace == 'DataTransmission' ||
+ matrix.namespace == 'DistributedTracing' || matrix.namespace == 'Errors' || matrix.namespace == 'HttpClientInstrumentation' ||
+ matrix.namespace == 'Rejit.NetFramework' || matrix.namespace == 'RequestHandling' || matrix.namespace == 'RequestHeadersCapture.AspNet' ||
+ matrix.namespace == 'RequestHeadersCapture.AspNetCore' || matrix.namespace == 'RequestHeadersCapture.EnvironmentVariables' ||
+ matrix.namespace == 'RequestHeadersCapture.WCF' || matrix.namespace == 'WCF.Client.IIS.ASPDisabled' ||
+ matrix.namespace == 'WCF.Client.IIS.ASPEnabled' || matrix.namespace == 'WCF.Service.IIS.ASPDisabled' ||
+ matrix.namespace == 'WCF.Service.IIS.ASPEnabled'
run: |
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HostableWebCore
+ shell: powershell
+
+ - name: Install aiohttp
+ if: matrix.namespace == 'DistributedTracing'
+ run: |
pip install aiohttp
shell: powershell
@@ -371,7 +386,7 @@ jobs:
- name: Archive integration test results on failure
if: ${{ failure() }}
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: integration-test-results-${{ matrix.namespace }}
path: |
@@ -406,7 +421,7 @@ jobs:
env:
integration_tests_shared_project: ${{ github.workspace }}/tests/Agent/IntegrationTests/Shared
- unbounded_tests_path: ${{ github.workspace }}/tests/Agent/IntegrationTests/UnboundedIntegrationTests/bin/Release/net462
+ unbounded_tests_path: ${{ github.workspace }}/tests/Agent/IntegrationTests/UnboundedIntegrationTests/bin/Release/net481
NR_DOTNET_TEST_SAVE_WORKING_DIRECTORY: 1
# Make this variable true to enable extra data-gathering and logging to help troubleshoot test failures, at the cost of additional time and resources
enhanced_logging: false
@@ -443,23 +458,28 @@ jobs:
New-ItemProperty -Path $registryPath -Name "Enabled" -Value "0" -PropertyType DWORD -Force
shell: powershell
- - name: Install dependencies
+ - name: Install HostableWebCore Feature
+ if: | # only install for the required namespaces
+ matrix.namespace == 'Couchbase' || matrix.namespace == 'MongoDB' || matrix.namespace == 'MsSql' || matrix.namespace == 'Oracle'
run: |
- Write-Host "Installing HostableWebCore Feature"
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HostableWebCore
-
- if ("${{ matrix.namespace }}" -eq "Msmq") {
- Write-Host "Installing Msmq Features"
- Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Server -All
- Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-HTTP -All
- Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Triggers -All
- }
+ shell: powershell
- if ("${{ matrix.namespace }}" -eq "MsSql") {
- Write-Host "Installing MSSQL CLI"
- msiexec /i "${{ github.workspace }}\build\Tools\sqlncli.msi" IACCEPTSQLNCLILICENSETERMS=YES /quiet /qn /norestart
- Start-Sleep 20 # Need to wait for install to finish -- takes only a few seconds, but we need to be sure.
- }
+ - name: Install MSMQ dependencies
+ if: matrix.namespace == 'Msmq'
+ run: |
+ Write-Host "Installing Msmq Features"
+ Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Server -All
+ Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-HTTP -All
+ Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Triggers -All
+ shell: powershell
+
+ - name: Install MsSql dependencies
+ if: matrix.namespace == 'MsSql'
+ run: |
+ Write-Host "Installing MSSQL CLI"
+ msiexec /i "${{ github.workspace }}\build\Tools\sqlncli.msi" IACCEPTSQLNCLILICENSETERMS=YES /quiet /qn /norestart
+ Start-Sleep 20 # Need to wait for install to finish -- takes only a few seconds, but we need to be sure.
shell: powershell
- name: Set up secrets
@@ -503,7 +523,7 @@ jobs:
- name: Archive unbounded test results on failure
if: ${{ failure() }}
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: unbounded-test-working-directory-${{ matrix.namespace }}
path: |
@@ -519,7 +539,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -573,7 +593,7 @@ jobs:
shell: bash
- name: Archive RPM Package Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: rpm-build-artifacts
path: ${{ github.workspace }}/src/_build/CoreArtifacts
@@ -586,7 +606,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -626,7 +646,7 @@ jobs:
shell: bash
- name: Archive Debian Package Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: debian-build-artifacts
path: ${{ github.workspace }}/src/_build/CoreArtifacts
@@ -681,7 +701,7 @@ jobs:
shell: powershell
- name: Archive Deploy Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: deploy-artifacts
path: |
@@ -697,7 +717,7 @@ jobs:
if: always()
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/assignproj.yml b/.github/workflows/assignproj.yml
index 19473cdcb3..f9a09c5f5b 100644
--- a/.github/workflows/assignproj.yml
+++ b/.github/workflows/assignproj.yml
@@ -16,7 +16,7 @@ jobs:
name: Assign to One Project
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/build_profiler.yml b/.github/workflows/build_profiler.yml
index 7633f4bde6..2d799a9ba2 100644
--- a/.github/workflows/build_profiler.yml
+++ b/.github/workflows/build_profiler.yml
@@ -116,14 +116,14 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Archive Build Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: profiler-windows
path: ${{ github.workspace }}\src\Agent\_profilerBuild\**\*
if-no-files-found: error
- name: Archive Code Coverage Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: profiler-code-coverage
path: |
@@ -176,7 +176,7 @@ jobs:
shell: bash
- name: Archive Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: profiler-amd64
path: ${{ github.workspace }}/src/Agent/_profilerBuild/
@@ -194,7 +194,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
@@ -248,7 +248,7 @@ jobs:
shell: bash
- name: Archive Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: profiler-arm64
path: ${{ github.workspace }}/src/Agent/_profilerBuild/
@@ -348,7 +348,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
@@ -371,7 +371,7 @@ jobs:
rm -f ${{ github.workspace }}/src/Agent/NewRelic/Home/_temp
- name: Create Pull Request
- uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
+ uses: peter-evans/create-pull-request@d121e62763d8cc35b5fb1710e887d6e69a52d3a4 # v7.0.2
with:
commit-message: "chore: Update Profiler NuGet Package Reference to v${{ needs.package-and-deploy.outputs.package_version }}."
title: "chore: Update Profiler NuGet Package Reference to v${{ needs.package-and-deploy.outputs.package_version }}"
diff --git a/.github/workflows/check_modified_files.yml b/.github/workflows/check_modified_files.yml
index e263ed4c34..0aa100743e 100644
--- a/.github/workflows/check_modified_files.yml
+++ b/.github/workflows/check_modified_files.yml
@@ -22,7 +22,7 @@ jobs:
non-workflow-files-changed: ${{ steps.filter.outputs.non-workflow-files-changed }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 725b5c7230..982b73ada4 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -49,7 +49,7 @@ jobs:
fetch-depth: 0
- name: Initialize CodeQL
- uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
+ uses: github/codeql-action/init@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
languages: csharp
@@ -59,7 +59,7 @@ jobs:
shell: powershell
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
+ uses: github/codeql-action/analyze@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
category: "/language:csharp"
@@ -84,7 +84,7 @@ jobs:
fetch-depth: 0
- name: Initialize CodeQL
- uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
+ uses: github/codeql-action/init@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
languages: c-cpp
@@ -100,6 +100,6 @@ jobs:
shell: powershell
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
+ uses: github/codeql-action/analyze@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
category: "/language:c-cpp"
diff --git a/.github/workflows/deploy_agent.yml b/.github/workflows/deploy_agent.yml
index 49956933fe..15fb3b3b86 100644
--- a/.github/workflows/deploy_agent.yml
+++ b/.github/workflows/deploy_agent.yml
@@ -61,7 +61,7 @@ jobs:
workflow_run_id: ${{ steps.step2.outputs.workflow_run_id }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -155,7 +155,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -170,7 +170,7 @@ jobs:
repository: ${{ github.repository }}
- name: Upload Deploy Artifacts Locally
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: deploy-artifacts
path: ${{ github.workspace }}
@@ -350,7 +350,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
diff --git a/.github/workflows/markdowncheck.yml b/.github/workflows/markdowncheck.yml
index 9350b05a37..dd0fdd77a2 100644
--- a/.github/workflows/markdowncheck.yml
+++ b/.github/workflows/markdowncheck.yml
@@ -22,7 +22,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit # Leave it audit mode
diff --git a/.github/workflows/multiverse_run.yml b/.github/workflows/multiverse_run.yml
index ab1392e909..3263fdf064 100644
--- a/.github/workflows/multiverse_run.yml
+++ b/.github/workflows/multiverse_run.yml
@@ -36,7 +36,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
@@ -73,7 +73,7 @@ jobs:
shell: bash
- name: Upload MVS
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: mvs
path: |
@@ -102,7 +102,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
@@ -131,7 +131,7 @@ jobs:
shell: bash
- name: Deploy 🚀
- uses: JamesIves/github-pages-deploy-action@94f3c658273cf92fb48ef99e5fbc02bd2dc642b2 # 4.6.3
+ uses: JamesIves/github-pages-deploy-action@920cbb300dcd3f0568dbc42700c61e2fd9e6139c # 4.6.4
with:
branch: gh-pages
folder: .
diff --git a/.github/workflows/nuget_slack_notifications.yml b/.github/workflows/nuget_slack_notifications.yml
index eebf9f2c65..49929b5cf7 100644
--- a/.github/workflows/nuget_slack_notifications.yml
+++ b/.github/workflows/nuget_slack_notifications.yml
@@ -34,7 +34,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit # Leave it audit mode
diff --git a/.github/workflows/post_deploy_agent.yml b/.github/workflows/post_deploy_agent.yml
index 334d0e402d..4abf4e784a 100644
--- a/.github/workflows/post_deploy_agent.yml
+++ b/.github/workflows/post_deploy_agent.yml
@@ -45,7 +45,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: false
egress-policy: audit
@@ -78,7 +78,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -119,7 +119,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -143,7 +143,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -171,7 +171,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/publish_release_notes.yml b/.github/workflows/publish_release_notes.yml
index 6fb69c6533..e03f349f0b 100644
--- a/.github/workflows/publish_release_notes.yml
+++ b/.github/workflows/publish_release_notes.yml
@@ -35,7 +35,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
index 4088e55c7b..a8a539d393 100644
--- a/.github/workflows/release-please.yml
+++ b/.github/workflows/release-please.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/repolinter.yml b/.github/workflows/repolinter.yml
index a4c86a13f2..b468815046 100644
--- a/.github/workflows/repolinter.yml
+++ b/.github/workflows/repolinter.yml
@@ -31,7 +31,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml
index 66927cf4a9..f84d2a8283 100644
--- a/.github/workflows/run_integration_tests.yml
+++ b/.github/workflows/run_integration_tests.yml
@@ -44,7 +44,7 @@ jobs:
unbounded-tests-matrix: ${{ steps.configure_unbounded_tests_matrix.outputs.matrix }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
@@ -190,7 +190,7 @@ jobs:
- name: Archive integration test results on failure
if: ${{ failure() }}
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: integration-test-working-directory-${{ matrix.namespace }}
path: |
@@ -313,7 +313,7 @@ jobs:
- name: Archive unbounded test results on failure
if: ${{ failure() }}
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: unbounded-test-working-directory-${{ matrix.namespace }}
path: |
diff --git a/.github/workflows/run_linux_container_tests.yml b/.github/workflows/run_linux_container_tests.yml
index 24467fade0..d34db1dcc3 100644
--- a/.github/workflows/run_linux_container_tests.yml
+++ b/.github/workflows/run_linux_container_tests.yml
@@ -42,7 +42,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
diff --git a/.github/workflows/run_unit_tests.yml b/.github/workflows/run_unit_tests.yml
index 005c214958..48633b694f 100644
--- a/.github/workflows/run_unit_tests.yml
+++ b/.github/workflows/run_unit_tests.yml
@@ -61,7 +61,7 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage report artifact
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: UnitTestResults # Artifact name
path: ${{ env.test_results_path }} # Directory containing files to upload
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index a22a9043c1..87b072e130 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -32,7 +32,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
@@ -65,7 +65,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: SARIF file
path: results.sarif
@@ -73,6 +73,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
+ uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
sarif_file: results.sarif
diff --git a/.github/workflows/scripts/nugetSlackNotifications/nugetSlackNotifications.csproj b/.github/workflows/scripts/nugetSlackNotifications/nugetSlackNotifications.csproj
index 616e8787bd..f3d1ba2e99 100644
--- a/.github/workflows/scripts/nugetSlackNotifications/nugetSlackNotifications.csproj
+++ b/.github/workflows/scripts/nugetSlackNotifications/nugetSlackNotifications.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/.github/workflows/set_community_label.yml b/.github/workflows/set_community_label.yml
index dd1f6991e5..217686be11 100644
--- a/.github/workflows/set_community_label.yml
+++ b/.github/workflows/set_community_label.yml
@@ -15,7 +15,7 @@ jobs:
issues: write
steps:
- name: Harden Runner
- uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
+ uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
disable-sudo: true
egress-policy: audit
diff --git a/.github/workflows/siteextension_release.yml b/.github/workflows/siteextension_release.yml
index 9b414a2e70..44e208480c 100644
--- a/.github/workflows/siteextension_release.yml
+++ b/.github/workflows/siteextension_release.yml
@@ -55,7 +55,7 @@ jobs:
shell: powershell
- name: Archive Deploy Artifacts
- uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: deploy-artifacts
path: |
diff --git a/FullAgent.sln b/FullAgent.sln
index cf4ba9b901..9878ae537e 100644
--- a/FullAgent.sln
+++ b/FullAgent.sln
@@ -217,6 +217,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AwsSdk", "src\Agent\NewReli
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureFunction", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\AzureFunction\AzureFunction.csproj", "{338AD83A-ED68-438A-8FB1-E93A3AE87EA8}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PublicApiChangeTests", "tests\Agent\UnitTests\PublicApiChangeTests\PublicApiChangeTests.csproj", "{A8F6EFEA-1C31-4461-A7B4-25C30D954EE2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -455,6 +457,10 @@ Global
{338AD83A-ED68-438A-8FB1-E93A3AE87EA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{338AD83A-ED68-438A-8FB1-E93A3AE87EA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{338AD83A-ED68-438A-8FB1-E93A3AE87EA8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A8F6EFEA-1C31-4461-A7B4-25C30D954EE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8F6EFEA-1C31-4461-A7B4-25C30D954EE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8F6EFEA-1C31-4461-A7B4-25C30D954EE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A8F6EFEA-1C31-4461-A7B4-25C30D954EE2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -524,6 +530,7 @@ Global
{DC3E4801-A54A-42A4-AC45-DBD2F0CAE438} = {E5B988C0-5D19-407E-8210-71FFB90C579A}
{37262C22-6A3A-4AD7-AB78-3853D2B2931D} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
{338AD83A-ED68-438A-8FB1-E93A3AE87EA8} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
+ {A8F6EFEA-1C31-4461-A7B4-25C30D954EE2} = {E5B988C0-5D19-407E-8210-71FFB90C579A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D8B98070-6B8E-403C-A07F-A3F2E4A3A3D0}
diff --git a/build/NugetValidator/NugetValidator.csproj b/build/NugetValidator/NugetValidator.csproj
index 0a48809d5a..0c6db9842f 100644
--- a/build/NugetValidator/NugetValidator.csproj
+++ b/build/NugetValidator/NugetValidator.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/build/NugetVersionDeprecator/NugetVersionDeprecator.csproj b/build/NugetVersionDeprecator/NugetVersionDeprecator.csproj
index 64bfe4781f..f5625c8e4d 100644
--- a/build/NugetVersionDeprecator/NugetVersionDeprecator.csproj
+++ b/build/NugetVersionDeprecator/NugetVersionDeprecator.csproj
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/build/ReleaseNotesBuilder/ReleaseNotesBuilder.csproj b/build/ReleaseNotesBuilder/ReleaseNotesBuilder.csproj
index 73b99f6d15..204b008643 100644
--- a/build/ReleaseNotesBuilder/ReleaseNotesBuilder.csproj
+++ b/build/ReleaseNotesBuilder/ReleaseNotesBuilder.csproj
@@ -19,7 +19,7 @@
-
+
\ No newline at end of file
diff --git a/build/S3Validator/S3Validator.csproj b/build/S3Validator/S3Validator.csproj
index f8d90ae114..b01b3752c5 100644
--- a/build/S3Validator/S3Validator.csproj
+++ b/build/S3Validator/S3Validator.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/release-please/.release-please-manifest.json b/release-please/.release-please-manifest.json
index a9a6e730cc..9ef1ddb2d2 100644
--- a/release-please/.release-please-manifest.json
+++ b/release-please/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "10.29.0"
+ ".": "10.30.0"
}
\ No newline at end of file
diff --git a/src/Agent/CHANGELOG.md b/src/Agent/CHANGELOG.md
index a97b9729f3..ce56c2ac10 100644
--- a/src/Agent/CHANGELOG.md
+++ b/src/Agent/CHANGELOG.md
@@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [10.30.0](https://github.com/newrelic/newrelic-dotnet-agent/compare/v10.29.0...v10.30.0) (2024-09-11)
+
+
+### New features
+
+* Oracle instrumentation now supports latest version ([#2721](https://github.com/newrelic/newrelic-dotnet-agent/issues/2721)) ([50cb663](https://github.com/newrelic/newrelic-dotnet-agent/commit/50cb663957ccfcfd55d104a7f54755100bfa46cc))
+* Preview support for instrumentation of "isolated" model Azure Functions. Instrumentation is disabled by default. Please reach out to your account team if you would like to try this new feature. ([d8a79e5](https://github.com/newrelic/newrelic-dotnet-agent/commit/d8a79e51683225e9b574efc8d1b154b2a4b9eadc))
+
+
+### Fixes
+
+* Preserve custom query name even if statement can't be parsed. ([#2708](https://github.com/newrelic/newrelic-dotnet-agent/issues/2708)) ([#2709](https://github.com/newrelic/newrelic-dotnet-agent/issues/2709)) ([3ab0cb4](https://github.com/newrelic/newrelic-dotnet-agent/commit/3ab0cb4f36d3f5fa07d4003b930917e533c7cba2))
+
## [10.29.0](https://github.com/newrelic/newrelic-dotnet-agent/compare/v10.28.0...v10.29.0) (2024-08-20)
diff --git a/src/Agent/NewRelic/Agent/Core/Core.csproj b/src/Agent/NewRelic/Agent/Core/Core.csproj
index 1130062399..30e3f4dea7 100644
--- a/src/Agent/NewRelic/Agent/Core/Core.csproj
+++ b/src/Agent/NewRelic/Agent/Core/Core.csproj
@@ -38,7 +38,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Agent/NewRelic/Agent/Core/DataTransport/ConnectionManager.cs b/src/Agent/NewRelic/Agent/Core/DataTransport/ConnectionManager.cs
index d1cffe1fa6..137533ac87 100644
--- a/src/Agent/NewRelic/Agent/Core/DataTransport/ConnectionManager.cs
+++ b/src/Agent/NewRelic/Agent/Core/DataTransport/ConnectionManager.cs
@@ -10,7 +10,9 @@
using System.IO;
using System.Linq;
using System.Net;
+#if !NETFRAMEWORK
using System.Net.Http;
+#endif
using System.Net.Sockets;
namespace NewRelic.Agent.Core.DataTransport
@@ -107,12 +109,14 @@ private void Connect()
{
HandleHttpErrorResponse(ex);
}
+#if !NETFRAMEWORK // Only available in System.Net.Http
// Occurs when the agent is unable to connect to APM. The request failed due to an underlying
// issue such as network connectivity, DNS failure, server certificate validation or timeout.
catch (HttpRequestException)
{
ScheduleRestart();
}
+#endif
// Occurs when the agent connects to APM but the connection gets aborted by the collector
catch (SocketException)
{
@@ -168,7 +172,7 @@ public T SendDataRequest(string method, params object[] data)
}
}
- #endregion Synchronized methods
+#endregion Synchronized methods
#region Helper methods
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/Instrumentation.xml b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/Instrumentation.xml
index 9716842fa3..ddc787d2e4 100644
--- a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/Instrumentation.xml
+++ b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/Instrumentation.xml
@@ -18,7 +18,7 @@ SPDX-License-Identifier: Apache-2.0
-
+
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/InvokeFunctionAsyncWrapper.cs b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/InvokeFunctionAsyncWrapper.cs
index d693132792..cb766d91b0 100644
--- a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/InvokeFunctionAsyncWrapper.cs
+++ b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/AzureFunction/InvokeFunctionAsyncWrapper.cs
@@ -72,7 +72,7 @@ public AfterWrappedMethodDelegate BeforeWrappedMethod(InstrumentedMethodCall ins
if (IsColdStart) // only report this attribute if it's a cold start
{
- transaction.AddFaasAttribute("faas.coldStart", "true");
+ transaction.AddFaasAttribute("faas.coldStart", true);
}
transaction.AddFaasAttribute("cloud.resource_id", agent.Configuration.AzureFunctionResourceIdWithFunctionName(functionDetails.FunctionName));
@@ -126,7 +126,7 @@ void InvokeFunctionAsyncResponse(Task responseTask)
{
agent.Logger.Debug($"Unexpected Azure Function invocationResult.Value type '{resultTypeName ?? "(null)"}' - unable to set http response status code.");
}
- }
+ }
}
catch (Exception ex)
@@ -313,4 +313,5 @@ public bool IsValid()
public string RequestMethod { get; private set; }
public string RequestPath { get; private set; }
}
+
}
diff --git a/tests/Agent/Benchmarking/Benchmarking/Benchmarking.csproj b/tests/Agent/Benchmarking/Benchmarking/Benchmarking.csproj
index b8e9e5b4ac..3c0538702a 100644
--- a/tests/Agent/Benchmarking/Benchmarking/Benchmarking.csproj
+++ b/tests/Agent/Benchmarking/Benchmarking/Benchmarking.csproj
@@ -1,6 +1,6 @@
- net462
+ net481
Benchmarking
Benchmarking
diff --git a/tests/Agent/Benchmarking/BenchmarkingTests/BenchmarkingTests.csproj b/tests/Agent/Benchmarking/BenchmarkingTests/BenchmarkingTests.csproj
index 8a507e7c50..cf78b2923c 100644
--- a/tests/Agent/Benchmarking/BenchmarkingTests/BenchmarkingTests.csproj
+++ b/tests/Agent/Benchmarking/BenchmarkingTests/BenchmarkingTests.csproj
@@ -1,6 +1,6 @@
- net462
+ net481
BenchmarkingTests
NewRelic.Agent.Core.BenchmarkingTests
Full
@@ -13,11 +13,11 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Agent/Benchmarking/ConcurrentBenchmarking/ConcurrentBenchmarking.csproj b/tests/Agent/Benchmarking/ConcurrentBenchmarking/ConcurrentBenchmarking.csproj
index 60b4973495..32abd50a1a 100644
--- a/tests/Agent/Benchmarking/ConcurrentBenchmarking/ConcurrentBenchmarking.csproj
+++ b/tests/Agent/Benchmarking/ConcurrentBenchmarking/ConcurrentBenchmarking.csproj
@@ -1,6 +1,6 @@
- net462
+ net481
ConcurrentBenchmarking
ConcurrentBenchmarking
diff --git a/tests/Agent/IntegrationTests/ContainerApplications/AwsSdkTestApp/AwsSdkTestApp.csproj b/tests/Agent/IntegrationTests/ContainerApplications/AwsSdkTestApp/AwsSdkTestApp.csproj
index 63966f6cad..c3d95f261e 100644
--- a/tests/Agent/IntegrationTests/ContainerApplications/AwsSdkTestApp/AwsSdkTestApp.csproj
+++ b/tests/Agent/IntegrationTests/ContainerApplications/AwsSdkTestApp/AwsSdkTestApp.csproj
@@ -14,7 +14,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/tests/Agent/IntegrationTests/ContainerApplications/KafkaTestApp/KafkaTestApp.csproj b/tests/Agent/IntegrationTests/ContainerApplications/KafkaTestApp/KafkaTestApp.csproj
index 5705deb168..8de6a4e504 100644
--- a/tests/Agent/IntegrationTests/ContainerApplications/KafkaTestApp/KafkaTestApp.csproj
+++ b/tests/Agent/IntegrationTests/ContainerApplications/KafkaTestApp/KafkaTestApp.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionHttpTriggerTests.cs b/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionHttpTriggerTests.cs
index 1423dd5f03..0ef72db77f 100644
--- a/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionHttpTriggerTests.cs
+++ b/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionHttpTriggerTests.cs
@@ -73,9 +73,9 @@ public void Test()
{ "request.uri", "/Unknown"}
};
- var transactionTraceExpectedAttributes = new Dictionary()
+ var transactionTraceExpectedAttributes = new Dictionary()
{
- { "faas.coldStart", "true"},
+ { "faas.coldStart", true},
//new("faas.invocation_id", "test_invocation_id"), This one is a random guid, not something we can specifically look for
{ "faas.name", "HttpTriggerFunctionUsingAspNetCorePipeline" },
{ "faas.trigger", "http" },
diff --git a/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionQueueTriggerTests.cs b/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionQueueTriggerTests.cs
index a0456a9be9..ea3582ee2c 100644
--- a/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionQueueTriggerTests.cs
+++ b/tests/Agent/IntegrationTests/IntegrationTests/AzureFunction/AzureFunctionQueueTriggerTests.cs
@@ -54,9 +54,9 @@ public void Test()
"cloud.resource_id"
};
- var transactionTraceExpectedAttributes = new Dictionary()
+ var transactionTraceExpectedAttributes = new Dictionary()
{
- { "faas.coldStart", "true"},
+ { "faas.coldStart", true},
//new("faas.invocation_id", "test_invocation_id"), This one is a random guid, not something we can specifically look for
{ "faas.name", "QueueTriggerFunction" },
{ "faas.trigger", "datasource" },
diff --git a/tests/Agent/IntegrationTests/IntegrationTests/IntegrationTests.csproj b/tests/Agent/IntegrationTests/IntegrationTests/IntegrationTests.csproj
index c56635fb50..00850a046d 100644
--- a/tests/Agent/IntegrationTests/IntegrationTests/IntegrationTests.csproj
+++ b/tests/Agent/IntegrationTests/IntegrationTests/IntegrationTests.csproj
@@ -2,9 +2,9 @@
NewRelic.Agent.IntegrationTests
NewRelic.Agent.IntegrationTests
- net462;net8.0
+ net481;net8.0
-
+
true
@@ -55,12 +55,14 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
+
diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MFALatestPackages/MFALatestPackages.csproj b/tests/Agent/IntegrationTests/SharedApplications/Common/MFALatestPackages/MFALatestPackages.csproj
index 4030e7399a..06cff0f3de 100644
--- a/tests/Agent/IntegrationTests/SharedApplications/Common/MFALatestPackages/MFALatestPackages.csproj
+++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MFALatestPackages/MFALatestPackages.csproj
@@ -5,8 +5,8 @@
-
-
+
+
@@ -92,8 +92,8 @@
-
-
+
+
diff --git a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj
index 8448342933..97828d7c21 100644
--- a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj
+++ b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj
@@ -2,7 +2,7 @@
NewRelic.Agent.UnboundedIntegrationTests
NewRelic.Agent.UnboundedIntegrationTests
- net462
+ net481
{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages
diff --git a/tests/Agent/NewRelic.Testing.Assertions/NewRelic.Testing.Assertions.csproj b/tests/Agent/NewRelic.Testing.Assertions/NewRelic.Testing.Assertions.csproj
index ae20e7b7c4..1ca4549f2f 100644
--- a/tests/Agent/NewRelic.Testing.Assertions/NewRelic.Testing.Assertions.csproj
+++ b/tests/Agent/NewRelic.Testing.Assertions/NewRelic.Testing.Assertions.csproj
@@ -1,13 +1,13 @@
- net462;net8.0
+ net481;net8.0
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Agent/Shared/TestSerializationHelpers.Test/TestSerializationHelpers.Test.csproj b/tests/Agent/Shared/TestSerializationHelpers.Test/TestSerializationHelpers.Test.csproj
index 8b023f08e8..536d1c1169 100644
--- a/tests/Agent/Shared/TestSerializationHelpers.Test/TestSerializationHelpers.Test.csproj
+++ b/tests/Agent/Shared/TestSerializationHelpers.Test/TestSerializationHelpers.Test.csproj
@@ -1,12 +1,12 @@
- net462;net8.0
+ net481;net8.0
NewRelic.Agent.Tests.TestSerializationHelpers.Tests
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Agent/UnitTests/AsyncLocalTests/AsyncLocalTests.csproj b/tests/Agent/UnitTests/AsyncLocalTests/AsyncLocalTests.csproj
index cd447eaed3..f81d9fb6a7 100644
--- a/tests/Agent/UnitTests/AsyncLocalTests/AsyncLocalTests.csproj
+++ b/tests/Agent/UnitTests/AsyncLocalTests/AsyncLocalTests.csproj
@@ -1,6 +1,6 @@
- net462
+ net481
NewRelic.Providers.CallStack.AsyncLocalTests
NewRelic.Providers.CallStack.AsyncLocalTests
Full
@@ -12,9 +12,9 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Agent/UnitTests/CompositeTests/CompositeTests.csproj b/tests/Agent/UnitTests/CompositeTests/CompositeTests.csproj
index fee195c3a9..bc8eeddd63 100644
--- a/tests/Agent/UnitTests/CompositeTests/CompositeTests.csproj
+++ b/tests/Agent/UnitTests/CompositeTests/CompositeTests.csproj
@@ -1,6 +1,6 @@
- net462;net8.0
+ net481;net8.0
CompositeTests
NewRelic.Agent.Core.CompositeTests
Full
@@ -11,12 +11,12 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -29,7 +29,7 @@
-
+
diff --git a/tests/Agent/UnitTests/Core.UnitTest/Core.UnitTest.csproj b/tests/Agent/UnitTests/Core.UnitTest/Core.UnitTest.csproj
index a4b1f0696c..5d2b513605 100644
--- a/tests/Agent/UnitTests/Core.UnitTest/Core.UnitTest.csproj
+++ b/tests/Agent/UnitTests/Core.UnitTest/Core.UnitTest.csproj
@@ -1,6 +1,6 @@
- net462;net8.0
+ net481;net8.0
NewRelic.Agent.Core
NewRelic.Agent.Core.UnitTest
Full
@@ -11,11 +11,11 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -28,12 +28,13 @@
-
+
+
@@ -46,7 +47,7 @@
-
+
diff --git a/tests/Agent/UnitTests/Core.UnitTest/DataTransport/ConnectionManagerTests.cs b/tests/Agent/UnitTests/Core.UnitTest/DataTransport/ConnectionManagerTests.cs
index 368a1b3cbe..289e6028da 100644
--- a/tests/Agent/UnitTests/Core.UnitTest/DataTransport/ConnectionManagerTests.cs
+++ b/tests/Agent/UnitTests/Core.UnitTest/DataTransport/ConnectionManagerTests.cs
@@ -81,14 +81,15 @@ public void AttemptAutoStart_SchedulesConnectAsynchronously_IfAutoStartIsOnAndSy
}
}
-
[Test]
[TestCase("ForceRestartException")]
[TestCase("HttpException")]
- [TestCase("HttpRequestException")]
[TestCase("SocketException")]
[TestCase("IOException")]
[TestCase("OperationCanceledException")]
+#if !NETFRAMEWORK
+ [TestCase("HttpRequestException")]
+#endif
public void AttemptAutoStart_SchedulesReconnect_IfCertainExceptionOccurs(string execeptionType)
{
Exception ex = null;
diff --git a/tests/Agent/UnitTests/NewRelic.Agent.Extensions.Tests/NewRelic.Agent.Extensions.Tests.csproj b/tests/Agent/UnitTests/NewRelic.Agent.Extensions.Tests/NewRelic.Agent.Extensions.Tests.csproj
index 5dfbe5c599..3d02556477 100644
--- a/tests/Agent/UnitTests/NewRelic.Agent.Extensions.Tests/NewRelic.Agent.Extensions.Tests.csproj
+++ b/tests/Agent/UnitTests/NewRelic.Agent.Extensions.Tests/NewRelic.Agent.Extensions.Tests.csproj
@@ -1,6 +1,6 @@
- net462;net8.0
+ net481;net8.0
Agent.Extensions.Tests
NewRelic.Agent.Extensions.Tests
Full
@@ -11,9 +11,9 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -25,7 +25,7 @@
-
+
diff --git a/tests/Agent/UnitTests/NewRelic.Agent.TestUtilities/NewRelic.Agent.TestUtilities.csproj b/tests/Agent/UnitTests/NewRelic.Agent.TestUtilities/NewRelic.Agent.TestUtilities.csproj
index 6edf6a58c9..0b4fbc431a 100644
--- a/tests/Agent/UnitTests/NewRelic.Agent.TestUtilities/NewRelic.Agent.TestUtilities.csproj
+++ b/tests/Agent/UnitTests/NewRelic.Agent.TestUtilities/NewRelic.Agent.TestUtilities.csproj
@@ -1,6 +1,6 @@
- net462;net8.0
+ net481;net8.0
NewRelic.Agent.TestUtilities
NewRelic.Agent.TestUtilities
@@ -9,7 +9,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -21,7 +21,7 @@
-
+
diff --git a/tests/Agent/UnitTests/NewRelic.Testing.Assertions.UnitTests/NewRelic.Testing.Assertions.UnitTests.csproj b/tests/Agent/UnitTests/NewRelic.Testing.Assertions.UnitTests/NewRelic.Testing.Assertions.UnitTests.csproj
index 4db34d48a0..f1c48888ce 100644
--- a/tests/Agent/UnitTests/NewRelic.Testing.Assertions.UnitTests/NewRelic.Testing.Assertions.UnitTests.csproj
+++ b/tests/Agent/UnitTests/NewRelic.Testing.Assertions.UnitTests/NewRelic.Testing.Assertions.UnitTests.csproj
@@ -2,7 +2,7 @@
x86
{A6AE0190-AEAB-4B3A-B671-95C2D5123BF9}
- net462
+ net481
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
NewRelic.Testing.Assertions.UnitTests
NewRelic.Testing.Assertions.UnitTests
@@ -22,8 +22,8 @@
all
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiChangeTests.csproj b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiChangeTests.csproj
new file mode 100644
index 0000000000..2903b8dc92
--- /dev/null
+++ b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiChangeTests.csproj
@@ -0,0 +1,42 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.PublicApiHasNotChanged.verified.txt b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.PublicApiHasNotChanged.verified.txt
new file mode 100644
index 0000000000..73f56203c0
--- /dev/null
+++ b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.PublicApiHasNotChanged.verified.txt
@@ -0,0 +1,100 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/newrelic/dotnet-agent")]
+[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")]
+namespace NewRelic.Api.Agent
+{
+ public static class Constants
+ {
+ public const string DistributedTracePayloadKey = "Newrelic";
+ }
+ public interface IAgent
+ {
+ NewRelic.Api.Agent.ISpan CurrentSpan { get; }
+ NewRelic.Api.Agent.ITransaction CurrentTransaction { get; }
+ NewRelic.Api.Agent.ITraceMetadata TraceMetadata { get; }
+ System.Collections.Generic.Dictionary GetLinkingMetadata();
+ }
+ public interface IDistributedTracePayload
+ {
+ string HttpSafe();
+ bool IsEmpty();
+ string Text();
+ }
+ public interface ISpan
+ {
+ NewRelic.Api.Agent.ISpan AddCustomAttribute(string key, object value);
+ NewRelic.Api.Agent.ISpan SetName(string name);
+ }
+ public interface ITraceMetadata
+ {
+ bool IsSampled { get; }
+ string SpanId { get; }
+ string TraceId { get; }
+ }
+ public interface ITransaction
+ {
+ NewRelic.Api.Agent.ISpan CurrentSpan { get; }
+ void AcceptDistributedTraceHeaders(T carrier, System.Func> getter, NewRelic.Api.Agent.TransportType transportType);
+ NewRelic.Api.Agent.ITransaction AddCustomAttribute(string key, object value);
+ void InsertDistributedTraceHeaders(T carrier, System.Action setter);
+ NewRelic.Api.Agent.SegmentWrapper? RecordDatastoreSegment(string vendor, string model, string operation, string? commandText = null, string? host = null, string? portPathOrID = null, string? databaseName = null);
+ void SetUserId(string userid);
+ }
+ public static class NewRelic
+ {
+ public static void DisableBrowserMonitoring(bool overrideManual = false) { }
+ public static NewRelic.Api.Agent.IAgent GetAgent() { }
+ public static string GetBrowserTimingHeader() { }
+ public static string GetBrowserTimingHeader(string nonce) { }
+ public static System.Collections.Generic.IEnumerable> GetRequestMetadata() { }
+ public static System.Collections.Generic.IEnumerable> GetResponseMetadata() { }
+ public static void IgnoreApdex() { }
+ public static void IgnoreTransaction() { }
+ public static void IncrementCounter(string name) { }
+ public static void NoticeError(System.Exception exception) { }
+ public static void NoticeError(System.Exception exception, System.Collections.Generic.IDictionary? parameters) { }
+ public static void NoticeError(System.Exception exception, System.Collections.Generic.IDictionary? parameters) { }
+ public static void NoticeError(string message, System.Collections.Generic.IDictionary? parameters) { }
+ public static void NoticeError(string message, System.Collections.Generic.IDictionary? parameters) { }
+ public static void NoticeError(string message, System.Collections.Generic.IDictionary? parameters, bool isExpected) { }
+ public static void NoticeError(string message, System.Collections.Generic.IDictionary? parameters, bool isExpected) { }
+ public static void RecordCustomEvent(string eventType, System.Collections.Generic.IEnumerable> attributes) { }
+ public static void RecordLlmFeedbackEvent(string traceId, object rating, string category = "", string message = "", System.Collections.Generic.IDictionary? metadata = null) { }
+ public static void RecordMetric(string name, float value) { }
+ public static void RecordResponseTimeMetric(string name, long millis) { }
+ public static void SetApplicationName(string applicationName, string? applicationName2 = null, string? applicationName3 = null) { }
+ public static void SetErrorGroupCallback(System.Func, string> callback) { }
+ public static void SetLlmTokenCountingCallback(System.Func callback) { }
+ public static void SetTransactionName(string? category, string name) { }
+ public static void SetTransactionUri(System.Uri uri) { }
+ public static void SetUserParameters(string? userName, string? accountName, string? productName) { }
+ public static void StartAgent() { }
+ }
+ public class SegmentWrapper : System.IDisposable
+ {
+ public void Dispose() { }
+ public static NewRelic.Api.Agent.SegmentWrapper GetDatastoreWrapper([System.Runtime.CompilerServices.Dynamic] object transaction, string vendor, string model, string operation, string? commandText, string? host, string? portPathOrID, string? databaseName) { }
+ }
+ [System.AttributeUsage(System.AttributeTargets.Method)]
+ public class TraceAttribute : System.Attribute
+ {
+ public TraceAttribute() { }
+ }
+ [System.AttributeUsage(System.AttributeTargets.Method)]
+ public class TransactionAttribute : NewRelic.Api.Agent.TraceAttribute
+ {
+ public TransactionAttribute() { }
+ public bool Web { get; set; }
+ }
+ public enum TransportType
+ {
+ Unknown = 0,
+ HTTP = 1,
+ HTTPS = 2,
+ Kafka = 3,
+ JMS = 4,
+ IronMQ = 5,
+ AMQP = 6,
+ Queue = 7,
+ Other = 8,
+ }
+}
\ No newline at end of file
diff --git a/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.cs b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.cs
new file mode 100644
index 0000000000..4f315ebb69
--- /dev/null
+++ b/tests/Agent/UnitTests/PublicApiChangeTests/PublicApiTest.cs
@@ -0,0 +1,28 @@
+// Copyright 2020 New Relic, Inc. All rights reserved.
+// SPDX-License-Identifier: Apache-2.0
+
+using System.Reflection;
+using DiffEngine;
+using PublicApiGenerator;
+
+namespace PublicApiChangeTests;
+
+[TestFixture]
+public class PublicApiTest
+{
+ [Test]
+ public Task PublicApiHasNotChanged()
+ {
+ if (BuildServerDetector.Detected) // don't launch the diff engine if the test fails on a build server
+ DiffRunner.Disabled = true;
+
+ // Get the assembly for the library we want to document
+ Assembly assembly = typeof(NewRelic.Api.Agent.IAgent).Assembly;
+
+ // Retrieve the public API for all types in the assembly
+ string publicApi = assembly.GeneratePublicApi();
+
+ // Run a snapshot test on the returned string
+ return Verify(publicApi);
+ }
+}