Skip to content

ci: Improve the relevance of the performance test app#3500

Merged
nr-ahemsath merged 34 commits intomainfrom
ci/better-performance-test-app
Mar 24, 2026
Merged

ci: Improve the relevance of the performance test app#3500
nr-ahemsath merged 34 commits intomainfrom
ci/better-performance-test-app

Conversation

@nr-ahemsath
Copy link
Copy Markdown
Member

Description

In order to make the test app being exercised by the CI performance testing more relevant to .NET agent performance, this PR makes the following changes:

  1. Add three additional services to the docker-compose file: Redis, MongoDB, and RabbitMQ. See the updated README for the reasons why those particular services were chosen.
  2. Add controllers to exercise the client libraries corresponding to those services that the agent instruments. The basic CRUD operations are exercised in each case.
  3. Add more logging calls with structured logging parameter data, and configure the app to use Serilog as the logging provider underneath MEL, in order to exercise the agent's log forwarding feature.
  4. Controller endpoints that were doing things irrelevant to agent instrumentation were removed.

1. Change the agent health check to just look for "agent fully connected" so we don't have to have the agent log level set to DEBUG
2. Don't dump traffic driver and test app logs by default
3. Parameterize the python executable used to clean up the test output (part of follow-on work to make running comparisons locally convenient)
…ic/newrelic-dotnet-agent into ci/performance-test-visualization
Add the ability to configure the agent (and the test app, for that matter) via env vars.

Also remove the standalone "performance_tests.yml" workflow since it is redundant - its logic is now in actions/run-perf-test/action.yml, and if you want to run a single performance test case in ci, you can use compare_performance.yml with just a single run specified.
Also stop creating unique application names for each test run that pollute our sandbox
Also, remove log level setting from docker compose as it wasn't being set that way; specify it as one of the extra env var args if desired.
1. Add a VS solution file
2. Add a pylint (python linter) config file
3. Implement linter suggestions
4. Some hand refactoring of run-perf-test.py
5. Make the agent log checks more correct and meaningful
@nr-ahemsath nr-ahemsath requested a review from a team as a code owner March 23, 2026 21:42
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.79%. Comparing base (3e04b59) to head (b81bc5f).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3500      +/-   ##
==========================================
+ Coverage   81.77%   81.79%   +0.01%     
==========================================
  Files         508      508              
  Lines       34220    34220              
  Branches     4040     4040              
==========================================
+ Hits        27984    27990       +6     
+ Misses       5269     5265       -4     
+ Partials      967      965       -2     
Flag Coverage Δ
Agent 82.78% <ø> (+0.01%) ⬆️
Profiler 71.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nr-ahemsath nr-ahemsath merged commit 871f063 into main Mar 24, 2026
117 checks passed
@nr-ahemsath nr-ahemsath deleted the ci/better-performance-test-app branch March 24, 2026 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants