From f07c6914a20aee001c0a06826cdf0af90963db59 Mon Sep 17 00:00:00 2001 From: newer-relic <136116495+newer-relic@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:01:08 -0500 Subject: [PATCH 01/20] docs(NR-290692): add clarifying verbiage on how markers are included on NRQL charts --- .../change-tracking-view-analyze.mdx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index 5928a88d96f..553d9026eb9 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -33,6 +33,20 @@ Before you jump into the details here about how to view and analyze the impact o If you land on a dashboard or entity summary page and don't see the tracked change you're expecting, check your time picker selection. It might be outside the window you are looking at. + + * If you are still not seeing the markers that you're expecting, please verify whether you have added those Change tracking events to the entities relevant to the chart. Do note that charts are usually driven by a NRQL query and "entities relevant to the chart" are derived from the query based on the following logic: + * entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are... + * `entity.guid` + * `entityGuid` + * `appName` + * `entity.name` + * `entityName` + * entities that are [related](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/core-concepts/what-entity-new-relic/#related-entities) to entities specified via the method above. Only the following relationship-types are considered... + * `CALLS` + * `SERVES` + * `IS` + * `CONTAINS` + * `HOSTS` * **Entity sidebar:** To see a table of changes, click on **Change tracking** for any entity that has recorded changes. It features a time range selector and table filtering and sorting options. Use these to narrow the field of changes or to find a specific change. Note that you may need to adjust the selected time range on this page to see tracked changes. Also, by default the table will only lazy load up to 2,000 changes. Keep this in mind as you're filtering, searching, and adjusting your time range. * **New Relic & Detection:** If your change is related to an issue, you'll see it listed in the **Root Cause Analysis** section of the **Issues** page. From 71c58327dcf005c466d9f2704adc9209417799c5 Mon Sep 17 00:00:00 2001 From: newer-relic <136116495+newer-relic@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:00:42 -0500 Subject: [PATCH 02/20] docs(NR-290692): update docs around how markers are included on NRQL charts --- .../change-tracking-view-analyze.mdx | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index 553d9026eb9..a0d82a64d3b 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -34,19 +34,50 @@ Before you jump into the details here about how to view and analyze the impact o If you land on a dashboard or entity summary page and don't see the tracked change you're expecting, check your time picker selection. It might be outside the window you are looking at. - * If you are still not seeing the markers that you're expecting, please verify whether you have added those Change tracking events to the entities relevant to the chart. Do note that charts are usually driven by a NRQL query and "entities relevant to the chart" are derived from the query based on the following logic: - * entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are... + * If you are still not seeing the markers that you're expecting, please verify whether you have added those change events to the entities relevant to the chart. Do note that charts are usually driven by a NRQL query (you can see the query for the chart by clicking on the three-dots at the tile's top-right corner) and "entities relevant to the chart" are derived from the query based on the following logic: + * Entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are: * `entity.guid` * `entityGuid` - * `appName` * `entity.name` * `entityName` - * entities that are [related](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/core-concepts/what-entity-new-relic/#related-entities) to entities specified via the method above. Only the following relationship-types are considered... + * `appName` + * `service.name` + * Entities that are [related](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/core-concepts/what-entity-new-relic/#related-entities) to entities specified via the method above. Only the following relationship-types are considered: * `CALLS` * `SERVES` * `IS` * `CONTAINS` * `HOSTS` + + Please be advised that __NRQL queries for charts are currently scoped to a single account__. This means that if you specify entity-GUIDs belonging to multiple accounts, only markers from a single account will be visualized. + + For example, let's say that the query for your chart looks like the following: + ``` + FROM Transaction SELECT count(*) WHERE entityGuid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDg0MTY1OTI','MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5') TIMESERIES MAX SINCE 2 weeks AGO + ``` + Markers from both entities will show up on the chart. Additionally, markers from related-entities will also be included on the chart. To determine the list of related-entities, you can run a GraphQL query similar to the example below: + ``` + { + actor { + entity(guid: "MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5") { + relatedEntities( + filter: {relationshipTypes: {include: [CALLS, SERVES, IS, CONTAINS, HOSTS]}} + ) { + results { + type + source { + guid + } + target { + guid + } + } + } + } + } + } + ``` + * **Entity sidebar:** To see a table of changes, click on **Change tracking** for any entity that has recorded changes. It features a time range selector and table filtering and sorting options. Use these to narrow the field of changes or to find a specific change. Note that you may need to adjust the selected time range on this page to see tracked changes. Also, by default the table will only lazy load up to 2,000 changes. Keep this in mind as you're filtering, searching, and adjusting your time range. * **New Relic & Detection:** If your change is related to an issue, you'll see it listed in the **Root Cause Analysis** section of the **Issues** page. From 37c9b0eddc51e3be686f4eaa72e00479d55338a8 Mon Sep 17 00:00:00 2001 From: newer-relic <136116495+newer-relic@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:46:13 -0500 Subject: [PATCH 03/20] docs(NR-290692): clarify how to examine query for a chart Co-authored-by: Jonathan Gordon --- .../docs/change-tracking/change-tracking-view-analyze.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index a0d82a64d3b..7c4b4f94c30 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -34,7 +34,7 @@ Before you jump into the details here about how to view and analyze the impact o If you land on a dashboard or entity summary page and don't see the tracked change you're expecting, check your time picker selection. It might be outside the window you are looking at. - * If you are still not seeing the markers that you're expecting, please verify whether you have added those change events to the entities relevant to the chart. Do note that charts are usually driven by a NRQL query (you can see the query for the chart by clicking on the three-dots at the tile's top-right corner) and "entities relevant to the chart" are derived from the query based on the following logic: + * If you are still not seeing the markers that you're expecting, please verify whether you have added those change events to the entities relevant to the chart. Most charts are driven by a NRQL query that you can see by clicking on the three-dots at the tile's top-right corner. The entities relevant to the chart are derived from the NRQL query based on the following logic: * Entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are: * `entity.guid` * `entityGuid` From 71b49e0ab266b2daf01e262c2059a186a8362c61 Mon Sep 17 00:00:00 2001 From: newer-relic <136116495+newer-relic@users.noreply.github.com> Date: Fri, 10 Jan 2025 10:55:44 -0500 Subject: [PATCH 04/20] docs(NR-290692): add explainer for "How markers are selected for inclusion on a chart" --- .../change-tracking-view-analyze.mdx | 96 ++++++++++--------- 1 file changed, 53 insertions(+), 43 deletions(-) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index 7c4b4f94c30..d1891c11b23 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -34,49 +34,9 @@ Before you jump into the details here about how to view and analyze the impact o If you land on a dashboard or entity summary page and don't see the tracked change you're expecting, check your time picker selection. It might be outside the window you are looking at. - * If you are still not seeing the markers that you're expecting, please verify whether you have added those change events to the entities relevant to the chart. Most charts are driven by a NRQL query that you can see by clicking on the three-dots at the tile's top-right corner. The entities relevant to the chart are derived from the NRQL query based on the following logic: - * Entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are: - * `entity.guid` - * `entityGuid` - * `entity.name` - * `entityName` - * `appName` - * `service.name` - * Entities that are [related](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/core-concepts/what-entity-new-relic/#related-entities) to entities specified via the method above. Only the following relationship-types are considered: - * `CALLS` - * `SERVES` - * `IS` - * `CONTAINS` - * `HOSTS` - - Please be advised that __NRQL queries for charts are currently scoped to a single account__. This means that if you specify entity-GUIDs belonging to multiple accounts, only markers from a single account will be visualized. - - For example, let's say that the query for your chart looks like the following: - ``` - FROM Transaction SELECT count(*) WHERE entityGuid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDg0MTY1OTI','MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5') TIMESERIES MAX SINCE 2 weeks AGO - ``` - Markers from both entities will show up on the chart. Additionally, markers from related-entities will also be included on the chart. To determine the list of related-entities, you can run a GraphQL query similar to the example below: - ``` - { - actor { - entity(guid: "MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5") { - relatedEntities( - filter: {relationshipTypes: {include: [CALLS, SERVES, IS, CONTAINS, HOSTS]}} - ) { - results { - type - source { - guid - } - target { - guid - } - } - } - } - } - } - ``` + + If you are still not seeing the markers that you're expecting, please review the ["How markers are selected for inclusion on a chart"](#nrql-markers-inclusion) section for more details on how change tracking events are selected for inclusion based on the chart's query. + * **Entity sidebar:** To see a table of changes, click on **Change tracking** for any entity that has recorded changes. It features a time range selector and table filtering and sorting options. Use these to narrow the field of changes or to find a specific change. Note that you may need to adjust the selected time range on this page to see tracked changes. Also, by default the table will only lazy load up to 2,000 changes. Keep this in mind as you're filtering, searching, and adjusting your time range. @@ -287,6 +247,56 @@ Try these examples or create your own queries: +#### How markers are selected for inclusion on a chart [#nrql-markers-inclusion] + +Most charts are driven by a NRQL query that you can see by clicking on the three-dots at the tile's top-right corner. Given a query, we go through the following steps to determine which markers to include on the resulting chart. + 1. Derive the set of entities relevant to the query - this includes both entities mentioned directly in the query as well as related entities. See below for more details. + 2. Paint a marker for each change tracking event recorded for this set of entities (up to a limit of 5000 events). + +The entities relevant to the chart are derived from the NRQL query based on the following logic: + * Entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are: + * `entity.guid` + * `entityGuid` + * `entity.name` + * `entityName` + * `appName` + * `service.name` + * Entities that are [related](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/core-concepts/what-entity-new-relic/#related-entities) to entities specified via the method above. Only the following relationship-types are considered: + * `CALLS` + * `SERVES` + * `IS` + * `CONTAINS` + * `HOSTS` + +Please be advised that __NRQL queries for charts are currently scoped to a single account__. This means that if you specify entity-GUIDs belonging to multiple accounts, only markers from a single account will be visualized. + +For example, let's say that the query for your chart looks like the following: +``` +FROM Transaction SELECT count(*) WHERE entityGuid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDg0MTY1OTI','MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5') TIMESERIES MAX SINCE 2 weeks AGO +``` +Markers from both entities will show up on the chart. Additionally, markers from related-entities will also be included on the chart. To determine the list of related-entities, you can run a GraphQL query similar to the example below: +``` +{ + actor { + entity(guid: "MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5") { + relatedEntities( + filter: {relationshipTypes: {include: [CALLS, SERVES, IS, CONTAINS, HOSTS]}} + ) { + results { + type + source { + guid + } + target { + guid + } + } + } + } + } +} +``` + ### NerdGraph (GraphQL) [#graphql-markers] Try these NerdGraph queries in our [NerdGraph explorer](/docs/apis/nerdgraph/get-started/nerdgraph-explorer#find): From 1be46bdf431cd3512067bee09f0dad1d05905756 Mon Sep 17 00:00:00 2001 From: svc-docs-eng-opensource-bot Date: Fri, 17 Jan 2025 12:04:30 +0000 Subject: [PATCH 05/20] chore: add translations --- .../net-agent-compatibility-requirements.mdx | 45 ++++++++++--------- .../python-agent-configuration.mdx | 4 ++ .../advanced/advanced-config.mdx | 2 +- .../build-nr-ui/build-nr-app.mdx | 4 +- .../install-serverless-azure-monitoring.mdx | 2 + .../service-level-management/create-slm.mdx | 2 +- 6 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/i18n/content/es/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx b/src/i18n/content/es/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx index bda75deaf18..0d1891790ea 100644 --- a/src/i18n/content/es/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx +++ b/src/i18n/content/es/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx @@ -343,7 +343,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum El agente .NET `v9.2.0` o superior instrumentó automáticamente la biblioteca [Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Microsoft.Azure.Cosmos) . * Versión mínima admitida: 3.17.0 - * Última versión compatible verificada: 3.44.0 + * Latest verified compatible version: 3.46.1 * Las versiones 3.35.0 y superiores son compatibles a partir del agente .NET v10.32.0 @@ -385,7 +385,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum Emplee [Oracle.ManagedDataAccess.Core](https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/) * Versión mínima compatible: 23.4.0 - * Última versión compatible verificada: 23.6.0 + * Latest verified compatible version: 23.7.0 Es posible que se instrumentaron versiones anteriores de `Oracle.ManagedDataAccess.Core` , pero no se probaron y no reciben soporte. @@ -451,7 +451,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum **MySql.Data** * Versión mínima admitida: 6.10.7 - * Última versión compatible verificada: 8.4.0 + * Última versión compatible verificada: 9.1.0 **MySqlConnector** @@ -472,7 +472,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum Versión mínima admitida: 1.0.488 - Última versión compatible verificada: 2.8.16 + Latest verified compatible version: 2.8.24 @@ -491,7 +491,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum **Elastic.Clients.Elasticsearch** * Versión mínima admitida: 8.0.0 - * Última versión compatible verificada: 8.15.8 + * Latest verified compatible version: 8.15.10 * Se admiten las versiones 8.10.0 y superiores a partir del agente .NET v10.20.1 * Las versiones 8.12.1 y superiores son compatibles a partir del agente .NET v10.23.0 @@ -538,7 +538,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima compatible: 3.5.0 - * Última versión compatible verificada: 3.7.404.5 + * Latest verified compatible version: 3.7.405.0 * Versión mínima del agente requerida: 10.33.0 @@ -631,7 +631,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum - 3.7.404.5 + 3.7.411.17 @@ -713,7 +713,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum - 5.3.14 + 5.3.15 @@ -773,7 +773,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima admitida: 1.4.0 - * Última versión compatible verificada: 2.5.3 + * Última versión compatible verificada: 2.8.0 @@ -827,7 +827,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima soportada: 7.1.0 - * Última versión compatible verificada: 8.2.5 + * Latest verified compatible version: 8.3.4 @@ -841,7 +841,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima compatible: 3.7.0 - * Última versión compatible verificada: 3.7.400.33 + * Latest verified compatible version: 3.7.400.76 @@ -1187,7 +1187,8 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum El agente .NET `v9.2.0` o superior instrumenta automáticamente la biblioteca [Microsoft.Azure.Cosmos](https://www.nuget.org/packages/Microsoft.Azure.Cosmos) . * Versión mínima admitida: 3.17.0 - * Última versión compatible verificada: 3.23.0 + * Latest verified compatible version: 3.46.1 + * Las versiones 3.35.0 y superiores son compatibles a partir del agente .NET v10.32.0 @@ -1315,7 +1316,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum **MySql.Data** * Versión mínima admitida: 6.10.7 - * Última versión compatible verificada: 8.4.0 + * Última versión compatible verificada: 9.1.0 **MySqlConnector** @@ -1337,7 +1338,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum Emplee [Oracle.ManagedDataAccess](https://www.nuget.org/packages/Oracle.ManagedDataAccess/) * Versión mínima compatible: 12.1.2400 - * Última versión compatible verificada: 23.5.1 + * Latest verified compatible version: 23.7.0 @@ -1383,7 +1384,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima admitida: 1.0.488 - * Última versión compatible verificada: 2.8.16 + * Latest verified compatible version: 2.8.24 @@ -1402,7 +1403,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum **Elastic.Clients.Elasticsearch** * Versión mínima admitida: 8.0.0 - * Última versión compatible verificada: 8.14.6 + * Latest verified compatible version: 8.15.10 * Se admiten las versiones 8.10.0 y superiores a partir del agente .NET v10.20.1 * Las versiones 8.12.1 y superiores son compatibles a partir del agente .NET v10.23.0 @@ -1449,7 +1450,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima compatible: 3.5.0 - * Última versión compatible verificada: 3.7.404.5 + * Latest verified compatible version: 3.7.405.2 * Versión mínima del agente requerida: 10.33.0 @@ -1600,7 +1601,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum - 3.7.404.5 + 3.7.411.17 @@ -1682,7 +1683,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum - 5.3.14 + 5.3.15 @@ -1740,7 +1741,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima admitida: 1.4.0 - * Última versión compatible verificada: 2.5.3 + * Última versión compatible verificada: 2.8.0 @@ -1804,7 +1805,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima soportada: 7.1.0 - * Última versión compatible verificada: 8.2.5 + * Latest verified compatible version: 8.3.4 @@ -1818,7 +1819,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum * Versión mínima compatible: 3.7.0 - * Última versión compatible verificada: 3.7.400.33 + * Latest verified compatible version: 3.7.400.76 diff --git a/src/i18n/content/es/docs/apm/agents/python-agent/configuration/python-agent-configuration.mdx b/src/i18n/content/es/docs/apm/agents/python-agent/configuration/python-agent-configuration.mdx index 075669c9fbe..af9f60c0226 100644 --- a/src/i18n/content/es/docs/apm/agents/python-agent/configuration/python-agent-configuration.mdx +++ b/src/i18n/content/es/docs/apm/agents/python-agent/configuration/python-agent-configuration.mdx @@ -1337,6 +1337,10 @@ Esta sección incluye la configuración del agente Python para configurar el mon Debe habilitar [el rastreo distribuido](/docs/apm/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration/#dt-main) para capturar datos de IA. Está activado de forma predeterminada en las versiones 7.0.0.166 y superiores del agente Python. + + When enabled, AI monitoring records a streaming copy of inputs and outputs sent to and from the models you choose to monitor, including any personal information contained therein. You're responsible for obtaining consent from your model users that their interactions may be recorded by a third party (New Relic) for the purpose of providing the AI monitoring feature. + + diff --git a/src/i18n/content/es/docs/network-performance-monitoring/advanced/advanced-config.mdx b/src/i18n/content/es/docs/network-performance-monitoring/advanced/advanced-config.mdx index 9a858c1160a..049d17e5b25 100644 --- a/src/i18n/content/es/docs/network-performance-monitoring/advanced/advanced-config.mdx +++ b/src/i18n/content/es/docs/network-performance-monitoring/advanced/advanced-config.mdx @@ -1722,7 +1722,7 @@ El Monitoreo de red agente tiene soporte integrado para recuperar claves de [AWS - La integración [API del panel de Meraki](https://developer.cisco.com/meraki/api-v1/) extrae varias métricas relacionadas con el estado de su entorno Meraki. La combinación de opciones de configuración le permite configurar diferentes escenarios de monitoreo para sus necesidades y crea una entidad en su cuenta de New Relic . + La integración [API del dashboard de Meraki](https://developer.cisco.com/meraki/api-v1/) extrae varias métricas relacionadas con el estado de su entorno Meraki. La combinación de opciones de configuración le permite configurar diferentes escenarios de monitoreo para sus necesidades y crea una entidad en su cuenta de New Relic . diff --git a/src/i18n/content/es/docs/new-relic-solutions/build-nr-ui/build-nr-app.mdx b/src/i18n/content/es/docs/new-relic-solutions/build-nr-ui/build-nr-app.mdx index 489a41eb097..5fe6fea888f 100644 --- a/src/i18n/content/es/docs/new-relic-solutions/build-nr-ui/build-nr-app.mdx +++ b/src/i18n/content/es/docs/new-relic-solutions/build-nr-ui/build-nr-app.mdx @@ -9,7 +9,7 @@ freshnessValidatedDate: never translationType: machine --- -New Relic le ofrece muchas opciones para [incorporar datos de cualquier fuente](/docs/data-apis/custom-data/intro-custom-data) y crear [gráficos](/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder) y [paneles](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards) personalizados. Pero si desea ir más allá de esas opciones y crear sus propias experiencias en New Relic, le brindamos acceso a las mismas herramientas que utilizamos para crear aplicaciones en nuestra plataforma. +New Relic le ofrece muchas opciones para [incorporar datos de cualquier fuente](/docs/data-apis/custom-data/intro-custom-data) y crear [gráficos](/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder) y [dashboards](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards) personalizados. Pero si desea ir más allá de esas opciones y crear sus propias experiencias en New Relic, le brindamos acceso a las mismas herramientas que utilizamos para crear aplicaciones en nuestra plataforma. From 02027f86cba7a890c9fcd2dfdbef1ca0dbb9a694 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 10:59:08 -0800 Subject: [PATCH 11/20] chore: add syntax highlighting --- .../nerdgraph/examples/manage-live-chart-urls-via-api.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/manage-live-chart-urls-via-api.mdx b/src/content/docs/apis/nerdgraph/examples/manage-live-chart-urls-via-api.mdx index 43d11b8072a..8ca54da0aa4 100644 --- a/src/content/docs/apis/nerdgraph/examples/manage-live-chart-urls-via-api.mdx +++ b/src/content/docs/apis/nerdgraph/examples/manage-live-chart-urls-via-api.mdx @@ -24,7 +24,7 @@ To do so: Use the following query to retrieve a list of existing live chart URLs: -``` +```graphql { actor { dashboard { @@ -48,9 +48,9 @@ Use the following query to retrieve a list of existing live chart URLs: Use the following query to revoke the live chart URL you specify: -``` +```graphql mutation { - dashboardWidgetRevokeLiveUrl(uuid: "") { + dashboardWidgetRevokeLiveUrl(uuid: "LIVE_CHART_UUID") { uuid errors { description From f7da4fe78e458b777c6000c64d6d0c0768b16fd6 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:03:29 -0800 Subject: [PATCH 12/20] fix: JSON -> json (it's case sensitive) --- .../mobile-monitoring-config-nerdgraph.mdx | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/mobile-monitoring-config-nerdgraph.mdx b/src/content/docs/apis/nerdgraph/examples/mobile-monitoring-config-nerdgraph.mdx index d0ae991c0c6..335f0c730e7 100644 --- a/src/content/docs/apis/nerdgraph/examples/mobile-monitoring-config-nerdgraph.mdx +++ b/src/content/docs/apis/nerdgraph/examples/mobile-monitoring-config-nerdgraph.mdx @@ -26,17 +26,15 @@ mutation CreateExampleMobileApplication($accountId: Int!, $name: String!) { name } } - ``` Variables: -```JSON +```json { "accountId": Int!, "name": String! } - ``` ## Retrieving the application token [#get-mobile-token] @@ -63,7 +61,7 @@ query FetchMobileApplicationToken($guid: EntityGuid!) { Variables: -```JSON +```json { "guid": EntityGuid! } @@ -76,7 +74,10 @@ Here's an example mutation that changes the name of your mobile app in New Relic Mutation: ```graphql -mutation UpdateMobileApplicationAlias($guid: EntityGuid!, $settings: $AgentApplicationSettingsUpdateInput) { +mutation UpdateMobileApplicationAlias( + $guid: EntityGuid!, + $settings: $AgentApplicationSettingsUpdateInput +) { agentApplicationSettingsUpdate(guid: $guid, settings: $settings) { alias guid @@ -91,7 +92,7 @@ mutation UpdateMobileApplicationAlias($guid: EntityGuid!, $settings: $AgentAppli Variables: -```JSON +```json { "guid": EntityGuid!, "settings": { @@ -107,7 +108,10 @@ Here's an example of how to configure settings vi Mutation: ```graphql -mutation UpdateMobileSettingsExample($guid: EntityGuid!, $settings: AgentApplicationSettingsUpdateInput!) { +mutation UpdateMobileSettingsExample( + $guid: EntityGuid! + $settings: AgentApplicationSettingsUpdateInput! +) { agentApplicationSettingsUpdate(guid: $guid, settings: $settings) { guid errors { @@ -138,7 +142,7 @@ mutation UpdateMobileSettingsExample($guid: EntityGuid!, $settings: AgentApplica Variables: -```JSON +```json { "guid": EntityGuid!, "settings": { From 6f0c29918277f1e95067480590f5b8112bc8990b Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:10:15 -0800 Subject: [PATCH 13/20] fix: codeblock & add formatting --- .../examples/manage-accounts-nerdgraph.mdx | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/manage-accounts-nerdgraph.mdx b/src/content/docs/apis/nerdgraph/examples/manage-accounts-nerdgraph.mdx index f14246b6686..6e4c9e9dcdc 100644 --- a/src/content/docs/apis/nerdgraph/examples/manage-accounts-nerdgraph.mdx +++ b/src/content/docs/apis/nerdgraph/examples/manage-accounts-nerdgraph.mdx @@ -61,7 +61,9 @@ Here's an example of how to create an account. Before creating an account, make ```graphql mutation { - accountManagementCreateAccount(managedAccount: {name: "NEW_ACCOUNT_NAME"}) { + accountManagementCreateAccount( + managedAccount: {name: "NEW_ACCOUNT_NAME"} + ) { managedAccount { id name @@ -75,7 +77,9 @@ If you have a complex account structure you may use the optional `regionCode` pa ```graphql mutation { - accountManagementCreateAccount(managedAccount: {name: "NEW_ACCOUNT_NAME", regionCode: "eu01"}) { + accountManagementCreateAccount( + managedAccount: { name: "NEW_ACCOUNT_NAME", regionCode: "eu01" } + ) { managedAccount { id name @@ -91,7 +95,9 @@ Here's an example of how to rename an account. ```graphql mutation { - accountManagementUpdateAccount(managedAccount: {name: "UPDATED_ACCOUNT_NAME", id: 101010101}) { + accountManagementUpdateAccount( + managedAccount: { name: "UPDATED_ACCOUNT_NAME", id: 101010101 } + ) { managedAccount { id name @@ -146,9 +152,10 @@ Here are some errors and what they mean: @@ -160,9 +167,9 @@ Here are some errors and what they mean: From c3d509fc60c372d8afe0a5e94adeeb958ddcb564 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:15:56 -0800 Subject: [PATCH 14/20] chore: add syntax highlighting --- .../examples/export-import-dashboards-using-api.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/export-import-dashboards-using-api.mdx b/src/content/docs/apis/nerdgraph/examples/export-import-dashboards-using-api.mdx index 26bd5335eb4..52a602f2cad 100644 --- a/src/content/docs/apis/nerdgraph/examples/export-import-dashboards-using-api.mdx +++ b/src/content/docs/apis/nerdgraph/examples/export-import-dashboards-using-api.mdx @@ -25,7 +25,7 @@ To do so: Use the following query to retrieve a list of your existing dashboards: -``` +```graphql { actor { entitySearch(queryBuilder: {type: DASHBOARD}) { @@ -47,10 +47,10 @@ Use the following query to retrieve a list of your existing dashboards: Use the following query to export, then extract the dashboard's entity information from the output: -``` +```graphql { actor { - entity(guid: "your_guid_xxxxxxx") { + entity(guid: "YOUR_DASHBOARD_GUID") { ... on DashboardEntity { name permissions @@ -81,9 +81,9 @@ Example entity information in GraphiQL output: Use the following mutation to import the dashboard into another account: -``` +```graphql mutation create($dashboard: DashboardInput!) { - dashboardCreate(accountId: your_new_AccountID, dashboard: $dashboard) { + dashboardCreate(accountId: YOUR_NEW_ACCOUNT_ID, dashboard: $dashboard) { entityResult { guid name From f5d0eab41a30be9eabfe5bb85845c19b00207193 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:42:30 -0800 Subject: [PATCH 15/20] chore: format grapql, replace `` with `VAR_NAME` --- ...dgraph-cloud-integrations-api-tutorial.mdx | 263 +++++++++--------- 1 file changed, 134 insertions(+), 129 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/nerdgraph-cloud-integrations-api-tutorial.mdx b/src/content/docs/apis/nerdgraph/examples/nerdgraph-cloud-integrations-api-tutorial.mdx index bf601a4e29d..d481448b258 100644 --- a/src/content/docs/apis/nerdgraph/examples/nerdgraph-cloud-integrations-api-tutorial.mdx +++ b/src/content/docs/apis/nerdgraph/examples/nerdgraph-cloud-integrations-api-tutorial.mdx @@ -52,10 +52,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que **Anonymous:** - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { providers { id @@ -75,10 +75,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que **Named:** - ``` + ```graphql query cloudProviders { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { providers { id @@ -98,10 +98,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns information about a specific provider account for your AWS integration. The properties `id`, `name`, `slug` are requested, along with a list of integrations available to be monitored. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { provider(slug: "aws") { id @@ -126,10 +126,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns information about a specific cloud service integration of a provider. In this example, the integration is the [AWS ALB monitoring integration](/docs/integrations/amazon-integrations/aws-integrations-list/aws-alb-monitoring-integration) and the provider is AWS. The properties `id`, `name`, `slug`, and `isAllowed` are requested with the available configuration parameters. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { provider(slug: "aws") { service(slug: "alb") { @@ -152,10 +152,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns the list of cloud accounts enabled with your New Relic account. (Your cloud account associates your New Relic account and a specific provider account with your integration.) You can enable multiple cloud provider accounts in the same New Relic account, even with the same cloud provider. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { linkedAccounts { id @@ -179,12 +179,12 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns information about a linked account, including the properties `name`, `providerId`, and a list of the cloud integrations enabled for monitoring. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { - linkedAccount(id: ) { + linkedAccount(id: LINKED_CLOUD_ACCOUNT_ID) { name provider { id @@ -210,10 +210,10 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns all monitored integrations for all the provider cloud accounts. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { linkedAccounts { name @@ -245,18 +245,18 @@ Queries are requests that are intended to only fetch data (no side effects). Que > This query returns information about a specific integration from a specific linked account. - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { - linkedAccount(id: ) { + linkedAccount(id: LINKED_CLOUD_ACCOUNT_ID) { name provider { id name } - integration(id: ) { + integration(id: INTEGRATION_ID) { id name service { @@ -290,25 +290,25 @@ Mutations are requests that are intended to have side effects, such as creating **Required:** - * The parameter `` is required and cannot be empty. It must be unique in your New Relic account. + * The parameter `PROVIDER_ACCOUNT_NAME` is required and cannot be empty. It must be unique in your New Relic account. * Other parameters are specific to the provider (AWS, GCP, and Azure) and are also required. In the following sections, you can see which parameters are required for each provider account. After linking an account the `createdAt` and `updatedAt` values are equal. - ``` + ```graphql mutation { cloudLinkAccount( accounts: { - accountId: , + accountId: YOUR_ACCOUNT_ID, aws: [{ - name: , - + name: PROVIDER_ACCOUNT_NAME, + # other parameters }] azure: [{ - name: , - + name: PROVIDER_ACCOUNT_NAME, + # other parameters }] gcp: [{ - name: , - + name: PROVIDER_ACCOUNT_NAME, + # other parameters }] } ) { @@ -331,14 +331,14 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation links an AWS provider account to your New Relic account. - ``` + ```graphql mutation { cloudLinkAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { aws: [{ - name: , - arn: + name: PROVIDER_ACCOUNT_NAME, + arn: AWS_ROLE_ARN }] } ) { @@ -361,14 +361,14 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation links an AWS account sending data through CloudWatch Metric Streams to your New Relic account. - ``` + ```graphql mutation { cloudLinkAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { aws: [{ - name: , - arn: , + name: PROVIDER_ACCOUNT_NAME, + arn: AWS_ROLE_ARN, metricCollectionMode: PUSH }] } @@ -392,17 +392,17 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation links a Microsoft Azure cloud subscription to the New Relic account. - ``` + ```graphql mutation { cloudLinkAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { azure: [{ - name: , - applicationId: , - clientSecret: , - tenantId: , - subscriptionId: + name: PROVIDER_ACCOUNT_NAME, + applicationId: AZURE_APP_ID, + clientSecret: AZURE_APP_KEY, + tenantId: AZURE_TENANT_ID, + subscriptionId: AZURE_SUBSCRIPTION_ID }] } ) { @@ -424,14 +424,14 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation rotates the client secret on an existing Microsoft Azure account. - ``` + ```graphql mutation { cloudUpdateAccount( - accountId: + accountId: YOUR_ACCOUNT_ID accounts: { azure: { - linkedAccountId: , - clientSecret: + linkedAccountId: NR_LINKED_ACCOUNT_ID, + clientSecret: AZURE_SECRET_TOKEN } } ) { @@ -453,14 +453,14 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation links a GCP project to the New Relic account. - ``` + ```graphql mutation { cloudLinkAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { gcp: [{ - name: , - projectId: + name: PROVIDER_ACCOUNT_NAME, + projectId: GCP_PROJECT_ID }] } ) { @@ -482,18 +482,18 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation allows you to rename one or more linked provider accounts. The `name` parameter is required, cannot be empty, and must be unique within your New Relic account. - ``` + ```graphql mutation { cloudRenameAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: [ { - id: , - name: + id: LINKED_CLOUD_ACCOUNT_ID_1, + name: PROVIDER_ACCOUNT_NAME }, { - id: , - name: + id: LINKED_CLOUD_ACCOUNT_ID_2, + name: PROVIDER_ACCOUNT_NAME } ] ) { @@ -512,15 +512,15 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation allows you to enable the monitoring of one or more specific cloud integrations in an existing cloud account. With this mutation, New Relic records data for the enabled integration from the provider account. For each provider account you have access to different input parameters, matching each available service. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { - : { - : [{ - linkedAccountId: , - + PROVIDER_SLUG : { + INTEGRATION_SLUG: [{ + linkedAccountId: LINKED_CLOUD_ACCOUNT_ID, + # other parameters }] } } @@ -549,15 +549,15 @@ Mutations are requests that are intended to have side effects, such as creating For the output of the operation, you can use [GraphQL fragments](https://graphql.org/learn/queries/#fragments) for integration specific configuration parameters. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { - : { - : [ - { linkedAccountId: }, - { linkedAccountId: } + PROVIDER_SLUG : { + INTEGRATION_SLUG : [ + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_1 }, + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_2 } ] } } @@ -586,23 +586,23 @@ Mutations are requests that are intended to have side effects, such as creating For the output of the operation, you can use [GraphQL fragments](https://graphql.org/learn/queries/#fragments) to ask for integration specific configuration parameters. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { - : { - : [ - { linkedAccountId: } + PROVIDER_SLUG_1: { + INTEGRATION_SLUG_1: [ + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_1 } ] - : [ - { linkedAccountId: } + INTEGRATION_SLUG_2: [ + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_2 } ] }, - : { - : [ - { linkedAccountId: }, - { linkedAccountId: } + PROVIDER_SLUG_2: { + INTEGRATION_SLUG_3: [ + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_3}, + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_4} ] } } @@ -631,17 +631,17 @@ Mutations are requests that are intended to have side effects, such as creating For parameters of a type list (for example, `awsRegion`) supply the full list. For the output of the operation, you can use [GraphQL fragments](https://graphql.org/learn/queries/#fragments) to ask for integration specific configuration parameters. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { - : { - : [{ - linkedAccountId: , - metricsPollingInterval: , - : , - : , + PROVIDER_SLUG: { + INTEGRATION_SLUG: [{ + linkedAccountId: LINKED_CLOUD_ACCOUNT_ID, + metricsPollingInterval: NEW_POLLING_INTERVAL, + PARAMETER_1: VALUE_1, + PARAMETER_N: VALUE_N, }] } } @@ -655,8 +655,8 @@ Mutations are requests that are intended to have side effects, such as creating } ... on SqsIntegration { metricsPollingInterval, - , - + PARAMETER_1, + PARAMETER_N } } errors { @@ -674,14 +674,14 @@ Mutations are requests that are intended to have side effects, such as creating > This mutation allows you to disable an integration and stop data collection for the specific cloud integration. - ``` + ```graphql mutation { cloudDisableIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { : { : [ - { linkedAccountId: } + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID } ] } } @@ -713,12 +713,12 @@ Mutations are requests that are intended to have side effects, such as creating This action can not be undone. However, you can link the account again, but account history will still be lost. - ``` + ```graphql mutation { cloudUnlinkAccount ( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { - { linkedAccountId: } + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID } } ) { unlinkedAccounts { @@ -748,10 +748,10 @@ To enable an AWS integration: > Send a query to fetch data about the account, specifically available providers and already created provider accounts: - ``` + ```graphql { actor { - account(id: ) { + account(id: YOUR_ACCOUNT_ID) { cloud { providers { id @@ -778,18 +778,18 @@ To enable an AWS integration: > Link an AWS provider account, if there is not one already linked or if you want to link another AWS account: - 1. Use your New Relic account identifier in the `` parameter. - 2. Provide a name for the provider account in the ``. + 1. Use your New Relic account identifier in the `YOUR_ACCOUNT_ID` parameter. + 2. Provide a name for the provider account in the `PROVIDER_ACCOUNT_NAME`. 3. Include the ARN of the AWS role used to fetch data from your AWS account. - ``` + ```graphql mutation { cloudLinkAccount( - accountId: , + accountId: YOUR_ACCOUNT_ID, accounts: { aws: [{ - name: , - arn: }] + name: PROVIDER_ACCOUNT_NAME, + arn: AWS_ROLE_ARN }] } ) { linkedAccounts { @@ -812,16 +812,16 @@ To enable an AWS integration: id="enable-sqs-integration" title="Enable the AWS SQS integration" > - Use your New Relic account ID in the `` parameter and the ID of the provider account in the `` parameter value. + Use your New Relic account ID in the `YOUR_ACCOUNT_ID` parameter and the ID of the provider account in the `LINKED_CLOUD_ACCOUNT_ID` parameter value. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { aws: { sqs: [ - { linkedAccountId: } + { linkedAccountId: LINKED_CLOUD_ACCOUNT_ID } ] } } @@ -847,17 +847,23 @@ To enable an AWS integration: id="enable-sqs-multiple-provider-accounts" title="Enable integration in multiple provider accounts" > - If you have multiple accounts with the same provider account, you can enable the same integration in multiple provider accounts at the same time. Use your New Relic account ID in the `` parameter and the ID of the provider accounts in the `` parameter value. + If you have multiple accounts with the same provider account, you can enable the same integration in multiple provider accounts at the same time. Use your New Relic account ID in the `YOUR_ACCOUNT_ID` parameter and the ID of the provider accounts in the `LINKED_CLOUD_ACCOUNT_ID_N` parameter value. - ``` + ```graphql mutation { cloudConfigureIntegration ( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { aws: { sqs: [ - { linkedAccountId: }, - { linkedAccountId: , configuration_param_1: value_1, configuration_param_2: value_2 } + { + linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_1 + }, + { + linkedAccountId: LINKED_CLOUD_ACCOUNT_ID_2, + configuration_param_1: value_1, + configuration_param_2: value_2 + } ] } } @@ -889,16 +895,19 @@ This example uses an [AWS SQS](/docs/integrations/amazon-integrations/aws-integr id="update-sqs-polling" title="Update the polling interval" > - To update the polling interval for an AWS SQS integration, use your New Relic account ID in the `` parameter and the `id` of the linked provider account in the `` parameter value: + To update the polling interval for an AWS SQS integration, use your New Relic account ID in the `YOUR_ACCOUNT_ID` parameter and the `id` of the linked provider account in the `LINKED_ACCOUNT_ID` parameter value: - ``` + ```graphql mutation { cloudConfigureIntegration( - accountId: , + accountId: YOUR_ACCOUNT_ID, integrations: { aws : { sqs: [ - { linkedAccountId: , metricsPollingInterval: 300 } + { + linkedAccountId: LINKED_CLOUD_ACCOUNT_ID, + metricsPollingInterval: 300 + } ] } } @@ -933,24 +942,20 @@ This example uses an [AWS SQS](/docs/integrations/amazon-integrations/aws-integr id="disable-sqs-scenario" title="Disable the SQS integration" > - Use your New Relic account identifier in the `` parameter and the ID of the linked cloud account the `` parameter value. + Use your New Relic account identifier in the `YOUR_ACCOUNT_ID` parameter and the ID of the linked cloud account the `LINKED_ACCOUNT_ID` parameter value. - ``` + ```graphql mutation { - cloudDisableIntegration ( - accountId: , + cloudDisableIntegration( + accountId: YOUR_ACCOUNT_ID integrations: { - aws: { - sqs: [ - { linkedAccountId: } - ] - } + aws: { sqs: [{ linkedAccountId: LINKED_CLOUD_ACCOUNT_ID }] } } ) { - disabledIntegrations { - id + disabledIntegrations { + id accountId - name + name } errors { type From 96c5dbd9f93f774f3361841049997756b10c3715 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:56:59 -0800 Subject: [PATCH 16/20] chore: format code --- .../nerdgraph-concurrency-tutorial.mdx | 117 +++++++++--------- 1 file changed, 59 insertions(+), 58 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/nerdgraph-concurrency-tutorial.mdx b/src/content/docs/apis/nerdgraph/examples/nerdgraph-concurrency-tutorial.mdx index e6f7ca45f3b..40937729724 100644 --- a/src/content/docs/apis/nerdgraph/examples/nerdgraph-concurrency-tutorial.mdx +++ b/src/content/docs/apis/nerdgraph/examples/nerdgraph-concurrency-tutorial.mdx @@ -14,34 +14,36 @@ New Relic's NerdGraph API enforces a limit of **25 concurrent requests per One way to handle concurrency is to use a worker pool. The below example uses the [async module](https://caolan.github.io/async/v3/docs.html#queue) to do so. It creates a queue that has a set concurrency execution limit, pushes requests as tasks onto that queue, and empties the queue once completeing all tasks. -```node -import got from 'got'; -import async from 'async'; +```js +import got from "got"; +import async from "async"; -const API_KEY = '' //GraphQL User Key -const MAX_CONCURRENCY = 25; //Maximum amount of requests in queue at a given time - -const GRAPH_API = 'https://api.newrelic.com/graphql'; -const HEADERS = { 'Content-Type': 'application/json', 'Api-Key': API_KEY }; +const API_KEY = "YOUR_GRAPHQL_USER_KEY"; // GraphQL User Key +const MAX_CONCURRENCY = 25; // Maximum amount of requests in queue at a given time +const GRAPH_API = "https://api.newrelic.com/graphql"; +const HEADERS = { "Content-Type": "application/json", "Api-Key": API_KEY }; async function main() { - let accounts = await getAccounts(); //All accounts to run a query against + let accounts = await getAccounts(); // All accounts to run a query against var allResults = []; //Queue initialization const q = async.queue(async (task, cb) => { - let result = await makeRequest(task.acct) - allResults.push({'transactionCount': result[0].count, 'account': task.acct.id}); + let result = await makeRequest(task.acct); + allResults.push({ + transactionCount: result[0].count, + account: task.acct.id, + }); cb(); }, MAX_CONCURRENCY); - //Push requests on to the queue (one for each account) - accounts.forEach(acct => { - q.push({acct: acct}); + // Push requests on to the queue (one for each account) + accounts.forEach((acct) => { + q.push({ acct: acct }); }); - await q.drain(); //Drain event listener when all tasks are complete + await q.drain(); // Drain event listener when all tasks are complete console.log(allResults); } @@ -49,53 +51,51 @@ async function main() { async function makeRequest(acct) { let nrql = `SELECT count(*) FROM Transaction`; let gql = `{ - actor { - account(id: ${acct.id}) { - nrql(query: "${nrql}", timeout: 90) { - results - } - } - } - }`; + actor { + account(id: ${acct.id}) { + nrql(query: "${nrql}", timeout: 90) { + results + } + } + } + }`; let opts = { url: GRAPH_API, headers: HEADERS, - json: {'query': gql, 'variables': {}} + json: { query: gql, variables: {} }, }; let response = await got.post(opts).json(); if (!response.errors) { return response.data.actor.account.nrql.results; } else { - console.log('Query Error'); + console.log("Query Error"); console.log(response.errors); } } async function getAccounts() { var q = `{ - actor { - accounts { - id - name - } - } - }` + actor { + accounts { + id + name + } + } + }`; var opts = { url: GRAPH_API, headers: HEADERS, - json: {'query': q, 'variables': {}} - } + json: { query: q, variables: {} }, + }; let resp = await got.post(opts).json(); return resp.data.actor.accounts; } - main(); - ``` ## Python @@ -107,35 +107,33 @@ You can also use Python by leveraging the following packages to handle asynchron Below sets a [Semaphore](https://docs.python.org/3/library/asyncio-sync.html?highlight=semaphore#asyncio.Semaphore) that manages the amount of concurrent simultaneous requests. It then uses `asyncio.gather()` to execute multiple co-routines concurrently and waits for their completion. -``` +```py import aiohttp import asyncio -API_KEY = '' +API_KEY = "YOUR_GRAPHQL_USER_KEY" MAX_CONCURRENCY = 25 -GRAPHQL_API = 'https://api.newrelic.com/graphql' -HEADERS = {'Content-Type': 'application/json', 'Api-Key': API_KEY} - +GRAPHQL_API = "https://api.newrelic.com/graphql" +HEADERS = {"Content-Type": "application/json", "Api-Key": API_KEY} async def main(): - #All accounts to run a query against + # All accounts to run a query against accounts = await get_accounts() # Semaphore for controlling concurrency limit = asyncio.Semaphore(MAX_CONCURRENCY) - #Add all accounts to run a query against + # Add all accounts to run a query against tasks = [send_request(acct, limit) for acct in accounts] - #Schedule all tasks to run concurrently + # Schedule all tasks to run concurrently allResults = await asyncio.gather(*tasks) print(allResults) - async def send_request(acct, limit): nrql = "SELECT count(*) FROM Transaction" - gql = f''' + gql = f""" {{ actor {{ account(id: {acct['id']}) {{ @@ -145,19 +143,22 @@ async def send_request(acct, limit): }} }} }} - ''' + """ async with limit: try: async with aiohttp.ClientSession() as session: - async with session.post(GRAPHQL_API, json={"query": gql, "variables":{}}, headers=HEADERS) as response: + async with session.post( + GRAPHQL_API, json={"query": gql, "variables": {}}, headers=HEADERS + ) as response: result = await response.json() - return {'transactionCount': result['data']['actor']['account']['nrql']['results'][0]['count'], 'account': acct['id']} + return { + "transactionCount": result["data"]["actor"]["account"]["nrql"]["results"][0]["count"],"account": acct["id"], + } except Exception as error: print("Query Error") raise error - async def get_accounts(): gql = """ { @@ -166,19 +167,19 @@ async def get_accounts(): id name } - } - } + } + } """ async with aiohttp.ClientSession() as session: - async with session.post(GRAPHQL_API, json={"query": gql, "variables":{}}, headers=HEADERS) as response: + async with session.post( + GRAPHQL_API, json={"query": gql, "variables": {}}, headers=HEADERS + ) as response: result = await response.json() - return result['data']['actor']['accounts'] - - -if __name__ == '__main__': - asyncio.run(main()) #Run event loop + return result["data"]["actor"]["accounts"] +if __name__ == "__main__": + asyncio.run(main()) # Run event loop ``` For more detail on NerdGraph limits, see [NerdGraph usage limits](/docs/apis/nerdgraph/nerdgraph-usage-limits). From 2b3467973a3b3623c4ec410f557d9cfe7b1521d2 Mon Sep 17 00:00:00 2001 From: Brian Hensley <48165493+brnhensley@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:42:13 -0800 Subject: [PATCH 17/20] chore: formatting & syntax highlighting --- .../nerdgraph-synthetics-tutorial.mdx | 763 +++++++++--------- 1 file changed, 360 insertions(+), 403 deletions(-) diff --git a/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx b/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx index bc4e47802f2..d891d45485d 100644 --- a/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx +++ b/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx @@ -57,7 +57,7 @@ Configure simple browser, scripted browser, and step monitors to use one or more > To identify a [private location](/docs/synthetics/synthetic-monitoring/private-locations/private-locations-overview-monitor-internal-sites-add-new-locations) in your scripts, use the private location's entity GUID. If the private location is configured to use [verified script execution](/docs/synthetics/synthetic-monitoring/private-locations/verified-script-execution-private-locations/), also include the `vsePassword` attribute. For example: - ``` + ```graphql locations: { private: { guid: LOCATION_ENTITY_GUID, @@ -68,7 +68,7 @@ Configure simple browser, scripted browser, and step monitors to use one or more [Public locations](/docs/synthetics/synthetic-monitoring/administration/synthetic-public-minion-ips/#location) use the location identifier without the AWS\_ prefix, for example: - ``` + ```graphql locations: { public: ["US_EAST_2", "US_WEST_1"] } @@ -193,7 +193,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > You can query your synthetic monitors to get current status information about your data or details about the monitor configuration. Many monitor configurations are surfaced as tags. - ``` + ```graphql { actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR'") { @@ -223,7 +223,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > You're able to query your private locations: - ``` + ```graphql { actor { entitySearch(query: "domain = 'SYNTH' AND type = 'PRIVATE_LOCATION'") { @@ -250,7 +250,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Query existing monitor downtimes. Configuration details are stored in tags. - ``` + ```graphql { actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR_DOWNTIME'") { @@ -277,7 +277,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Querying secure credentials lets you retrieve metadata only, but not the credential values themselves: - ``` + ```graphql { actor { entitySearch(query: "domain = 'SYNTH' AND type = 'SECURE_CRED'") { @@ -307,10 +307,10 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Retrieve the script used in a scripted API or scripted browser monitor. Other monitor types will return an error. - ``` + ```graphql { actor { - account(id: YOUR_ACCOUNT_ID) { + account(id: ACCOUNT_ID) { synthetics { script(monitorGuid: "ENTITY_GUID") { text @@ -328,10 +328,10 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Retrieve the steps configured for a step monitor. Other monitor types will return an error. - ``` + ```graphql { actor { - account(id: YOUR_ACCOUNT_ID) { + account(id: ACCOUNT_ID) { synthetics { steps(monitorGuid: "ENTITY_GUID") { ordinal @@ -351,7 +351,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Retrieve the entity GUID for a synthetic monitor using the monitor ID. - ``` + ```graphql { actor { entitySearch( @@ -378,7 +378,7 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Retrieve the status of all runtime upgrade tests for legacy runtime monitors. These tests populate the [runtime upgrades UI](/docs/synthetics/synthetic-monitoring/using-monitors/runtime-upgrade-ui/). The test result is stored in the `validationStatus` tag. If the upgrade test failed, the error message is available in the `validationError` tag. - ``` + ```graphql { actor { entitySearch(query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION'") { @@ -405,10 +405,12 @@ Queries make requests to fetch data. To learn additional query capabilities avai > Retrieve the status of a runtime upgrade test for a single legacy runtime monitor. These test results populate the [runtime upgrades UI](/docs/synthetics/synthetic-monitoring/using-monitors/runtime-upgrade-ui/). The test result is stored in the `validationStatus` tag. If the upgrade test failed, the error message is available in the `validationError` tag. - ``` + ```graphql { actor { - entitySearch(query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION' and domainId = 'MONITOR_ID'") { + entitySearch( + query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION' AND domainId = 'MONITOR_ID'" + ) { results { entities { accountId @@ -449,31 +451,26 @@ Below are some sample requests to automate the creation of your synthetic monito > Ping monitors check that your application is running. Here's an example for creating one in NerdGraph: - ``` + ```graphql mutation { - syntheticsCreateSimpleMonitor ( - accountId: YOUR_ACCOUNT_ID + syntheticsCreateSimpleMonitor( + accountId: ACCOUNT_ID monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - status: STATUS, - uri: "MONITORED_URI", + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + status: STATUS + uri: "MONITORED_URI" advancedOptions: { - customHeaders: { - name: "HEADER_NAME", - value: "HEADER_VALUE" - }, - redirectIsFailure: REDIRECT_IS_FAILURE, - responseValidationText: "VALIDATION_TEXT", - shouldBypassHeadRequest: BYPASS_HEAD_REQUEST, + customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } + redirectIsFailure: REDIRECT_IS_FAILURE + responseValidationText: "VALIDATION_TEXT" + shouldBypassHeadRequest: BYPASS_HEAD_REQUEST useTlsValidation: TLS_VALIDATION - }, + } apdexTarget: APDEX_TARGET } - ) { + ) { errors { description type @@ -489,43 +486,39 @@ Below are some sample requests to automate the creation of your synthetic monito > Simple browser monitors use Chrome instances to mimic customer visits. Here's an example for creating one in NerdGraph: - ``` + ```graphql mutation { - syntheticsCreateSimpleBrowserMonitor ( - accountId: YOUR_ACCOUNT_ID, + syntheticsCreateSimpleBrowserMonitor( + accountId: ACCOUNT_ID monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } - status: STATUS, - uri: "MONITORED_URI", + status: STATUS + uri: "MONITORED_URI" advancedOptions: { - customHeaders: { - name: "HEADER_NAME", - value: "HEADER_VALUE" - }, - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT, - responseValidationText: "VALIDATION_TEXT", + customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } + enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT + responseValidationText: "VALIDATION_TEXT" useTlsValidation: TLS_VALIDATION - }, + } apdexTarget: APDEX_TARGET - ) { + } + ) { errors { description type } } } - ``` + ``` [Scripted browser monitors](/docs/synthetics/synthetic-monitoring/scripting-monitors/introduction-scripted-browser-monitors) are more complex interactions with your pages and applications. Here's an example for creating one in NerdGraph: - ``` - mutation { - syntheticsCreateScriptBrowserMonitor ( - accountId: YOUR_ACCOUNT_ID, - monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" - } - script: "SCRIPT_CONTENT", - status: STATUS, - advancedOptions: { - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT - }, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type + ```graphql + mutation { + syntheticsCreateScriptBrowserMonitor( + accountId: ACCOUNT_ID + monitor: { + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" } + script: "SCRIPT_CONTENT" + status: STATUS + advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -574,32 +563,30 @@ Below are some sample requests to automate the creation of your synthetic monito > [Scripted API monitors](/docs/synthetics/synthetic-monitoring/scripting-monitors/write-synthetic-api-tests) check your API endpoints. Here's an example for creating one in NerdGraph: - ``` - mutation { - syntheticsCreateScriptApiMonitor ( - accountId: YOUR_ACCOUNT_ID, - monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" - } - script: "SCRIPT_CONTENT", - status: STATUS, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type + ```graphql + mutation { + syntheticsCreateScriptApiMonitor( + accountId: ACCOUNT_ID + monitor: { + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" } + script: "SCRIPT_CONTENT" + status: STATUS + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -609,44 +596,42 @@ Below are some sample requests to automate the creation of your synthetic monito > Step monitors provide codeless multi-step browser based monitors. Here's an example for creating one in NerdGraph: - ``` + ```graphql mutation { - syntheticsCreateStepMonitor ( - accountId: NR_ACCOUNT_ID, - monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" + syntheticsCreateStepMonitor( + accountId: ACCOUNT_ID + monitor: { + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" } - status: STATUS, - steps: [{ - ordinal: 0, - type: NAVIGATE, - values: ["MONITORED_URI"],["USER_AGENT"] - },{ - ordinal: STEP_NUMBER, - type: STEP_TYPE, - values: ["CONDITIONAL_TYPE","VALUE"] - }] - advancedOptions: { - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT - }, - apdexTarget: APDEX_TARGET - } - ) { + status: STATUS + steps: [ + { + ordinal: 0, + type: NAVIGATE, + values: ["MONITORED_URI", "USER_AGENT"] } + { + ordinal: STEP_NUMBER + type: STEP_TYPE + values: ["CONDITIONAL_TYPE", "VALUE"] + } + ] + advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } + apdexTarget: APDEX_TARGET + } + ) { errors { description type } - } + } } ``` @@ -657,28 +642,26 @@ Below are some sample requests to automate the creation of your synthetic monito > Set up monitors to notify you when your SSL certificates are about to expire. Here's an example for creating one in NerdGraph: - ``` - mutation { - syntheticsCreateCertCheckMonitor ( - accountId: YOUR_ACCOUNT_ID, - monitor: { - domain: "DOMAIN", - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION, - period: PERIOD, - status: STATUS, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type - } + ```graphql + mutation { + syntheticsCreateCertCheckMonitor( + accountId: ACCOUNT_ID + monitor: { + domain: "DOMAIN" + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION + period: PERIOD + status: STATUS + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -688,32 +671,26 @@ Below are some sample requests to automate the creation of your synthetic monito > Broken links monitors check the links on a webpage for failure. Here's an example for creating one in NerdGraph: - ``` + ```graphql mutation { - syntheticsCreateBrokenLinksMonitor ( - accountId: YOUR_ACCOUNT_ID, + syntheticsCreateBrokenLinksMonitor( + accountId: ACCOUNT_ID monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - status: STATUS, - apdexTarget: APDEX_TARGET, - uri: "MONITOR_URI", - tags: { - key: "YOUR_TAG_NAME", - values: "TAG_VALUE" - } - } - ) { - errors { - description - type - } + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + status: STATUS + apdexTarget: APDEX_TARGET + uri: "MONITOR_URI" + tags: { key: "YOUR_TAG_NAME", values: "TAG_VALUE" } + } + ) { + errors { + description + type + } } } - ``` @@ -733,28 +710,23 @@ While you can't change the monitor type after creating it, you can update its se > Use this to update your ping monitors: - ``` + ```graphql mutation { - syntheticsUpdateSimpleMonitor ( - guid: "ENTITY_GUID", + syntheticsUpdateSimpleMonitor( + guid: "ENTITY_GUID" monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - status: STATUS, - uri: "MONITORED_URI", + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + status: STATUS + uri: "MONITORED_URI" advancedOptions: { - customHeaders: { - name: "HEADER_NAME", - value: "HEADER_VALUE" - }, - redirectIsFailure: REDIRECT_IS_FAILURE, - responseValidationText: "VALIDATION_TEXT", - shouldBypassHeadRequest: BYPASS_HEAD_REQUEST, + customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } + redirectIsFailure: REDIRECT_IS_FAILURE + responseValidationText: "VALIDATION_TEXT" + shouldBypassHeadRequest: BYPASS_HEAD_REQUEST useTlsValidation: TLS_VALIDATION - }, + } apdexTarget: APDEX_TARGET } ) { @@ -773,42 +745,38 @@ While you can't change the monitor type after creating it, you can update its se > To update a simple browser monitor (including the ability to upgrade the runtime version), use this: - ``` - mutation { - syntheticsUpdateSimpleBrowserMonitor ( - guid: ENTITY_GUID, - monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" - } - status: STATUS, - uri: "MONITORED_URI", - advancedOptions: { - customHeaders: { - name: "HEADER_NAME", - value: "HEADER_VALUE" - }, - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT, - responseValidationText: "VALIDATION_TEXT", - useTlsValidation: TLS_VALIDATION - }, - apdexTarget: APDEX_TARGET - ) { - errors { - description - type + ```graphql + mutation { + syntheticsUpdateSimpleBrowserMonitor( + guid: ENTITY_GUID + monitor: { + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" + } + status: STATUS + uri: "MONITORED_URI" + advancedOptions: { + customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } + enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT + responseValidationText: "VALIDATION_TEXT" + useTlsValidation: TLS_VALIDATION } + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -818,37 +786,33 @@ While you can't change the monitor type after creating it, you can update its se > To update a scripted browser monitor (including the ability to upgrade the runtime version), use this: - ``` - mutation { - syntheticsUpdateScriptBrowserMonitor ( - guid: ENTITY_GUID, - monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" - } - script: "SCRIPT_CONTENT", - status: STATUS, - advancedOptions: { - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT - }, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type + ```graphql + mutation { + syntheticsUpdateScriptBrowserMonitor( + guid: ENTITY_GUID + monitor: { + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" } + script: "SCRIPT_CONTENT" + status: STATUS + advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -858,33 +822,30 @@ While you can't change the monitor type after creating it, you can update its se > To update a scripted API monitor (including the ability to upgrade the runtime version), use this: - ``` - mutation { - syntheticsUpdateScriptApiMonitor ( - guid: ENTITY_GUID, - monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", - scriptLanguage: "SCRIPT_LANGUAGE" - } - script: "SCRIPT_CONTENT", - status: STATUS, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type + ```graphql + mutation { + syntheticsUpdateScriptApiMonitor( + guid: ENTITY_GUID + monitor: { + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + runtime: { + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" + scriptLanguage: "SCRIPT_LANGUAGE" } + script: "SCRIPT_CONTENT" + status: STATUS + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } - + } ``` @@ -894,43 +855,42 @@ While you can't change the monitor type after creating it, you can update its se > Use this to update a step monitor: - ``` + ```graphql mutation { - syntheticsUpdateStepMonitor ( - guid: ENTITY_GUID, + syntheticsUpdateStepMonitor( + guid: ENTITY_GUID monitor: { - browsers: [BROWSERS], - devices: [DEVICES], - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "MONITOR_NAME", - period: PERIOD, + browsers: [BROWSERS] + devices: [DEVICES] + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "MONITOR_NAME" + period: PERIOD runtime: { - runtimeType: "RUNTIME_TYPE", - runtimeTypeVersion: "RUNTIME_TYPE_VERSION", + runtimeType: "RUNTIME_TYPE" + runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" + } + status: STATUS + steps: [ + { + ordinal: 0, + type: NAVIGATE, + values: ["MONITORED_URI", "USER_AGENT"] } - status: STATUS, - steps: [{ - ordinal: 0, - type: NAVIGATE, - values: ["MONITORED_URI"],["USER_AGENT"] - },{ - ordinal: STEP_NUMBER, - type: STEP_TYPE, - values: ["VALUE_1","VALUE_2"] - }] - advancedOptions: { - enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT - }, + { + ordinal: STEP_NUMBER, + type: STEP_TYPE, + values: ["VALUE_1", "VALUE_2"] + } + ] + advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } apdexTarget: APDEX_TARGET } ) { - errors { - description - type - } + errors { + description + type + } } } ``` @@ -942,28 +902,26 @@ While you can't change the monitor type after creating it, you can update its se > Use this to update a certificate check monitor: - ``` - mutation { - syntheticsUpdateCertCheckMonitor ( - guid: ENTITY_GUID, - monitor: { - domain: "DOMAIN", - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION, - period: PERIOD, - status: STATUS, - apdexTarget: APDEX_TARGET - } - ) { - errors { - description - type - } + ```graphql + mutation { + syntheticsUpdateCertCheckMonitor( + guid: ENTITY_GUID + monitor: { + domain: "DOMAIN" + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION + period: PERIOD + status: STATUS + apdexTarget: APDEX_TARGET + } + ) { + errors { + description + type } } + } ``` @@ -973,29 +931,27 @@ While you can't change the monitor type after creating it, you can update its se > Use this to update a broken links monitor: - ``` + ```graphql mutation { - syntheticsUpdateBrokenLinksMonitor ( - guid: ENTITY_GUID, + syntheticsUpdateBrokenLinksMonitor( + guid: ENTITY_GUID monitor: { - locations: { - public: ["LOCATION_1", "LOCATION_2"] - }, - name: "YOUR_MONITOR_NAME", - period: PERIOD, - status: STATUS, - apdexTarget: APDEX_TARGET, - uri: "MONITOR_URI", - tags: { + locations: { public: ["LOCATION_1", "LOCATION_2"] } + name: "YOUR_MONITOR_NAME" + period: PERIOD + status: STATUS + apdexTarget: APDEX_TARGET + uri: "MONITOR_URI" + tags: { key: "YOUR_TAG_NAME", - values: "TAG_VALUE" - } - } - ) { - errors { - description - type + values: "TAG_VALUE" } + } + ) { + errors { + description + type + } } } ``` @@ -1012,10 +968,10 @@ While you can't change the monitor type after creating it, you can update its se Check out [optional-fields](#optional-fields) for additional details on runtime settings. - ``` + ```graphql mutation { syntheticsUpdateScriptBrowserMonitor ( - guid: "", + guid: "ENTITY_GUID", monitor: { runtime: { runtimeType: "RUNTIME_TYPE", @@ -1044,10 +1000,10 @@ While you can't change the monitor type after creating it, you can update its se Check out [optional-fields](#optional-fields) for additional details on runtime settings. - ``` + ```graphql mutation { syntheticsUpdateScriptBrowserMonitor ( - guid: "", + guid: "ENTITY_GUID", monitor: { runtime: { runtimeType: "", @@ -1077,11 +1033,11 @@ Use these scripts to delete your monitors: > Delete a monitor using the monitor entity GUID. - ``` + ```graphql mutation { syntheticsDeleteMonitor ( guid: "ENTITY_GUID" - ) { + ) { deletedGuid } } @@ -1098,10 +1054,10 @@ A [private location](/docs/synthetics/synthetic-monitoring/private-locations/pri id="private-location" title="Create a private location" > - ``` - mutation{ + ```graphql + mutation { syntheticsCreatePrivateLocation ( - accountId: NR_ACCOUNT_ID, + accountId: ACCOUNT_ID, name: "PrivateLocationName", description: "Optional description", verifiedScriptExecution: false @@ -1120,18 +1076,18 @@ A [private location](/docs/synthetics/synthetic-monitoring/private-locations/pri id="private-location" title="Update a private location" > - ``` + ```graphql mutation { syntheticsUpdatePrivateLocation ( - guid: YOUR_ENTITY_GUID, + guid: ENTITY_GUID, description: "EnterYourDescription", verifiedScriptExecution: true ) { - description - verifiedScriptExecution - errors { description - type + verifiedScriptExecution + errors { + description + type } } } @@ -1142,11 +1098,11 @@ A [private location](/docs/synthetics/synthetic-monitoring/private-locations/pri id="delete-private locations" title="Delete a private location" > - ``` + ```graphql mutation { syntheticsDeletePrivateLocation ( - guid: YOUR_ENTITY_GUID - ) { + guid: ENTITY_GUID + ) { errors { description type @@ -1162,11 +1118,11 @@ A [private location](/docs/synthetics/synthetic-monitoring/private-locations/pri > If you need to clear an unwieldy backlog, use this: - ``` + ```graphql mutation { syntheticsPurgePrivateLocationQueue ( - guid: YOUR_ENTITY_GUID - ) { + guid: ENTITY_GUID + ) { errors { description type @@ -1186,14 +1142,14 @@ You use [secure credentials](/docs/synthetics/synthetic-monitoring/using-monitor id="secure-credential" title="Create a secure credential" > - ``` + ```graphql mutation { syntheticsCreateSecureCredential ( - accountId: YOUR_ENTITY_GUID, + accountId: ACCOUNT_ID, description: "YourOptionalDescription", key: SECURE_CREDENTIAL_NAME, value: SECURE_CREDENTIAL_VALUE - ) { + ) { errors { description } @@ -1206,13 +1162,14 @@ You use [secure credentials](/docs/synthetics/synthetic-monitoring/using-monitor id="update-secure" title="Update a secure credential" > - ``` + ```graphql mutation { - syntheticsUpdateSecureCredential ( - accountId: YOUR_ACCOUNT_ID, - description: "YourOptionalDescription", - key: SECURE_CREDENTIAL_NAME, - value: SECURE_CREDENTIAL_VALUE) { + syntheticsUpdateSecureCredential( + accountId: ACCOUNT_ID + description: "YourOptionalDescription" + key: SECURE_CREDENTIAL_NAME + value: SECURE_CREDENTIAL_VALUE + ) { createdAt lastUpdate errors { @@ -1227,12 +1184,12 @@ You use [secure credentials](/docs/synthetics/synthetic-monitoring/using-monitor id="secure-credential" title="Delete a secure credential" > - ``` + ```graphql mutation { syntheticsDeleteSecureCredential ( - accountId: YOUR_ACCOUNT_ID, + accountId: ACCOUNT_ID, key: SECURE_CREDENTIAL_NAME - ) { + ) { errors { description } @@ -1251,13 +1208,13 @@ Monitor downtimes let you specify times that your synthetics should stop running id="create-once-downtime" title="Create a monitor downtime that runs once" > - ``` + ```graphql mutation { syntheticsCreateOnceMonitorDowntime ( - accountId: NR_ACCOUNT_ID, + accountId: ACCOUNT_ID, name: "MonitorDowntimeName", monitorGuids: ["OptionalMonitorEntityGuid", "OptionalMonitorEntityGuid"], - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss" ) { @@ -1277,13 +1234,13 @@ Monitor downtimes let you specify times that your synthetics should stop running id="create-daily-downtime" title="Create a monitor downtime that runs daily" > - ``` + ```graphql mutation { syntheticsCreateDailyMonitorDowntime ( - accountId: NR_ACCOUNT_ID, + accountId: ACCOUNT_ID, name: "MonitorDowntimeName", monitorGuids: ["OptionalMonitorEntityGuid", "AnotherOptionalMonitorEntityGuid"], - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1311,13 +1268,13 @@ Monitor downtimes let you specify times that your synthetics should stop running id="create-weekly-downtime" title="Create a monitor downtime that runs weekly" > - ``` + ```graphql mutation { syntheticsCreateWeeklyMonitorDowntime ( - accountId: NR_ACCOUNT_ID, + accountId: ACCOUNT_ID, name: "MonitorDowntimeName", monitorGuids: ["OptionalMonitorEntityGuid", "AnotherOptionalMonitorEntityGuid"], - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1347,13 +1304,13 @@ Monitor downtimes let you specify times that your synthetics should stop running id="create-monthly-downtime" title="Create a monitor downtime that runs monthly" > - ``` + ```graphql mutation { syntheticsCreateMonthlyMonitorDowntime ( - accountId: NR_ACCOUNT_ID, + accountId: ACCOUNT_ID, name: "MonitorDowntimeName", monitorGuids: ["OptionalMonitorEntityGuid", "AnotherOptionalMonitorEntityGuid"], - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1395,19 +1352,19 @@ Monitor downtimes let you specify times that your synthetics should stop running id="update-downtime" title="Update a monitor downtime" > - ``` + ```graphql mutation { syntheticsEditMonitorDowntime ( guid: "MonitorDowntimeEntityGuid", name: "MONITOR_DOWNTIME_NAME", monitorGuids: ["OptionalMonitorEntityGuid", "AnotherOptionalMonitorEntityGuid"], once: { - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss" }, daily: { - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1416,7 +1373,7 @@ Monitor downtimes let you specify times that your synthetics should stop running } }, weekly: { - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1426,7 +1383,7 @@ Monitor downtimes let you specify times that your synthetics should stop running maintenanceDays: [WeekDaysEnums] }, monthly: { - timezone: "Timezone", + timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { @@ -1469,7 +1426,7 @@ Monitor downtimes let you specify times that your synthetics should stop running id="delete-downtime" title="Delete a monitor downtime" > - ``` + ```graphql mutation { syntheticsDeleteMonitorDowntime ( guid: DOWNTIME_ENTITY_GUID From 7b7004f783896d7de409bd055cddfacbe8ebda00 Mon Sep 17 00:00:00 2001 From: Abhilash Dutta Date: Tue, 21 Jan 2025 09:41:11 +0530 Subject: [PATCH 18/20] Update change-tracking-view-analyze.mdx --- .../docs/change-tracking/change-tracking-view-analyze.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index d1891c11b23..89e51a8efcb 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -249,9 +249,10 @@ Try these examples or create your own queries: #### How markers are selected for inclusion on a chart [#nrql-markers-inclusion] -Most charts are driven by a NRQL query that you can see by clicking on the three-dots at the tile's top-right corner. Given a query, we go through the following steps to determine which markers to include on the resulting chart. - 1. Derive the set of entities relevant to the query - this includes both entities mentioned directly in the query as well as related entities. See below for more details. - 2. Paint a marker for each change tracking event recorded for this set of entities (up to a limit of 5000 events). +Most charts are driven by a NRQL query, which you can view by clicking the three dots in the tile's top-right corner. When working with a query, follow these steps to determine which markers to include on the resulting chart: + +1. Derive the set of relevant entities that includes both entities mentioned directly in the query and related entities. Refer to the section below for more details. +2. Paint a marker for each change-tracking event recorded for this set of entities, plot a marker, with a limit of up to 5,000 events. The entities relevant to the chart are derived from the NRQL query based on the following logic: * Entities that are directly specified in the query for the chart using either an `IN` or `=` operator (e.g. queries with an `WHERE entity.guid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDEyMDk1MjY5')` clause). While we use `entity.guid` as an example, other properties may also be used to explicitly designate entities for the query. They are: From 28bcbc1ab3af79dc5cdf2e308695fc256ecdce37 Mon Sep 17 00:00:00 2001 From: Abhilash Dutta Date: Tue, 21 Jan 2025 09:43:20 +0530 Subject: [PATCH 19/20] Update change-tracking-view-analyze.mdx --- .../docs/change-tracking/change-tracking-view-analyze.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx index 89e51a8efcb..23624d7c527 100644 --- a/src/content/docs/change-tracking/change-tracking-view-analyze.mdx +++ b/src/content/docs/change-tracking/change-tracking-view-analyze.mdx @@ -271,7 +271,7 @@ The entities relevant to the chart are derived from the NRQL query based on the Please be advised that __NRQL queries for charts are currently scoped to a single account__. This means that if you specify entity-GUIDs belonging to multiple accounts, only markers from a single account will be visualized. -For example, let's say that the query for your chart looks like the following: +For example, let's consider that the query for your chart looks like the following: ``` FROM Transaction SELECT count(*) WHERE entityGuid IN ('MTE2NjAxMzJ8QVBNfEFQUExJQ0FUSU9OfDg0MTY1OTI','MTEwNjI2OTl8QVBNfEFQUExJQ0FUSU9OfDg5ODEwMDk5') TIMESERIES MAX SINCE 2 weeks AGO ``` From 6462f59eeee70f15bc28025224cb26b2bf82fea4 Mon Sep 17 00:00:00 2001 From: NewRelic-K8s-Agents-Bot Date: Tue, 21 Jan 2025 12:03:24 +0000 Subject: [PATCH 20/20] feat: Add release notes for Kubernetes integration v3.33.0 --- .../kubernetes-integration-3-33-0.mdx | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/content/docs/release-notes/infrastructure-release-notes/kubernetes-integration-release-notes/kubernetes-integration-3-33-0.mdx diff --git a/src/content/docs/release-notes/infrastructure-release-notes/kubernetes-integration-release-notes/kubernetes-integration-3-33-0.mdx b/src/content/docs/release-notes/infrastructure-release-notes/kubernetes-integration-release-notes/kubernetes-integration-3-33-0.mdx new file mode 100644 index 00000000000..62375ecfe1a --- /dev/null +++ b/src/content/docs/release-notes/infrastructure-release-notes/kubernetes-integration-release-notes/kubernetes-integration-3-33-0.mdx @@ -0,0 +1,11 @@ +--- +subject: Kubernetes integration +releaseDate: '2025-01-21' +version: 3.33.0 +--- + +For a detailed description of changes, see the [release notes](https://github.com/newrelic/nri-kubernetes/releases/tag/v3.33.0). + +This integration is included in the following chart versions: +* [newrelic-infrastructure-3.38.0](https://github.com/newrelic/nri-kubernetes/releases/tag/newrelic-infrastructure-3.38.0) +* [nri-bundle-5.0.107](https://github.com/newrelic/helm-charts/releases/tag/nri-bundle-5.0.107)
- ```"unauthorized", { - extensions: { nerdGraphExtensions: { errorClass: "ACCESS_DENIED" } } - } + ``` + "unauthorized", { + extensions: { nerdGraphExtensions: { errorClass: "ACCESS_DENIED" } } + } ```
``` - cannot create subaccount -- multiple parent account ids found. Please use Partnership API.", { - extensions: { nerdGraphExtensions: { errorClass: "SERVER_ERROR" } } - } + "cannot create subaccount -- multiple parent account ids found. Please use Partnership API.", { + extensions: { nerdGraphExtensions: { errorClass: "SERVER_ERROR" } } + } ```