Skip to content

Commit

Permalink
fix(limits): move trace limits to DT docs
Browse files Browse the repository at this point in the history
  • Loading branch information
zuluecho9 committed Mar 23, 2022
1 parent a1b416b commit 380a2d1
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 16 deletions.
10 changes: 10 additions & 0 deletions src/content/docs/data-apis/manage-data/view-system-limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,16 @@ The following table includes general max limits that apply across all New Relic
</td>
</tr>

<tr>
<td>
Distributed tracing
</td>

<td>
See [Trace limits](/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works).
</td>
</tr>

<tr>
<td>
Query limits
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: How New Relic distributed tracing works
title: Technical details of tracing
tags:
- Understand dependencies
- Distributed tracing
- Get started
metaDescription: 'How New Relic''s distributed tracing feature works, including explanation of sampling, trace data structure, and trace storage.'
metaDescription: "Technical details of New Relic's distributed tracing, including limits, explanation of sampling, trace data structure, and trace storage."
redirects:
- /docs/explanation-how-sampling-works-distributed-tracing-data
- /docs/apm/distributed-tracing/ui-data/explanation-how-sampling-works-distributed-tracing-data
Expand All @@ -14,16 +14,87 @@ redirects:
- /docs/distributed-tracing/get-started/how-new-relic-distributed-tracing-works
---

Here are some technical details about how New Relic [distributed tracing](/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing) works:
Here are some technical details about how New Relic distributed tracing works:

* [Trace limits](#limits)
* [How trace sampling works](#sampling)
* [How we structure trace data](#trace-structure)
* [How we store trace data](#trace-storage)
* [How trace context is passed between applications](#headers)

<Callout variant="tip">
For instructions about setting up distributed tracing, see [Overview: Enable distributed tracing](/docs/understand-dependencies/distributed-tracing/enable-configure/overview-enable-distributed-tracing).
</Callout>
## Trace limits [#limits]

Here are some trace-related limits:

<table>
<thead>
<tr>
<th style={{ width: "180px" }}>
Limited aspect
</th>

<th>
Limit
</th>
</tr>
</thead>
<tr>
<td>
Max age of span timestamp values
</td>

<td>
20 minutes. Timestamp must be within 20 minutes of current time at ingest or within 20 minutes from the time the last span with the same `trace.id` was received by New Relic.
</td>
</tr>

<tr>
<td>
Max spans per trace
</td>

<td>
50K
</td>
</tr>

<tr>
<td>
Max attributes per span
</td>

<td>
200
</td>
</tr>

<tr>
<td>
Max spans per minute per APM agent instance
</td>

<td>
Go, PHP, Python: 1000
Other agents: 2000
</td>
</tr>
</tbody>
</table>

For more rules related to using the Trace API, see [Trace API requirements and limits](/docs/distributed-tracing/trace-api/trace-api-general-requirements-limits).

For other New Relic limits, see [Limits](/docs/data-apis/manage-data/view-system-limits#limits-ui).

### Exceeding trace limits [#exceed-limits]

When you exceed your span rate limit, an [`NrIntegrationError` event](/docs/telemetry-data-platform/manage-data/nrintegrationerror) is generated. You can get rate limit messages with this NRQL query:

```
SELECT * FROM NrIntegrationError WHERE newRelicFeature = 'Distributed Tracing' AND category = 'RateLimit' AND rateLimitType = 'SpansPerMinute'
```

To get a notification when you exceed the limit, you can set up a [NRQL alert](/docs/alerts/new-relic-alerts/defining-conditions/create-alert-conditions-nrql-queries).


## Trace sampling [#sampling]

Expand Down Expand Up @@ -207,7 +278,7 @@ Some of our tools don't use sampling. Sampling details for these tools:
id="browser-spans"
title="Browser and mobile trace reporting"
>
[Browser monitoring distributed tracing](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing) and [mobile monitoring](/docs/mobile-monitoring/new-relic-mobile-android/get-started/new-relic-mobile-and-dt/) report all spans.
[Browser monitoring distributed tracing](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing) and [mobile monitoring](/docs/mobile-monitoring/new-relic-mobile-android/get-started/new-relic-mobile-and-dt) report all spans.

Our APM language agents are often used in conjunction with browser and mobile monitoring, and our language agents [use sampling](#trace-origin-sampling). This means that there will likely be many more browser and mobile spans than back-end spans, which can result in browser and mobile app spans disconnected from back-end spans. For tips on querying for traces that contain front and back-end spans, see [Find browser span data](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing#find-data).
</Collapser>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -448,12 +448,5 @@ traceId = <var>TRACE_ID_SENT</var>

## Data limits [#data-limits]

Distributed tracing rate limits are set per account and data type. For details about data limits, see [New Relic data usage limits and policies](/docs/data-apis/manage-data/view-system-limits).
For trace-related limits, see [How distributed tracing works](/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works).

When you exceed your span rate limit, an [`NrIntegrationError` event](/docs/telemetry-data-platform/manage-data/nrintegrationerror) is generated. You can query rate limit messages with this NRQL:

```
SELECT * FROM NrIntegrationError WHERE newRelicFeature = 'Distributed Tracing' AND category = 'RateLimit' AND rateLimitType = 'SpansPerMinute'
```

To get a notification when you exceed the limit, you can set up a [NRQL alert](/docs/alerts/new-relic-alerts/defining-conditions/create-alert-conditions-nrql-queries).
2 changes: 1 addition & 1 deletion src/nav/distributed-tracing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pages:
path: /docs/distributed-tracing/concepts/distributed-tracing-planning-guide
- title: Begin the setup
path: /docs/distributed-tracing/concepts/quick-start
- title: How distributed tracing works
- title: Technical details
path: /docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works
- title: Infinite Tracing
pages:
Expand Down

0 comments on commit 380a2d1

Please sign in to comment.