---
title: Troubleshoot private locations
source: https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/troubleshoot-private-locations
---

If you encounter problems while setting up [private locations](https://docs.newrelic.com/docs/synthetics/new-relic-synthetics/private-locations/private-locations-overview-monitor-internal-sites-add-new-locations) for synthetic monitoring of New Relic, try these troubleshooting tips to identify common Synthetics Job Manager problems.

## Job demand and consumption [#job-demand]

Identify your current throughput and assess whether your job manager is able to keep up with the job load.

-   Jobs demand throughput per minute:

    ```sql
    SELECT rate(uniqueCount(jobId), 1 minute) FROM SyntheticRequest 
    WHERE type != 'SIMPLE' FACET location SINCE 2 days ago
    ```
-   Jobs per minute over time:

    ```sql
    SELECT rate(uniqueCount(jobId), 1 minute) FROM SyntheticRequest 
    WHERE type != 'SIMPLE' FACET location SINCE 2 weeks ago TIMESERIES
    ```
-   Identify queue growth:

    ```sql
    SELECT derivative(checksPending, 1 minute) AS 'queue growth rate (per minute)' 
    FROM SyntheticsPrivateLocationStatus WHERE name = 'YOUR_PRIVATE_LOCATION' SINCE 2 days ago TIMESERIES
    ```
-   Consumption rate:

    ```sql
    SELECT rate(uniqueCount(jobId), 1 minute) FROM SyntheticRequest 
    WHERE type != 'SIMPLE' FACET location SINCE 2 weeks ago TIMESERIES
    ```
-   Clean up failing monitors that are consuming resources:

    ```sql
    SELECT 100*latest(minionJobsFailed)/latest(minionJobsReceived) AS 'job failure rate (%)' 
    FROM SyntheticsPrivateMinion FACET minionLocation SINCE 2 weeks ago TIMESERIES MAX
    ```

## Memory usage troubleshooting [#memory]

Recommended memory allocation per synthetics job manager:

-   Docker: 3.256 GiB per cpu core for Docker synthetics job manager
-   Kubernetes synthetics job manager (values are configurable):

    -   1.6 GiB for job manager pod
    -   1.0 GiB for ping runtime pod
    -   2 GiB per Node.js API runtime pod
    -   3 GiB per Node.js browser runtime pod
-   Target 60% max memory utilization

Helpful queries to identify current usage:

-   Memory usage per location:

    ```sql
    SELECT latest(minionPhysicalMemoryUsedPercentage) FROM SyntheticsPrivateMinion
    FACET minionLocation SINCE 2 weeks ago TIMESERIES MAX
    ```
-   Memory usage per hostname:

    ```sql
    SELECT latest(minionPhysicalMemoryUsedPercentage) FROM SyntheticsPrivateMinion 
    WHERE minionLocation = 'YOUR_PRIVATE_LOCATION' FACET minionHostname SINCE 2 weeks ago TIMESERIES MAX
    ```

## CPU usage troubleshooting [#cpu-usage]

Identify potential periods of high cpu demand:

-   Overall CPU usage:

    ```sql
    SELECT latest(minionProcessorsUsagePercentage) FROM SyntheticsPrivateMinion 
    FACET minionLocation SINCE 2 weeks ago TIMESERIES MAX
    ```
-   CPU usage for a specified location:

    ```sql
    SELECT latest(minionProcessorsUsagePercentage) FROM SyntheticsPrivateMinion 
    WHERE minionLocation = 'YOUR_PRIVATE_LOCATION' FACET minionHostname SINCE 2 weeks ago TIMESERIES MAX
    ```

## Network troubleshooting [#network]

**Network access is red:**

The Synthetics Job Manager makes a check to New Relic to verify public network access. If public network access is not available, the **Network Access** icon on the [Synthetics Job Manager's **Overview** page](https://docs.newrelic.com/docs/synthetics/new-relic-synthetics/pages/synthetics-overview-page-view-monitors-performance) will turn red, but the Synthetics Job Manager will otherwise be fully functional. If this is the expected behavior, you can safely ignore this error.

You may also see log entries like this:

```log
2016-01-21 21:47:09,401 [dw-22 - GET /private-location/status] c.n.s.m.util.PrivateMinionUtils WARN Unable to detect Public Network Access trying to fetch https://newrelic.com/synthetics: java.net.ConnectException: Connection refused
```

**New Relic access is red:**

The Synthetics Job Manager must have access to `https://synthetics-horde.nr-data.net` in order to retrieve the list of jobs to run and publish results that you can view in your New Relic user interface. If your firewall rules don't permit direct access, you can [configure proxy access](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/job-manager-configuration/#environment-variables). If necessary, add the DNS endpoint `synthetics-horde.nr-data.net` to your allow list.

## Port conflicts running Docker containers on the host [#port-conflicts-docker]

If you're running multiple job manager containers on the same host, you'll have port conflicts and resource contention. To avoid this, make sure to run each job manager on a separate host.
