Skip to main content
No Result Found
Get your setup working faster. Join our Discord for optimisation tips from elite testers. Join our DiscordJoin our Discord

AppDynamics integration for BrowserStack Load Testing

Learn how to send BrowserStack Load Testing metrics and a dashboard to Splunk AppDynamics so you can correlate load-test traffic with application performance.

Use this guide to connect BrowserStack Load Testing with Splunk AppDynamics. You can then correlate test activity with backend performance, infrastructure health, and user experience in one place.

BrowserStack publishes metrics to AppDynamics Analytics, creates a custom dashboard you can open from your test results, and posts lifecycle events as overlays on that dashboard.

Prerequisites

Before you enable the AppDynamics integration, make sure you have:

  • Splunk AppDynamics SaaS tenant: A SaaS Controller, such as https://yourco.saas.appdynamics.com. The on-premises Controller is not supported.
  • API client access: Permission to create an API client under Administration in your Controller.
  • Analytics API key access: Permission to create an Analytics API key with the Manage Schema and Publish Custom Events permissions.
  • An application: An application already configured in your AppDynamics tenant that you want to correlate the load test against.
  • Your AppDynamics region: The region your Analytics tenant runs in, such as US or FRA.
  • BrowserStack Load Testing account: Access to BrowserStack Load Testing with admin access to at least one project.

AppDynamics requires two separate credentials. The API client (name and secret) gives BrowserStack access to the Controller to create the dashboard, and the Analytics API key lets BrowserStack publish metrics and events. The Analytics API key is not the same as the API client secret. Make sure the Analytics API key has the Manage Schema and Publish Custom Events permissions.

Integration overview

When you enable push mode, BrowserStack publishes load-test metrics and a dashboard to Splunk AppDynamics so you can correlate test activity with application performance and infrastructure health.

Core capabilities:

  • Metric streaming: BrowserStack aggregates performance data into 10-second buckets and publishes it to AppDynamics Analytics.
  • Virtual user metrics: Track how many virtual users (VUs) are active, how long tests run, and how many requests they generate.
  • Error and latency metrics: Monitor error rates and response-time percentiles to identify performance regressions.
  • Browser metrics: For browser-based load tests, capture core web vitals such as LCP, FCP, CLS, and INP.
  • Dimensions: Each metric carries dimensions, such as load test name, region, and executor, so that you can filter results inside AppDynamics.
  • Native dashboard: BrowserStack creates a preconfigured dashboard in your Controller on the first run and returns a deep link to it from the load-test report.

Get your AppDynamics credentials

AppDynamics uses two separate credentials: an API client for the Controller and an Analytics API key for publishing metrics and events. Follow these steps in your AppDynamics tenant to collect the values you paste into BrowserStack.

Get your Controller URL and application name

Collect the Controller URL and application name that BrowserStack uses to connect to your AppDynamics tenant:

  1. Sign in to your AppDynamics Controller, typically at https://<account>.saas.appdynamics.com.
  2. Copy the full Controller URL from your browser’s address bar, including the https:// prefix.
  3. In the top-left application picker, copy the exact name (case-sensitive) of the application you want to correlate the load test against.

Create an API client

Create an API client in your Controller to authenticate BrowserStack against the AppDynamics API:

  1. In the Controller, select the gear icon in the top-right and open Administration.
  2. Open the API Clients tab and select Create.
  3. Enter a name such as browserstack-load-testing. This becomes your API client name. In BrowserStack, enter only the name, without any @account suffix.
  4. Assign the Account Owner role. A custom role also works if it can create and update custom dashboards and read the target application.
  5. Select Save, then select Generate Secret and copy the secret immediately. AppDynamics shows it only once. For details, see the Splunk AppDynamics API clients documentation.

Create an Analytics API key

  1. In the Controller, open Analytics from the top navigation.
  2. Select the gear icon in the top-right, open Configuration, then open the API Keys tab.
  3. Select Add and enter a name such as browserstack-load-testing-analytics.
  4. Under Custom Analytics Events Permissions, select Can Manage Schema and Can Publish all Custom Analytics Events. Leave Can Query all Custom Analytics Events unselected.
  5. Select Create and copy the API key value immediately. AppDynamics shows it only once. For details, see the Splunk AppDynamics Analytics security documentation.

After you generate the credentials, store them securely. You can reference them in your BrowserStack Load Testing configuration through environment variables.

Select your AppDynamics region

AppDynamics SaaS runs Analytics on a different endpoint in each region, and every Controller URL uses the same <account>.saas.appdynamics.com format regardless of region. BrowserStack cannot infer the region from the Controller URL, so you select it explicitly when you configure the integration.

Choose the region code that matches your Analytics tenant:

Region code Region Analytics endpoint
US United States (default) analytics.api.appdynamics.com
FRA Frankfurt, EU fra-ana-api.saas.appdynamics.com
LON London, UK lon-ana-api.saas.appdynamics.com
BOM Mumbai, India bom-ana-api.saas.appdynamics.com
SIN Singapore sin-ana-api.saas.appdynamics.com
SYD Sydney, Australia syd-ana-api.saas.appdynamics.com

Supported metrics

BrowserStack Load Testing publishes the following metrics to the browserstackLoadTestMetrics2026V2 schema in AppDynamics Analytics. All metrics are sent automatically when AppDynamics is connected.

Category Metric name Description
Load vuMax Maximum virtual users in the window
Load vuCount Virtual users started in the window
Load vuEnded Virtual users ended in the window
Load testDuration Elapsed test time
Requests requestsTotal Total requests in the window
Requests requestsRateAvg Average requests per second
Errors errorsPercentage Error rate as a percentage
Response responseTimeAvg Mean response time, in milliseconds
Response responseTimeP90 90th percentile response time
Response responseTimeP95 95th percentile response time
Response responseTimeP99 99th percentile response time
Response responseTimeMax Maximum response time
Response responseTimeMin Minimum response time
Browser browserLcp Largest Contentful Paint
Browser browserInp Interaction to Next Paint
Browser browserTtfb Time to First Byte
Browser browserCls Cumulative Layout Shift
Browser browserFcp First Contentful Paint
Browser browserPlt Page Load Time
Browser browserNetworkCallsTotal Browser network call count
System systemCpuUsage Engine CPU usage percentage
System systemMemoryUsage Engine memory usage percentage

Every metric carries the testRunId, loadTestName, region, and executerName dimensions so that you can filter and group results. The executerName dimension uses this exact spelling in the schema, so match it in any query.

Lifecycle events

BrowserStack Load Testing posts lifecycle events to the same schema, so you can align spikes or drops in performance with changes in test state. Use these events as overlays on your AppDynamics dashboard to understand what was happening during a particular time range.

The following lifecycle events are supported:

Event When it fires
lifecycle_queued The test is created and waiting to run.
lifecycle_ready Test resources are provisioned and the test is about to start.
lifecycle_running The test transitions from queued to running.
lifecycle_rampup_started The ramp-up phase begins, for ramping load profiles.
lifecycle_rampdown_started The ramp-down phase begins.
lifecycle_iteration_started An iteration begins, for iteration-based load profiles.
lifecycle_iteration_ended An iteration completes.
lifecycle_completed The test reaches a terminal success state.
lifecycle_passed The test passes all configured thresholds.
lifecycle_failed The test reaches a terminal failure state.
lifecycle_error The test errors during execution.
lifecycle_stopped You manually stop the test.
lifecycle_timedout The test exceeds its configured duration.

Configure AppDynamics

Choose your integration mode and preferred configuration method:

You can configure AppDynamics from the BrowserStack UI or from the CLI. Select your preferred method:

This is the most common path. Collect the six values from your AppDynamics Controller, then paste them into the BrowserStack Connect form.

  1. In BrowserStack, go to Load Testing > Projects > Settings > Integrations.
  2. Under Application Performance Monitoring, find the AppDynamics tile and select Connect.
  3. Enter your Controller URL, Application Name, API Client Name, API Client Secret, Analytics API Key, and AppDynamics Region.
  4. Select Save. BrowserStack runs a short health check and shows a green Connected badge when all six values are valid. If a field is wrong, BrowserStack shows an inline error so that you can correct it.

Verify the integration

After your next test run completes:

  1. In BrowserStack, open the test run’s detail page.
  2. Select APM Tools in the side panel.
  3. In the AppDynamics card, select Open in AppDynamics.
  4. Your AppDynamics dashboard for this load test opens in a new tab, populated with metrics and events from the run.

Pull mode limitations

  • You can use one APM tool at a time. If you connect AppDynamics in pull mode and later want to pull from InfluxDB or Prometheus, you must disconnect AppDynamics first.
  • You select one tier and host, and the metrics to pull. Select metrics that are actively reported by your nodes (inactive metrics are not displayed in the UI picker).
  • Data is fetched live, not stored. When you open a test report, BrowserStack queries AppDynamics for the metrics. If your AppDynamics instance has aged out the data, the report shows “No metric data.”
  • The settlement window is 2 minutes. After your test ends, the chart continues querying every 10 seconds for 2 minutes while AppDynamics ingests the final data points. After the window closes, the chart only updates when you reopen the report.
  • Credentials do not need a reconnect to switch modes. If you connected AppDynamics for push and later enable pull, you add the Grafana URL and API key to the same connection. Switching modes later does not disconnect the tool.

Troubleshooting

If the integration fails to save or no data appears in AppDynamics, use the following table to resolve common issues:

Symptom Likely cause Fix
Save fails with OAuth token exchange failed The API client name or secret is wrong, or the client was deleted. Recheck the API client in Administration > API Clients, recreate it if needed, and regenerate the secret.
Save fails with API Client lacks dashboard permissions The API client role cannot create or update dashboards. Assign the Account Owner role, or a custom role with dashboard create and update permission.
Save fails with Application not found The application name does not match an application in your tenant. Copy the name exactly from the application picker, including case, and paste it as-is.
Save fails with Analytics API key invalid The Analytics API key is wrong or missing required permissions. Confirm the key exists and has the Can Manage Schema and Can Publish all Custom Analytics Events permissions.
Save fails with Analytics endpoint unreachable from this region The selected region does not match your Analytics tenant. Select the region that matches your tenant. If you are unsure, contact your AppDynamics administrator.
No metrics appear after a test run The Analytics API key lacks the Can Manage Schema permission, so the schema was not created. Enable Can Manage Schema on the key and run the test again.
The dashboard is empty The dashboard was created before metric data arrived. Refresh the dashboard once. Later runs render automatically.

Where your credentials are stored

BrowserStack stores your credentials encrypted at rest. The Load Testing service never sees the raw API client secret or Analytics API key, and credentials are sent to AppDynamics only. To revoke access, select Disconnect on the AppDynamics tile in Integrations. BrowserStack stops publishing immediately. The dashboard and previously published metrics remain in your AWS account.

Limitations

  • BrowserStack supports Splunk AppDynamics SaaS only. The on-premises Controller is not supported. Contact BrowserStack Support if you need on-premises integration.
  • The region is a required field. BrowserStack cannot derive it from the Controller URL, so you must select it explicitly.
  • Trace correlation with the W3C traceparent and tracestate headers is not supported. Dashboard metrics and lifecycle events are unaffected.

Next steps

After you save your changes, run your load test from the CLI or dashboard. When the test completes, open AppDynamics and search for the configured metric names to validate that data is flowing correctly. Then build dashboards and alerts based on the metrics that matter most to your team.

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle