diff --git a/src/content/docs/apis/rest-api-v2/migrate-to-nrql.mdx b/src/content/docs/apis/rest-api-v2/migrate-to-nrql.mdx new file mode 100644 index 00000000000..062804e9b15 --- /dev/null +++ b/src/content/docs/apis/rest-api-v2/migrate-to-nrql.mdx @@ -0,0 +1,156 @@ +--- +title: Migrate to NRQL +tags: + - APIs + - REST API v2 + - NRQL +translate: + - jp +metaDescription: 'How to migrate your REST API v2 queries to NRQL queries.' +freshnessValidatedDate: never +--- + +## List metric names for your app + +To view the metric names available for your application: + +```nrql +SELECT uniques(metricTimesliceName) FROM Metric WHERE appId = '$APP_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX +``` + +You can also filter using the application name: + +```nrql +SELECT uniques(metricTimesliceName) FROM Metric WHERE appName = '$APP_NAME' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX +``` + +Or using a specific agent (host): + +```nrql +SELECT uniques(metricTimesliceName) FROM Metric WHERE realAgentId = '$AGENT_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX +``` + +## Get your app's metric timeslice data values + +The REST API v2 accepts a list of metric names and a list of values to fetch metric timeslice data. + +The metric names are the same, you can filter them with the `metricTimesliceName` field in your NRQL query. + +Each API value can be mapped to a NRQL function, you can refer to the table below. + +Example, for the following API request: + +```bash +curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \ + -H "X-Api-Key:${API_KEY}" -i \ + -d 'names[]=HttpDispatcher&values[]=average_call_time&values[]=call_count' +``` + +You would use the following query: + +```nrql +SELECT COUNT(newrelic.timeslice.value) AS call_count, average(newrelic.timeslice.value) * 1000 AS average_call_time +FROM Metric +WHERE appId = $APP_ID AND metricTimesliceName = 'HttpDispatcher' +``` + +| Value (RPM) | NRQL Function | +| -------------------------- | ------------------------------------------------------------------------------------------------- | +| average_response_time | average(newrelic.timeslice.value) \* 1000 | +| calls_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | +| call_count | count(newrelic.timeslice.value) | +| min_response_time | min(newrelic.timeslice.value) \* 1000 | +| max_response_time | max(newrelic.timeslice.value) \* 1000 | +| average_exclusive_time | average(newrelic.timeslice.value['totalExclusive'] / newrelic.timeslice.value['count']) \* 1000 | +| average_value | average(newrelic.timeslice.value) | +| total_call_time_per_minute | rate(sum(newrelic.timeslice.value), 1 minute) | +| requests_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | +| standard_deviation | stddev(newrelic.timeslice.value) \* 1000 | +| average_time | average(newrelic.timeslice.value) \* 1000 | +| count | count(newrelic.timeslice.value) | +| used_bytes_by_host | average(newrelic.timeslice.value) \* 1024 \* 1024 | +| used_mb_by_host | average(newrelic.timeslice.value) | +| total_used_mb | sum(newrelic.timeslice.value) | +| average_call_time | average(newrelic.timeslice.value) \* 1000 | +| total_value | sum(newrelic.timeslice.value) | +| min_value | min(newrelic.timeslice.value) | +| max_value | max(newrelic.timeslice.value) | +| rate | rate(sum(newrelic.timeslice.value), 1 second) | +| throughput | rate(count(newrelic.timeslice.value), 1 second) | +| as_percentage | average(newrelic.timeslice.value) \* 100 | +| errors_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | +| error_count | count(newrelic.timeslice.value) | +| total_time | sum(newrelic.timeslice.value) \* 1000 | +| sessions_active | average(newrelic.timeslice.value) | +| total_visits | sum(newrelic.timeslice.value) | +| percent | average(newrelic.timeslice.value) \* 100 | +| percent (`CPU/User Time`) | 100 \* sum(newrelic.timeslice.value) / `$TIME_WINDOW_IN_SECONDS` | +| time_percentage | 100 \* sum(newrelic.timeslice.value) / `$TIME_WINDOW_IN_SECONDS` | +| utilization | 100 \* sum(newrelic.timeslice.value) / `$TIME_WINDOW_IN_SECONDS` | +| visits_percentage | 100 \* sum(newrelic.timeslice.value) / `$TIME_WINDOW_IN_SECONDS` | + +If the function includes `$TIME_WINDOW_IN_SECONDS`, it means that you need to replace it with the time window you want to query. + +Example, if you query a 30 minutes time window, you would replace `$TIME_WINDOW_IN_SECONDS` with `1800`. + +### Apdex metrics + +| Value (RPM) | NRQL Function | +| ------------- | ---------------------------------------------------------------------------------- | +| score | apdex(newrelic.timeslice.value) | +| s | apdex(newrelic.timeslice.value) or count(newrelic.timeslice.value) | +| t | apdex(newrelic.timeslice.value) or sum(newrelic.timeslice.value) | +| f | apdex(newrelic.timeslice.value) or sum(newrelic.timeslice.value['totalExclusive']) | +| count | apdex(newrelic.timeslice.value) | +| value | apdex(newrelic.timeslice.value) | +| threshold | max(newrelic.timeslice.value) | +| threshold_min | min(newrelic.timeslice.value) | + +### EndUser & Mobile metrics + +These metrics will return the same result as what you would get from the REST API v2, but some results may differ from what you see on the New Relic UI. +This is because the UI uses events instead of timeslice data. +If you want to get the same results as the UI, you should query the events directly. + +| Value (RPM) | NRQL Function | +| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| average_response_time | sum(newrelic.timeslice.value) / count(newrelic.timeslice.value) \* 1000 | +| error_percentage | (filter(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'EndUser/errors') / filter(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'Browser')) | +| average_fe_response_time | sum(newrelic.timeslice.value['totalExclusive']) / count(newrelic.timeslice.value) \* 1000 | +| average_be_response_time | 1000 \* (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive'])) / count(newrelic.timeslice.value) | +| average_network_time | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) / count(newrelic.timeslice.value) | +| total_network_time | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) | +| network_time_percentage | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) / `$TIME_WINDOW_IN_SECONDS` | +| total_fe_time | sum(newrelic.timeslice.value['totalExclusive']) | +| fe_time_percentage | 100 \* sum(newrelic.timeslice.value['totalExclusive']) / `$TIME_WINDOW_IN_SECONDS` | +| average_dom_content_load_time | average(newrelic.timeslice.value) \* 1000 | +| average_queue_time | average(newrelic.timeslice.value['totalExclusive']) \* 1000 | +| total_queue_time | sum(newrelic.timeslice.value['totalExclusive']) \* 1000 | +| total_dom_content_time | sum(newrelic.timeslice.value) \* 1000 | +| total_app_time | sum(newrelic.timeslice.value['sumOfSquares']) | +| average_app_time | sum(newrelic.timeslice.value['sumOfSquares']) / count(newrelic.timeslice.value) | +| average_sent_bytes | sum(newrelic.timeslice.value['totalExclusive']) \* 1000 | +| average_received_bytes | 1000 \* sum(newrelic.timeslice.value) / count(newrelic.timeslice.value) | +| launch_count | count(newrelic.timeslice.value) | + +### Timeseries and summaries + +By default, the REST API returns a series of metric data values based. To obtain the average of these values, you would include `&summarize=true` in your API call. + +In NRQL, that's the opposite. You get a summary by default, and you can get the timeseries by adding `TIMESERIES` to your query. + +Another difference is that the default time window of the REST API is 30 minutes, while in NRQL, it is 1 hour. + +## Query multiple metrics + +You can still query multiple metrics at once with NRQL, here's an example: + +```nrql +SELECT + FILTER(1000 * AVERAGE(newrelic.timeslice.value), WHERE metricTimesliceName = 'HttpDispatcher') as average_response_time, + FILTER(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'Errors/all') as error_count, + FILTER(average(newrelic.timeslice.value), WHERE metricTimesliceName = 'Memory/Heap/Max') as used_mb_by_host +FROM Metric +WHERE appName = '$APP_NAME' +SINCE 1 day ago +``` diff --git a/src/content/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx b/src/content/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx index 6c8a805adee..cf5a19ff0c1 100644 --- a/src/content/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx +++ b/src/content/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx @@ -388,7 +388,8 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co The .NET agent `v9.2.0` or higher automatically instruments the [Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Microsoft.Azure.Cosmos) library. * Minimum supported version: 3.17.0 - * Latest verified compatible version: 3.23.0 + * Latest verified compatible version: 3.44.0 + * Versions 3.35.0 and higher are supported beginning with .NET agent v10.32.0 @@ -433,7 +434,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co Use [Oracle.ManagedDataAccess.Core](https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/) * Minimum supported version: 23.4.0 - * Latest verified compatible version: 23.5.1 + * Latest verified compatible version: 23.6.0 Older versions of `Oracle.ManagedDataAccess.Core` may be instrumented, but have not been tested and are not supported. @@ -476,7 +477,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co Minimum supported version: 2.3.0 - Latest verified compatible version: 2.26.0 + Latest verified compatible version: 2.29.0 Beginning in agent version 10.12.0, the following methods added in or after driver version 2.7 are instrumented: * IMongoCollection.CountDocuments[Async] @@ -549,7 +550,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co **Elastic.Clients.Elasticsearch** * Minimum supported version: 8.0.0 - * Latest verified compatible version: 8.14.6 + * Latest verified compatible version: 8.15.8 * Versions 8.10.0 and higher are supported beginning with .NET agent v10.20.1 * Versions 8.12.1 and higher are supported beginning with .NET agent v10.23.0 @@ -674,7 +675,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 10.23.0 - 3.7.403.4 + 3.7.404.5 @@ -738,7 +739,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 9.7.0 - 3.1.1 + 4.0.1 @@ -753,7 +754,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 9.7.0 - 5.3.2 + 5.3.14 @@ -768,7 +769,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 10.0.0 - 8.0.0 + 8.0.1 @@ -863,7 +864,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co * Minimum supported version: 7.1.0 - * Latest verified compatible version: 8.1.1 + * Latest verified compatible version: 8.2.5 @@ -877,7 +878,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co * Minimum supported version: 3.7.0 - * Latest verified compatible version: 3.7.400.19 + * Latest verified compatible version: 3.7.400.33 @@ -1385,7 +1386,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co Minimum supported version: 2.3.0 - Latest verified compatible version: 2.26.0 + Latest verified compatible version: 2.29.0 Beginning in agent version 10.12.0, the following methods added in or after driver version 2.7 are instrumented: * `IMongoCollection.CountDocuments[Async]` @@ -1620,7 +1621,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co Minimum supported version: 105.2.3 - Latest verified compatible version: 111.4.0 + Latest verified compatible version: 112.1.0 Known incompatible versions: 106.8.0, 106.9.0, 106.10.0, 106.10.1 @@ -1703,7 +1704,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 10.23.0 - 3.7.403.4 + 3.7.404.5 @@ -1766,7 +1767,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 9.7.0 - 3.1.1 + 4.0.1 @@ -1781,7 +1782,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co 9.7.0 - 5.3.2 + 5.3.14 @@ -1900,7 +1901,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co * Minimum supported version: 7.1.0 - * Latest verified compatible version: 8.1.1 + * Latest verified compatible version: 8.2.5 @@ -1914,7 +1915,7 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co * Minimum supported version: 3.7.0 - * Latest verified compatible version: 3.7.400.19 + * Latest verified compatible version: 3.7.400.33 diff --git a/src/content/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-version2/overview.mdx b/src/content/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-version2/overview.mdx index 7b9fbbbe1a7..9a7ed63dbca 100644 --- a/src/content/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-version2/overview.mdx +++ b/src/content/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-version2/overview.mdx @@ -11,7 +11,7 @@ freshnessValidatedDate: 2024-07-22 The Kubernetes integration version 2 has some different settings and requirements than version 3. This document goes over the settings that are different from version 3 and that you'll need for version 2. If we don't specify anything different, you can use the settings for version 3. - Keep in mind that we've replaced version 2 and you should not use it. We maintain this documentation for users who are still using version 2. + New Relic has deprecated version 2 and recommends against using it. We maintain this documentation for users who are still using version 2 even though we no longer support it. See [Introduction to the Kubernetes integration](/docs/kubernetes-pixie/kubernetes-integration/get-started/introduction-kubernetes-integration/) to get started with the current version of Kubernetes. diff --git a/src/content/docs/release-notes/agent-release-notes/net-release-notes/net-agent-10-32-0.mdx b/src/content/docs/release-notes/agent-release-notes/net-release-notes/net-agent-10-32-0.mdx new file mode 100644 index 00000000000..7dd78ed9f4d --- /dev/null +++ b/src/content/docs/release-notes/agent-release-notes/net-release-notes/net-agent-10-32-0.mdx @@ -0,0 +1,46 @@ +--- +subject: .NET agent +releaseDate: '2024-10-16' +version: 10.32.0 +downloadLink: 'https://download.newrelic.com/dot_net_agent/latest_release' +features: ['Implement consistent naming scheme for all environment variables.','Update CosmosDB instrumentation to support latest version.'] +bugs: ['Handle null or empty SQS messages and/or message attributes.','Update Profiler to check whether Azure function mode support is enabled.'] +security: [] +--- + +### Notice + +* Environment variables that start with or contain `NEWRELIC_` are deprecated and may be removed in a future major release. Users are encouraged to update their installation to use `NEW_RELIC_` names as soon as possible. ([b00edda](https://github.com/newrelic/newrelic-dotnet-agent/commit/b00edda2e617ff3176cff8b2243171cbe51e391f)) + +### New features + +* Implement consistent naming scheme for all environment variables. All environment variables starting with (or containing) `NEWRELIC_` are now named `NEW_RELIC_`. Support for previous environment variables is retained, so this is not a breaking change. ([#718](https://github.com/newrelic/newrelic-dotnet-agent/issues/718)) ([#2812](https://github.com/newrelic/newrelic-dotnet-agent/issues/2812)) ([b00edda](https://github.com/newrelic/newrelic-dotnet-agent/commit/b00edda2e617ff3176cff8b2243171cbe51e391f)) +* Update CosmosDB instrumentation to support latest version ([#2832](https://github.com/newrelic/newrelic-dotnet-agent/issues/2832)) ([27a78cb](https://github.com/newrelic/newrelic-dotnet-agent/commit/27a78cb141fed90f2a3585d910bd8a5f74f94238)) + +### Fixes + +* Handle null or empty SQS messages and/or message attributes ([#2833](https://github.com/newrelic/newrelic-dotnet-agent/issues/2833)) ([758b770](https://github.com/newrelic/newrelic-dotnet-agent/commit/758b770bb0ecf7c1a39e12b43c3279f26fdc0ed1)) +* Update Profiler to check whether Azure function mode support is enabled ([#2822](https://github.com/newrelic/newrelic-dotnet-agent/issues/2822)) ([9669641](https://github.com/newrelic/newrelic-dotnet-agent/commit/966964114018066d0e72f2b3fc12ff7974b66804)) + +### Checksums +| File | SHA - 256 Hash | +| ---| ---| +| newrelic-dotnet-agent-10.32.0-1.x86_64.rpm | 2FFDA6284FAAFD1D803AEA0D101E68CE2BC3DE216843BB447B8942A085B72610 | +| newrelic-dotnet-agent_10.32.0_amd64.deb | 425FF9AE08D2FF21B0CC261BB817B0E99376804B854AEB243D82A62242B4D440 | +| newrelic-dotnet-agent_10.32.0_amd64.tar.gz | 73AF5E32B8CC62EE4715A58389482C88049F8A0CB2BB7A3653136BC75E332A52 | +| newrelic-dotnet-agent_10.32.0_arm64.deb | FC30F4F24F6FBF74C3BF583461A1DE2122E4BB869F6E246BBAC4CB722FE05FB3 | +| newrelic-dotnet-agent_10.32.0_arm64.tar.gz | CD096D73FABF2FF83FFAB86ED64DA49C81EEB73DFB5FBCBDDFBF040C37D71EE3 | +| NewRelicDotNetAgent_10.32.0_x64.msi | 451BE41904B4A6DDAE0278ECA9DAF774A5C6D07BAF3CEFC8C6F676C0C48B07D4 | +| NewRelicDotNetAgent_10.32.0_x64.zip | 7A4F5C455B2CAF56F814F17D08469D4B7ED319F87345B7F5CB785DBF96D6A07A | +| NewRelicDotNetAgent_10.32.0_x86.msi | DE111B96233805F1E113D3321583F8CBE6CD90549869F2A1070C5F77982E0D36 | +| NewRelicDotNetAgent_10.32.0_x86.zip | 158811ECD68577B70A94C8119F8FFDEDC1BE450D2D4F11BF084F0CF9D0ABD20E | + + +### Updating your agent + +* Follow standard procedures to [update the .NET agent](/docs/agents/net-agent/installation-configuration/update-net-agent). +* If you're using a particularly old agent, review the list of major changes and procedures for [updating legacy .NET agents](/docs/apm/agents/net-agent/installation/update-net-agent/#updating_older_net). + +We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about [keeping your agent up to date](/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent). +See the New Relic .NET agent [EOL policy doc](/docs/apm/agents/net-agent/getting-started/net-agent-eol-policy) for information about agent releases and support dates. + diff --git a/src/content/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes/browser-agent-v1.269.0.mdx b/src/content/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes/browser-agent-v1.269.0.mdx new file mode 100644 index 00000000000..726f7a621a8 --- /dev/null +++ b/src/content/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes/browser-agent-v1.269.0.mdx @@ -0,0 +1,35 @@ +--- +subject: Browser agent +releaseDate: "2024-10-16" +version: 1.269.0 +features: ["Include logging feature in micro agent loader","Add instrumentation metadata to logging"] +bugs: ["Only ever allow session traces to capture page load timings once","Handle Session Replay Security Policy Errors"] +security: [] +--- + +## v1.269.0 + +### Features + +#### Include logging feature in micro agent loader +Allow the MicroAgent loader on NPM to utilize the logging APIs to manually capture log data. + +#### Add instrumentation metadata to logging +Add instrumentation attribution to logging payloads to fortify categorization and billing calculations in New Relic platforms. These attributes are dropped during processing and before storing the data and as such don't affect customer billing rates. + + +### Bug fixes + +#### Only ever allow session traces to capture page load timings once +An edge case issue was resolved where session traces could include duplicate copies of the page load timings obtained from the browser timing APIs. + +#### Handle Session Replay Security Policy Errors +Handle Security Policy Errors encountered by session replay when browser APIs have been natively disabled. This was also observed to happen in Chromium browsers that completely disabled cookie storage. Supportability metrics about agent internal errors are now captured as a biproduct of this work to help facilitate future improvements. + +## Support statement + +New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Older releases will no longer be supported when they reach [end-of-life](https://docs.newrelic.com/docs/browser/browser-monitoring/getting-started/browser-agent-eol-policy/). Release dates are reflective of the original publish date of the agent version. + +New browser agent releases are rolled out to customers in small stages over a period of time. Because of this, the date the release becomes accessible to your account may not match the original publish date. Please see this [status dashboard](https://newrelic.github.io/newrelic-browser-agent-release/) for more information. + +Consistent with our [browser support policy](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/compatibility-requirements-browser-monitoring/#browser-types), v1.269.0 of the Browser agent was built for and tested against these browsers and version ranges: Chrome 118-128, Edge 119-129, Safari 16-17, and Firefox 119-129. For mobile devices, v1.269.0 was built and tested for Android OS 15 and iOS Safari 16-18. diff --git a/src/content/docs/release-notes/synthetics-release-notes/ping-runtime-release-notes/ping-runtime-1.47.0.mdx b/src/content/docs/release-notes/synthetics-release-notes/ping-runtime-release-notes/ping-runtime-1.47.0.mdx new file mode 100644 index 00000000000..43ca35aa959 --- /dev/null +++ b/src/content/docs/release-notes/synthetics-release-notes/ping-runtime-release-notes/ping-runtime-1.47.0.mdx @@ -0,0 +1,9 @@ +--- +subject: Ping Runtime +releaseDate: '2024-10-14' +version: 1.47.0 +--- + +### Fixes + +* Opens user permissions for ping-runtime control script for non-root users diff --git a/src/nav/telemetry-data-platform.yml b/src/nav/telemetry-data-platform.yml index 10b9ed4e65c..304f9e7c731 100644 --- a/src/nav/telemetry-data-platform.yml +++ b/src/nav/telemetry-data-platform.yml @@ -204,6 +204,8 @@ pages: - title: REST API v2 path: /docs/apis/rest-api-v2 pages: + - title: Migrate to NRQL + path: /docs/apis/rest-api-v2/migrate-to-nrql - title: Get started path: /docs/apis/rest-api-v2/get-started pages: