diff --git a/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/delegated-administration.mdx b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/delegated-administration.mdx
new file mode 100644
index 00000000000..73bc4484911
--- /dev/null
+++ b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/delegated-administration.mdx
@@ -0,0 +1,257 @@
+---
+title: "Step 2: Manage users and access"
+metaDescription: "Use the delegated administration options in multi-tenancy to manage user access in other organizations"
+freshnessValidatedDate: 2024-09-05
+---
+
+When setting up multi-tenancy, you can use delegated administration to make user or access management changes within other managed organizations. In the case of managed service providers, delegated administration allows you to manage users and access on behalf of your end customers.
+
+## Requirements [#requirements]
+
+As a reminder, to use the multi-tenancy feature, make sure you've completed the following for your organization:
+
+1. Get Approval: Contact your account representative to confirm your organization has been added to multi-tenancy. Once approved, you receive the multi-tenant entitlement.
+2. Make sure you have correct user types: Users within the managing org that will leverage the above feature set need to be provisioned as either a core or full platform users.
+3. Add users to appropriate group: Users with the core or full platform user type need to be added to a group with `tenant_settings` applied.
+
+
+
+## What can you call in NerdGraph? [#user-calls]
+
+Once you confirm that you meet the requirements for multi-tenancy, you can call our NerdGraph queries and mutations for managing users in managed organizations.
+
+You'll be able to query all `customerAdministration` fields and execute a variety of mutations:
+
+
+
+
+Use this mutation to grant access to a group. To find the `roleID`, see [List roles](#list-roles).
+
+```graphql
+mutation {
+ authorizationManagementGrantAccess(
+ grantAccessOptions: {
+ groupId: "11111111-1111-1111-1111-111111111111"
+ accountAccessGrants: {
+ accountId: YOUR_ACCOUNT_ID
+ roleId: "YOUR_ROLE_ID"
+ }
+ }
+ ) {
+ roles {
+ displayName
+ accountId
+ }
+ }
+}
+```
+
+
+```graphql
+mutation {
+ authorizationManagementRevokeAccess(
+ revokeAccessOptions: {
+ accountAccessGrants: {
+ accountId: YOUR_ACCOUNT_ID
+ roleId: "YOUR_ROLE_ID"
+ }
+ groupId: "YOUR_GROUP_ID"
+ }
+ ) {
+ roles {
+ accountId
+ displayName
+ }
+ }
+}
+```
+
+
+
+```graphql
+mutation {
+ userManagementCreateGroup(
+ createGroupOptions: {
+ authenticationDomainId: "YOUR_AUTH_DOMAIN_ID"
+ displayName: "GROUP_DISPLAY_NAME"
+ }
+ ) {
+ group {
+ displayName
+ id
+ }
+ }
+}
+
+
+ ```
+
+
+```graphql
+mutation {
+ userManagementDeleteGroup(groupOptions: {id: "GROUP_ID_HERE"}) {
+ group {
+ displayName
+ id
+ }
+ }
+}
+```
+
+
+ ```graphql
+mutation {
+ userManagementAddUsersToGroups(addUsersToGroupsOptions: {groupIds: ["II"], userIds: ["3"]}) {
+ groups {
+ id
+ displayName
+ users {
+ totalCount
+ }
+ }
+ }
+}
+```
+
+
+
+
+```graphql
+mutation {
+ userManagementRemoveUsersFromGroups(
+ removeUsersFromGroupsOptions: {
+ groupIds: [YOUR_GROUP_IDS]
+ userIds: [YOUR_USER_IDS]
+ }
+ ) {
+ groups {
+ displayName
+ id
+ }
+ }
+}
+
+```
+
+
+```graphql
+mutation {
+ userManagementUpdateGroup(
+ updateGroupOptions: {
+ id: "YOUR_GROUP_ID"
+ displayName: "NEW_GROUP_DISPLAY_NAME"
+ }
+ ) {
+ group {
+ displayName
+ id
+ }
+ }
+}
+```
+
+
+Use this mutation to create a new user. To find the `authenticationDomainId`, see
+[Query authentication domains](#query-domains).
+
+```graphql
+mutation {
+ userManagementCreateUser(
+ createUserOptions: {
+ authenticationDomainId: "B"
+ email: "a@b.c"
+ name: "A B C"
+ }
+ ) {
+ createdUser {
+ id
+ email
+ name
+ }
+ }
+}
+```
+
+
+```graphql
+mutation {
+ userManagementDeleteUser(deleteUserOptions: {id: "ID_OF_YOUR_USER"}) {
+ deletedUser {
+ id
+ }
+ }
+}
+
+```
+
+
+```graphql
+{
+ customerAdministration {
+ authenticationDomains(filter: {organizationId: {eq: "Y"}}) {
+ items {
+ id
+ name
+ provisioningType
+ authenticationType
+ }
+ }
+ }
+}
+```
+
+
+```graphql
+{
+ customerAdministration {
+ roles(filter: {organizationId: {eq: "ANY_ORG_ID"}}) {
+ items {
+ id
+ name
+ scope
+ type
+ }
+ }
+ }
+}
+```
+
+
+
+
diff --git a/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/intro-to-multi-tenancy.mdx b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/intro-to-multi-tenancy.mdx
new file mode 100644
index 00000000000..cea6f3afd60
--- /dev/null
+++ b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/intro-to-multi-tenancy.mdx
@@ -0,0 +1,112 @@
+---
+title: "Introduction to multi-tenancy"
+metaDescription: "The multi-tenancy feature helps you manage multiple organizations and accounts"
+freshnessValidatedDate: 2024-09-05
+---
+
+If your company is composed of more than one business unit, you can use multi-tenancy to model your company structure in New Relic. This feature allows you to set up multiple tenants (organizations) related to a primary, managing organization.
+
+This structure prevents the leakage of personally identifiable information (PII) and sets secure data boundaries between business units or end customers. You'll benefit from these boundaries whether you have a large enterprise company with multiple, independent business units or a managed service provider (MSP) overseeing customer environments.
+
+
+
+ This diagram is a simplified example of an enterprise company with two subsidiaries.
+
+
+When you set up your company in a multi-tenant environment, your managing organization can take advantage of these benefits:
+
+* Consolidated billing: View aggregate billing details across your managed organizations.
+* Managed organization creation: Allows select users within the managing organization to create additional managed organizations. This is useful for MSPs who are onboarding customers or enterprise customers who are acquiring/developing new business units.
+* Account sharing: Allows select users within the managing organization to share an account to a managed organization. This is used mostly for collaborative use cases, such as managed services providers (MSPs) providing direct end customer access to the accounts they're monitoring.
+* Delegated administration: Allows select users within the managing organization to conduct user and access management administration within managed organizations. This feature is commonly used by MSPs who want to do all the administrative work for their managed customers.
+
+
+## Requirements [#requirements]
+
+To use multi-tenancy, you need to complete the following for your organization:
+
+1. Get approval: Contact your account representative to confirm your organization has been added to multi-tenancy. Once approved, you receive the multi-tenant entitlement.
+2. Make sure you have correct user types: Users within the managing org that will leverage the above feature set need to be provisioned as either a core or full platform users.
+3. Add users to a designated group: Users with the core or full platform user type need to be added to a group with `tenant_settings` applied.
+
+
+## Overview of multi-tenancy approaches [#approaches]
+
+You can set up multi-tenancy in a couple of ways: high touch and low-touch. The approach you choose depends on how much control you want your managing organization to have over the managed organizations. You are not limited to a single approach—you can combine the high-touch and low-touch options.
+
+### High touch [#high-touch]
+
+Use this approach if you are a managed services provider (MSP) or an enterprise customer who wants a high degree of control over the managed organizations. This approach is mostly used by MSPs who monitor customer data as it flows through customer accounts. MSPs can offer different degrees of high-touch experiences, depending on what their customers need.
+
+**Example**: Let's say you are an administrator in Betty's MSP that's set as a managing organization. You have two customers, Wayne Enterprises and Acme Widgets, who want you to monitor their data for them. They don't want to handle any administrative tasks and don't need direct access to New Relic. To set this up, you create accounts in Betty's MSP that correspond to Wayne Enterprises and Acme Widgets, and you monitor their telemetry in these accounts for them:
+
+
+
+Later, users at Wayne Enterprises and Acme Widgets decide they want a more hands-on understanding of what's happening in the accounts you're monitoring for them. To solve this, you create organizations for Wayne Enterprises and Acme Widgets. You then share the accounts from Betty's MSP to their new corresponding organizations. Finally, you provision users in their respective organizations so they can see their data:
+
+
+
+To create a structure like the one in the diagram above where Wayne Enterprises and Acme want to see their data, you'll make a series of NerdGraph API calls. You can use the steps below as a recipe for modeling your high-touch organization structure:
+
+1. [Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation): As an administrator in Betty's MSP, execute a few mutations to create accounts and organizations.
+ * Create accounts for Wayne Enterprises and Acme Widgets in Betty's MSP organization by running the `accountManagementCreateAccount` mutation (you'll eventually share these accounts with their corresponding organizations).
+ * Create the organizations Wayne Enterprises and Acme Widgets by running the `createOrganization` mutation, making sure to pass in the accounts you wanted to share from Betty's MSP:
+ * As a byproduct of the organization creation calls, Wayne Enterprises and Acme Widgets will have their own default groups and roles created. (If you need more details about groups and roles, see our public docs site.)
+ * Since you specified the accounts to share, the Wayne Enterprises account is shared with the new Wayne Enterprises organization. Also, the Acme Widgets account is shared with the new Acme Widgets organization.
+ * We automatically set up access grants from the default groups against the shared accounts as part of the organization creation process.
+2. [Manage users and access](/docs/accounts/accounts-billing/account-structure/multi-tenancy/delegated-administration): Execute the `userManagementAddUsersToGroups` mutation to provision users into the default groups of Wayne Enterprises and Acme Widgets.
+3. [Account sharing](/docs/accounts/accounts-billing/account-structure/multi-tenancy/share-accounts): Later, if you decide to make account sharing changes, use these mutations to revoke or add new shared accounts.
+
+
+ Once this structure is complete and the managed organizations start using the New Relic platform, aggregate usage is visible to you in Betty's MSP for consolidated billing.
+
+
+When you're ready to create your first high-touch organizations, go to [Step 1: Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation).
+
+## Low touch [#low-touch]
+
+If you're in an enterprise organization that has subsidiaries that run independently with little oversight, this is a good approach to model your organization in New Relic. With this structure, administrators in each organization handle their managed organizations' user and access management. Note that you will still have consolidated billing as part of your multi-tenant environment.
+
+**Example**: Let's say you are an administrator in Clothing Holding Company that is set as the managing organization and want to set up two subsidiaries (Martha's Shoes and Rick's Outerwear). You create the two managed organizations which then allows the administrators of Martha's Shoes and Rick's Outerwear to independently manage their own accounts, groups, and users:
+
+
+
+To create a structure like the one in the diagram above, you'll make a series of NerdGraph API calls. You can use the example below as a recipe for modeling your low-touch organization structure.
+
+1. [Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation): As an administrator of Clothing Holding Company, create the organizations and accounts for Martha's Shoes and Rick's Outerwear by running the `createOrganization` mutation.
+ * As a byproduct of the organization creation calls, Martha's Shoes and Rick's Outerwear will have their own default groups and roles created.
+ * As part of the organization creation process, Clothing Holding Company sets up the initial account for both managed organizations.
+2. [Manage users and access](/docs/accounts/accounts-billing/account-structure/multi-tenancy/delegated-administration): Execute some mutations to provision the first admin users.
+ * This provisions users into the managed organization's `admin` group.
+ * Since this group has organization management settings enabled, users in this group can conduct user and account management themselves.
+
+When you're ready to create your first low-touch organizations, go to [Step 1: Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation).
+
+## What's next? [#what-next]
+
+If you haven't yet followed the links to the other docs listed in the recipes above, here's a bird's eye view of what you'll be doing to set up your organizations. Use these links to move sequentially between the steps.
+
+ Create accounts and organizations
+ Manage users and access
+ Share accounts (optional)
+
diff --git a/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation.mdx b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation.mdx
new file mode 100644
index 00000000000..33dd6caefb3
--- /dev/null
+++ b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation.mdx
@@ -0,0 +1,152 @@
+---
+title: "Step 1: Create accounts and organizations"
+metaDescription: "Create organizations and accounts in the multi-tenency structure"
+freshnessValidatedDate: 2024-09-05
+---
+
+
+Multi-tenancy allows you to set up any number of managed organizations in New Relic that are related to a primary, managing organization. The first step in setting up multi-tenancy is to create accounts and organizations. To do this, you'll use various NerdGraph mutations, depending on the organization structure you're creating:
+
+* [High touch](#high-touch): Managed service providers typically use this approach to onboard customers who want to access New Relic directly.
+
+* [Low touch](#low-touch): Enterprise businesses use this approach to create new organizations and accounts for business units or subsidiaries in New Relic.
+
+Not sure which approach to take? See [Overview of multi-tenancy approaches](/docs/accounts/accounts-billing/account-structure/multi-tenancy/intro-to-multi-tenancy#approaches).
+
+
+ If you are a multi-tenant customer on consumption pricing, ingest and user counts will be aggregated across your managed organizations. This aggregate data is visible only to the managing organization.
+
+
+## Requirements [#requirements]
+
+As a reminder, to use the multi-tenancy feature, make sure you've completed the following for your organization:
+
+1. Get approval: Contact your account representative to confirm your organization has been added to multi-tenancy. Once approved, you receive the multi-tenant entitlement.
+2. Make sure you have correct user types: Users within the managing org that will leverage the above feature set need to be provisioned as either a core or full platform users.
+3. Add users to appropriate group: Users with the core or full platform user type need to be added to a group with `tenant_settings` applied.
+
+## What can you call in NerdGraph? [#org-calls]
+
+Find the mutations below that apply to the approach you want to take: low touch or high touch.
+
+### High touch structure [#high-touch]
+
+If you're an administrator in a managed service provider or an enterprise who wants a lot of control over subsidiaries, complete the following:
+
+
+
+
+A key benefit in the high-touch approach is that you can create customer accounts right in your own managing organization. These accounts in your managing organiztion allow you to monitor the telemetry of your customers.
+
+Then, if your customers decide they want to see the data in the account you're monitoring for them, you can share the account when you create an organization for them. Users in your managed organizations can only see the data in the accounts you specify.
+
+To create accounts that you plan to share with managed organizations, execute the following mutation:
+
+```graphql
+mutation {
+ accountManagementCreateAccount(
+ managedAccount: { name: "NEW_ACCOUNT_NAME", regionCode: "eu01" }
+ ) {
+ managedAccount {
+ id
+ name
+ regionCode
+ }
+ }
+}
+```
+
+If you make a mistake and need to rename your account, see our [NerdGraph tutorial](/docs/apis/nerdgraph/examples/manage-accounts-nerdgraph/#rename-accounts).
+
+Once you create the accounts you want to share, you're ready to create organizations.
+
+
+
+When you create an organization in a high-touch structure, you will often want to share an account you're managing in your own organization with the users of a managed organization. To create an organization and share an account at the same time, run a mutation similar to this:
+
+
+```graphql
+mutation {
+ createOrganization(
+ customerId: "CC-1234567890",
+ organization!: {name!: "New Customer Organization Name"},
+ sharedAccount: {accountId!: 1234567, limitingRoleId: 325}
+ ) {
+ jobId
+ }
+}
+```
+If you don't initially want to share an account with a managed organization, you can always use the `organizationCreateSharedAccount` mutation later. For details about how to use that mutation, see [Step 3: Share accounts](/docs/accounts/accounts-billing/account-structure/multi-tenancy/share-accounts).
+
+
+
+### Low-touch structure [#low-touch]
+
+ If you're an administrator in an enterprise organization who doesn't need much control over subsidiaries, you can create a managed organization and managed account in a single call:
+
+
+
+This mutation creates an organization and a new managed account:
+
+```graphql
+mutation {
+ createOrganization(
+ customerId: "CC-1234567890",
+ organization!: {name!: "New Customer Organization Name"},
+ newManagedAccount: {name: "New Managed Account Name", regionCode: "eu01"},
+ ) {
+ jobId
+ }
+}
+```
+
+
+
+
+### Query your organizations [#org-queries]
+
+Use the following query to keep track of your managed organizations:
+
+
+
+```graphql
+{
+ customerAdministration {
+ organizations {
+ items {
+ id
+ name
+ }
+ nextCursor
+ }
+ }
+}
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/share-accounts.mdx b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/share-accounts.mdx
new file mode 100644
index 00000000000..60d9e3c51ab
--- /dev/null
+++ b/src/content/docs/accounts/accounts-billing/account-structure/multi-tenancy/share-accounts.mdx
@@ -0,0 +1,213 @@
+---
+title: "Step 3: Share accounts (optional)"
+metaDescription: "Share accounts with managed organizations using multi-tenency"
+freshnessValidatedDate: 2024-09-05
+---
+
+
+ If you've set up a low-touch organization structure, this step doesn't apply to you. See the low-touch details in [Step 1: Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation).
+
+
+Account sharing makes it possible for administrators in a managing organization to make the data they are monitoring visible to their managed organizations. After you've set up the initial account sharing in your high-touch organization structure (see [Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation)), you may find it necessary to make some follow-up changes.
+
+Let's say you're an administrator in Betty's MSP (a managed service provider) who's monitoring a managed account for your customer Wayne Enterprises. You've also shared that account with the Wayne Enterprises organization. Here are some follow-up tasks you could perform:
+
+
+
+ If your customer Wayne Enterprises decides they want another account, here's what you'd do:
+ 1. Create another Wayne Enterprises account in your managing organization using the NerdGraph mutation `accountManagementCreateAccount`.
+ 2. If Wayne Enterprises also wants to see the data in the new account directly, you'd share that account with their organization using `organizationCreateSharedAccount`.
+
+
+ If you decide there is no longer a need to share an account with your customer Wayne Enterprises, you can revoke the share with the mutation `organizationRevokeSharedAccount`.
+
+
+ If you need to change the user roles for any of the Wayne Enterprises shared accounts, you can use the mutation `organizationUpdateSharedAccount`.
+
+
+
+## Requirements [#requirements]
+
+To use this feature, make sure you've completed the following for your organization:
+
+1. Get Approval: Contact your account representative to confirm your organization has been added to multi-tenancy. Once approved, you receive the multi-tenant entitlement.
+2. Make sure you have correct user types: Users within the managing org that will leverage the above feature set need to be provisioned as either a core or full platform users.
+3. Add users to appropriate group: Users with the core or full platform user type need to be added to a group with `tenant_settings` applied.
+
+## What can you call in Nerdgraph? [#share-calls]
+
+To help you get acquainted with account sharing, we have some basic examples below. First, take a look at the general routine:
+
+1. The source organization obtains the organization ID from the target organization. You can get the target organization ID from target organization users when they view their **Access Management** tab.
+2. The source organization calls the API and passes the target organization ID, account ID, and limiting role. The source organization can declare a limiting role which defines the maximum capabilities users from the target organization will be restricted to.
+
+Here are the types of calls you can make for account sharing:
+
+
+
+To use this mutation, you should have already created the target organization. If that isn't in place yet, check out [Step 1: Create accounts and organizations](/docs/accounts/accounts-billing/account-structure/multi-tenancy/org-creation).
+
+```graphql
+mutation {
+ organizationCreateSharedAccount(
+ sharedAccount: {
+ accountId: ACCOUNT_ID_TO_SHARE
+ limitingRoleId: 0
+ targetOrganizationId: "CUSTOMER_ORGANIZATION_ID_HERE"
+ }
+ ) {
+ sharedAccount {
+ accountId
+ id
+ limitingRoleId
+ name
+ }
+ }
+}
+```
+
+
+```graphql
+mutation {
+ organizationRevokeSharedAccount(
+ sharedAccount: { id: "SHARED_ACCOUNT_ID_HERE" }
+ ) {
+ sharedAccount {
+ accountId
+ id
+ limitingRoleId
+ name
+ sourceOrganizationId
+ sourceOrganizationName
+ targetOrganizationId
+ targetOrganizationName
+ }
+ }
+}
+```
+
+
+```graphql
+{
+ customerAdministration {
+ accountShares(
+ cursor: ""
+ filter: { accountId: { eq: 1234 } }
+ sort: { direction: ASCENDING, key: ACCOUNT_ID }
+ ) {
+ items {
+ accountId
+ id
+ limitingRole {
+ id
+ }
+ name
+ source {
+ id
+ name
+ }
+ target {
+ id
+ }
+ }
+ }
+ }
+}
+```
+
+
+```graphql
+{
+ customerAdministration {
+ accounts(
+ cursor: "",
+ filter: {
+ id: {eq: 1234},
+ name: {contains: "text"},
+ organizationId: {eq: "org-id"},
+ sharingMode: {eq: SHARED_WITH_THIS_ORGANIZATION},
+ status: {eq: ACTIVE}
+ },
+ sort: {direction: ASCENDING, key: ID}
+ ) {
+ nextCursor
+ }
+ }
+}
+```
+
+
+```graphql
+{
+ customerAdministration {
+ roles(filter: {organizationId: {eq: "ANY_ORG_ID"}}) {
+ items {
+ id
+ name
+ scope
+ type
+ }
+ }
+ }
+}
+```
+
+
+
+Use this mutation to change shared account roles. To find the roles of existing accounts, use the query in [List roles](#list-roles).
+
+```graphql
+mutation {
+ organizationUpdateSharedAccount(
+ sharedAccount: {
+ id: "SHARE_ACCOUNT_ID"
+ limitingRoleId: NEW_LIMTING_ROLE_ID
+ }
+ ) {
+ sharedAccount {
+ accountId
+ id
+ limitingRoleId
+ name
+ sourceOrganizationId
+ sourceOrganizationName
+ targetOrganizationId
+ targetOrganizationName
+ }
+ }
+}
+```
+
+
+
+
+
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 326a0fff984..cae99212fb1 100644
--- a/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx
+++ b/src/content/docs/apis/nerdgraph/examples/nerdgraph-synthetics-tutorial.mdx
@@ -101,73 +101,82 @@ You can view field definitions in [NerdGraph explorer](/docs/apis/nerdgraph/get-
For [ping monitors](#create-ping), these include:
- * `HEADER_NAME`: Your custom header names that appear on the request.
+ * `HEADER_NAME`: Your custom header names that appear on the request.
- * `HEADER_VALUE`: The custom header value on the request.
+ * `HEADER_VALUE`: The custom header value on the request.
- * `REDIRECT_IS_FAILURE`: Your monitor reports a failure if it's redirected.
+ * `REDIRECT_IS_FAILURE`: Your monitor reports a failure if it's redirected.
- * `VALIDATION_TEXT`: If this text is not included in your monitor's response, it returns a failure.
+ * `VALIDATION_TEXT`: If this text is not included in your monitor's response, it returns a failure.
- * `TLS_VALIDATION`: Verifies the [validity](/docs/synthetics/synthetic-monitoring/using-monitors/add-edit-monitors/#simple) of the SSL certificate chain.
+ * `TLS_VALIDATION`: Verifies the [validity](/docs/synthetics/synthetic-monitoring/using-monitors/add-edit-monitors/#simple) of the SSL certificate chain.
- For [simple browser monitors](#create-simple-browser):
+ * `BYPASS_HEAD_REQUEST`: Bypasses the initial HEAD request and instead makes a GET request.
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
+ For [simple browser monitors](#create-simple-browser):
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
- For [scripted API monitors](#create-scripted-API):
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
- * `SCRIPT_CONTENT`: The actual contents of the script. This should **not** be based64 encoded.
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
+ For [scripted API monitors](#create-scripted-API):
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ * `SCRIPT_CONTENT`: The actual contents of the script. This should **not** be based64 encoded.
- For [scripted browser monitors](#create-scripted-browser):
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
- * `SCRIPT_CONTENT`: The actual contents of the script. This should **not** be based64 encoded.
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ For [scripted browser monitors](#create-scripted-browser):
- For [step monitors](#create-step):
+ * `SCRIPT_CONTENT`: The actual contents of the script. This should **not** be based64 encoded.
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
- For [certificate check monitors](#create-certificate-check):
- * `DAYS_UNTIL_EXPIRATION`: Notifies you when you need to update your certificate. For example, if you wanted a notification 30 days before the certificate expires, you would input 30.
+ For [step monitors](#create-step):
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "CHROME_BROWSER" is the only accepted value.
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. "100" is the only accepted value.
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
- For [broken link monitors](#create-broken-links):
- * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
+ For [certificate check monitors](#create-certificate-check):
- * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
+ * `DAYS_UNTIL_EXPIRATION`: Notifies you when you need to update your certificate. For example, if you wanted a notification 30 days before the certificate expires, you would input 30.
- * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
- For all monitors:
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
- * APDEX_TARGET: The monitor's Apdex target used to populate SLA reports. Defaults to 7 seconds (7000ms).
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+
+
+ For [broken link monitors](#create-broken-links):
+
+ * `RUNTIME_TYPE`: The runtime type used by your monitor. "NODE_API" is the only accepted value.
+
+ * `RUNTIME_TYPE_VERSION`: The runtime type version used by your monitor. The only accepted value is `16.10`.
+
+ * `SCRIPT_LANGUAGE`: The language used in your monitor. "JAVASCRIPT" is the only accepted value.
+
+
+ For all monitors:
+
+ * `APDEX_TARGET`: The monitor's Apdex target used to populate SLA reports. Defaults to 7 seconds (7000ms).
diff --git a/src/content/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx b/src/content/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx
index 7e2e8924ea7..8062bd33229 100644
--- a/src/content/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx
+++ b/src/content/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx
@@ -260,7 +260,6 @@ Before [installing the agent](/docs/apm/agents/nodejs-agent/installation-configu
{/* begin: compat-table */}
-
## Instrumented modules
After installation, the agent automatically instruments with our catalog of
@@ -269,34 +268,31 @@ granular information specific to your web apps and servers. For unsupported
frameworks or libraries, you'll need to instrument the agent yourself using the
[Node.js agent API](https://newrelic.github.io/node-newrelic/API.html).
-
-
- The latest supported version may not be the latest supported version.
-
-
+**Note**: The latest supported version may not reflect the most recent supported
+version.
| Package name | Minimum supported version | Latest supported version | Introduced in* |
| --- | --- | --- | --- |
-| `@apollo/gateway` | 2.3.0 | 2.8.4 | `@newrelic/apollo-server-plugin@1.0.0` |
+| `@apollo/gateway` | 2.3.0 | 2.9.0 | `@newrelic/apollo-server-plugin@1.0.0` |
| `@apollo/server` | 4.0.0 | 4.11.0 | `@newrelic/apollo-server-plugin@2.1.0` |
-| `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.629.0 | 11.13.0 |
-| `@aws-sdk/client-dynamodb` | 3.0.0 | 3.629.0 | 8.7.1 |
-| `@aws-sdk/client-sns` | 3.0.0 | 3.624.0 | 8.7.1 |
-| `@aws-sdk/client-sqs` | 3.0.0 | 3.624.0 | 8.7.1 |
-| `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.624.0 | 8.7.1 |
+| `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.642.0 | 11.13.0 |
+| `@aws-sdk/client-dynamodb` | 3.0.0 | 3.637.0 | 8.7.1 |
+| `@aws-sdk/client-sns` | 3.0.0 | 3.637.0 | 8.7.1 |
+| `@aws-sdk/client-sqs` | 3.0.0 | 3.637.0 | 8.7.1 |
+| `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.637.0 | 8.7.1 |
| `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 |
| `@elastic/elasticsearch` | 7.16.0 | 8.15.0 | 11.9.0 |
| `@grpc/grpc-js` | 1.4.0 | 1.11.1 | 8.17.0 |
| `@hapi/hapi` | 20.1.2 | 21.3.10 | 9.0.0 |
-| `@koa/router` | 11.0.2 | 12.0.1 | 3.2.0 |
-| `@langchain/core` | 0.1.17 | 0.2.23 | 11.13.0 |
-| `@nestjs/cli` | 9.0.0 | 10.4.4 | 10.1.0 |
-| `@prisma/client` | 5.0.0 | 5.18.0 | 11.0.0 |
-| `@smithy/smithy-client` | 2.0.0 | 3.1.12 | 11.0.0 |
+| `@koa/router` | 11.0.2 | 13.0.0 | 3.2.0 |
+| `@langchain/core` | 0.1.17 | 0.2.31 | 11.13.0 |
+| `@nestjs/cli` | 9.0.0 | 10.4.5 | 10.1.0 |
+| `@prisma/client` | 5.0.0 | 5.19.1 | 11.0.0 |
+| `@smithy/smithy-client` | 2.0.0 | 3.2.0 | 11.0.0 |
| `amqplib` | 0.5.0 | 0.10.4 | 2.0.0 |
| `apollo-server` | 3.0.0 | 3.13.0 | `@newrelic/apollo-server-plugin@1.0.0` |
| `apollo-server-express` | 3.0.0 | 3.13.0 | `@newrelic/apollo-server-plugin@1.0.0` |
-| `aws-sdk` | 2.2.48 | 2.1673.0 | 6.2.0 |
+| `aws-sdk` | 2.2.48 | 2.1688.0 | 6.2.0 |
| `bluebird` | 2.0.0 | 3.7.2 | 1.27.0 |
| `bunyan` | 1.8.12 | 1.8.15 | 9.3.0 |
| `cassandra-driver` | 3.4.0 | 4.7.2 | 1.7.1 |
@@ -313,20 +309,20 @@ frameworks or libraries, you'll need to instrument the agent yourself using the
| `mongodb` | 4.1.4 | 6.8.0 | 1.32.0 |
| `mysql` | 2.2.0 | 2.18.1 | 1.32.0 |
| `mysql2` | 2.0.0 | 3.11.0 | 1.32.0 |
-| `next` | 13.4.19 | 14.2.5 | 12.0.0 |
-| `openai` | 4.0.0 | 4.55.4 | 11.13.0 |
+| `next` | 13.4.19 | 14.2.7 | 12.0.0 |
+| `openai` | 4.0.0 | 4.57.2 | 11.13.0 |
| `pg` | 8.2.0 | 8.12.0 | 9.0.0 |
| `pg-native` | 2.0.0 | 3.1.0 | 9.0.0 |
-| `pino` | 7.0.0 | 9.3.2 | 8.11.0 |
+| `pino` | 7.0.0 | 9.4.0 | 8.11.0 |
| `q` | 1.3.0 | 1.5.1 | 1.26.2 |
| `redis` | 3.1.0 | 4.7.0 | 1.31.0 |
| `restify` | 11.0.0 | 11.1.0 | 2.6.0 |
-| `superagent` | 3.0.0 | 10.0.0 | 4.9.0 |
-| `undici` | 5.0.0 | 6.19.7 | 11.1.0 |
+| `superagent` | 3.0.0 | 10.1.0 | 4.9.0 |
+| `undici` | 5.0.0 | 6.19.8 | 11.1.0 |
| `when` | 3.7.0 | 3.7.8 | 1.26.2 |
-| `winston` | 3.0.0 | 3.14.1 | 8.11.0 |
+| `winston` | 3.0.0 | 3.14.2 | 8.11.0 |
-\*When package is not specified, support is within the `newrelic` package.
+*When package is not specified, support is within the `newrelic` package.
## AI Monitoring Support
@@ -336,19 +332,16 @@ The Node.js agent supports the following AI platforms and integrations.
Through the `@aws-sdk/client-bedrock-runtime` module, we support:
-| Model | Image | Text | Vision |
-| -------------------- | ----- | ---- | ------ |
-| AI21 Labs Jurassic-2 | ❌ | ✅ | - |
-| Amazon Titan | ❌ | ✅ | - |
-| Anthropic Claude | ❌ | ✅ | ❌ |
-| Cohere | ❌ | ✅ | - |
-| Meta Llama2 | ❌ | ✅ | - |
-| Meta Llama3 | ❌ | ✅ | - |
-
+| Model | Image | Text | Vision |
+| --- | --- | --- | --- |
+| AI21 Labs Jurassic-2 | ❌ | ✅ | - |
+| Amazon Titan | ❌ | ✅ | - |
+| Anthropic Claude | ❌ | ✅ | ❌ |
+| Cohere | ❌ | ✅ | - |
+| Meta Llama2 | ❌ | ✅ | - |
+| Meta Llama3 | ❌ | ✅ | - |
-
- If a model supports streaming, we also instrument the streaming variant.
-
+Note: if a model supports streaming, we also instrument the streaming variant.
### Langchain
@@ -356,24 +349,26 @@ Through the `@aws-sdk/client-bedrock-runtime` module, we support:
The following general features of Langchain are supported:
| Agents | Chains | Tools | Vectorstores |
-| ------ | ------ | ----- | ------------ |
-| ✅ | ✅ | ✅ | ✅ |
+| --- | --- | --- | --- |
+| ✅ | ✅ | ✅ | ✅ |
-Models and providers are generally supported transitively by our instrumentation of the provider's module.
+Models/providers are generally supported transitively by our instrumentation of the provider's module.
+
+| Provider | Supported | Transitively |
+| --- | --- | --- |
+| Azure OpenAI | ❌ | ❌ |
+| Amazon Bedrock | ❌ | ❌ |
+| OpenAI | ✅ | ✅ |
-| Provider | Supported | Transitively |
-| -------------- | --------- | ------------ |
-| Azure OpenAI | ❌ | ❌ |
-| Amazon Bedrock | ❌ | ❌ |
-| OpenAI | ✅ | ✅ |
### OpenAI
Through the `openai` module, we support:
| Audio | Chat | Completions | Embeddings | Files | Images |
-| ----- | ---- | ----------- | ---------- | ----- | ------ |
-| ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
+| --- | --- | --- | --- | --- | --- |
+| ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
+
{/* end: compat-table */}
diff --git a/src/content/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx b/src/content/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx
index fa0f5e89bcb..a55846c59c9 100644
--- a/src/content/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx
+++ b/src/content/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx
@@ -133,6 +133,40 @@ The Kubernetes page in APM offers the following information about your applicati
## Link your applications to Kubernetes [#link-app]
-You can surface Kubernetes metadata and link it to your APM agents. The `MutatingAdmissionWebhook` is used to add the required environment variables to Pods. APM uses injected environment variables to display the specific Kubernetes deployment information related to that APM application.
+You can surface Kubernetes metadata and link it to your APM agents, whether you use NR's proprietary agents or OpenTelemetry. uses the Kubernetes metadata to display the specific Kubernetes deployment information related to that APM application.
+
+### New Relic proprietary instrumentation [#nr-proprietary]
+
+When you [install New Relic's Kubernetes integration](/install/kubernetes/), New Relic's metadata injection comes into play automatically via the `nri-metadata-injection` parameter. The `MutatingAdmissionWebhook`, set up by the Kubernetes instrumentation, takes care of tagging your pods with the necessary environment variables. From there, the data captured in these variables gets carried over to your APM metrics and entities, enriching them with valuable context.
+
+For more information, see how to [link your applications to Kubernetes](/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/link-your-applications-kubernetes/).
+
+The following attributes are required in the APM service entity to display the Kubernetes summary page:
+
+* `k8s.clusterName`
+* `k8s.namespaceName`
+* `k8s.deploymentName`
+
+
+### OpenTelemetry instrumentation [#otel-instrumentation]
+
+The [OpenTelemetry collector](/docs/opentelemetry/get-started/collector-processing/opentelemetry-collector-processing-intro/) offers a Kubernetes attributes processor that enrich APM telemetry with Kubernetes metadata.
+
+1. You need to define an environment variable in your deployment manifest.
+
+2. Adjust the configuration of the collector to retrieve the appropriate Kubernetes metadata using this APM environment variable.
+
+As a result, all the APM metrics and entities will include Kubernetes metadata thanks to the K8sattributes processor. For more information, see how to [link your OpenTelemetry applications to Kubernetes](/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/link-otel-applications-kubernetes/).
+
+The following attributes are required in the APM service entity to display the Kubernetes summary page:
+
+* `k8s.cluster.name`
+* `k8s.deployment.name`
+* `k8s.namespace.name`
+
+
+The Kubernetes summary page won't work properly if there is a mix of different instrumentation providers (newRelic and OpenTelemetry). For it to work properly, both Kubernetes and APM need to be monitored either exclusively through New Relic's proprietary agents or entirely through OpenTelemetry.
+
+As of now, we don't support hybrid scenarios.
+
-New Relic's metadata injection is automatically added during the installation of New Relic's Kubernetes integration through the `newrelic-metadata-injection` label. For more information, see how to [link your applications to Kubernetes](/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/link-your-applications-kubernetes/).
diff --git a/src/content/docs/infrastructure/amazon-integrations/connect/aws-multi-account.mdx b/src/content/docs/infrastructure/amazon-integrations/connect/aws-multi-account.mdx
index f7dcfd0340c..cf3f0aae311 100644
--- a/src/content/docs/infrastructure/amazon-integrations/connect/aws-multi-account.mdx
+++ b/src/content/docs/infrastructure/amazon-integrations/connect/aws-multi-account.mdx
@@ -5,6 +5,7 @@ tags:
- Integrations
- Amazon integrations
- AWS multi-account
+ - CloudWatch cross-account observability
metaDescription: 'Learn how to observe multiple AWS accounts under a single account on the New Relic user interface.'
freshnessValidatedDate: 2024-07-22
---
@@ -33,6 +34,38 @@ Check the following:
* You use the [IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) used in the AWS observe account on all AWS accounts to monitor.
+* You have [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) properly set up. See [Setting up cross account access](#setting-up-aws-cross-account-access).
+
+### Setting up AWS cross account access [#setting-up-aws-cross-account-access]
+
+You'll need to have access to the AWS Management Console of both monitoring and source accounts.
+
+1. Go to the AWS management console of the monitoring account and copy the **Monitoring accounts sink ARN**. Follow these steps:
+
+ - Go to **CloudWatch > Settings**.
+ - Click on **Manage monitoring account**.
+ - Go to tab **Configuration details**.
+ - Copy **Monitoring accounts sink ARN**.
+
+
+ Each account can have one sink per region, so if you need to monitor multiple regions, you need to set up a sink for each region.
+
+
+2. Go to the AWS management console of the source account and [link the monitoring account](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html) for the **Metrics**** resources:
+
+ - Go to **Cloudwatch > Settings**.
+ - In the **Source account configuration** section, click on **Configure**.
+ - Select **Metrics**.
+ - (Optional) Mark **Filter Metrics** and set up a filter.
+ - Paste the previously copied sink ARN in **Sink ARN** field.
+ - Click on **Link** and confirm.
+
+3. Go back to the AWS management console of the monitoring account:
+
+ - Go to **CloudWatch > Settings**.
+ - Click on **Manage monitoring account** and check that the source account is listed.
+ - Go to **CloudWatch > Metrics > Streams** and check that the metric stream sending the telemetry has **Cross account status** enabled. If not, edit it, mark the **Metrics to be streamed > Include source account metrics** check, and save.
+
## Connect your AWS observe account to New Relic [#connect-aws-account]
To start receiving Amazon data with New Relic AWS integrations, connect your AWS account, which receives metrics from all the other AWS accounts you want to monitor, to New Relic.
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 ad77601885c..8e034f8663e 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
@@ -11,7 +11,7 @@ translationType: machine
[Nuestro agente Python](/docs/agents/python-agent/getting-started/introduction-new-relic-python) le permite cambiar el comportamiento predeterminado del agente usando opciones de configuración.
-La única configuración de configuración del agente Python requerida es . La clave de licencia identifica la cuenta donde el agente reporta los datos de la aplicación. Dependiendo de cómo aloje su aplicación, la clave de licencia se puede proporcionar a través de un archivo de configuración o una variable de entorno.
+La única configuración de configuración del agente Python requerida es . La clave de licencia identifica la cuenta donde el agente reporta los datos de la aplicación. Dependiendo de cómo aloje su aplicación, la clave de licencia se puede proporcionar a través de un archivo de configuración o una variable de entorno.
## Métodos de configuración y precedencia. [#options]
@@ -19,11 +19,7 @@ La forma principal de configurar el agente Python es a través del [archivo de c
El agente Python sigue este orden de precedencia para la configuración:
-
+
Con el agente Python, las opciones por solicitud anulan la configuración del lado del servidor. Si está habilitada, la configuración del lado del servidor anula los valores correspondientes a **all** en el archivo de configuración del agente, incluso si los valores del lado del servidor se dejan en blanco. El archivo de configuración del agente anula las variables de entorno. Las variables de entorno anulan los valores predeterminados del agente.
@@ -32,11 +28,7 @@ El agente Python sigue este orden de precedencia para la configuración:
Aquí hay descripciones detalladas de cada método de configuración:
-
+
Normalmente configura su agente Python desde un archivo de configuración local en el sistema host del agente. Proporcione la ruta al archivo de configuración al inicio utilizando uno de estos métodos:
* Cuando llame a [`newrelic.agent.initialize()`](/docs/agents/python-agent/customization-extension/python-management-api#mgmt), proporcione la ruta al archivo de configuración como primer argumento.
@@ -52,11 +44,7 @@ Aquí hay descripciones detalladas de cada método de configuración:
-
+
[La configuración del lado del servidor](/docs/agents/manage-apm-agents/configuration/server-side-agent-configuration) le permite configurar ciertas configuraciones en la UI de New Relic. Esto aplica sus cambios automáticamente a todos los agentes incluso si se ejecutan en varios hosts. Cuando esté disponible, este documento incluye las etiquetas de la UI para la configuración del lado del servidor en opciones de configuración individuales como **Server-side label**.
@@ -64,16 +52,12 @@ Aquí hay descripciones detalladas de cada método de configuración:
-
+
Las variables de entorno le permiten anular los valores predeterminados para ciertas configuraciones principales. Si la configuración equivalente aparece explícitamente en el archivo de configuración del agente, la configuración del archivo de configuración tiene prioridad sobre la variable de entorno. Cuando estén disponibles, las variables de entorno se documentan a continuación en opciones de configuración individuales como **Environ variable**.
Para configuraciones simples, puede usar las variables de entorno junto con [la configuración del lado del servidor](#server-side-configuration) y evitar el archivo de configuración del agente por completo. Esta es la configuración predeterminada con [Heroku](/docs/agents/python-agent/hosting-services/python-agent-heroku), donde la instalación del complemento New Relic completa automáticamente las variables de entorno necesarias.
- Si está utilizando New Relic CodeStream para monitor el rendimiento de su IDE, es posible que también desee [asociar el repositorio con sus servicios](/docs/codestream/how-use-codestream/performance-monitoring#repo-association) y [asociar SHA de compilación o etiqueta de lanzamiento con errores](/docs/codestream/how-use-codestream/performance-monitoring#buildsha).
+ Si está empleando New Relic CodeStream para monitor el rendimiento de su IDE, es posible que también desee [asociar el repositorio con sus servicios](/docs/codestream/observability/repo-association) y [asociar los SHA de compilación o las etiquetas de lanzamiento con los errores](/docs/codestream/observability/error-investigation/#buildsha).
@@ -356,59 +340,37 @@ Aquí hay descripciones detalladas de cada método de configuración:
-
+
Para ciertos servidores WSGI, puede anular el [nombre de la aplicación](#app_name) y [capturar la configuración del atributo](#attributes) por solicitud. Esto es posible con servidores WSGI donde puede definir pares principales de valores adicionales que se pasan al diccionario de entorno WSGI por solicitud.
Establezca estos valores con las cadenas `on`, `off`, `true`, `false`, `1` y `0`. Si se establece desde un mecanismo de configuración implementado usando código Python, también se aceptarán los objetos Python que se evalúen como Verdadero o Falso.
-
- En el servidor Apache/mod_wsgi, puede utilizar la directiva `SetEnv` para anular la configuración (opcionalmente dentro de un bloque `Location` o `Directory` ). Por ejemplo, podría anular el [nombre de la aplicación](#app_name) para un host virtual completo o para un subconjunto de URL manejadas por la aplicación WSGI para ese host virtual.
+
+ En el servidor Apache/mod\_wsgi, puede utilizar la directiva `SetEnv` para anular la configuración (opcionalmente dentro de un bloque `Location` o `Directory` ). Por ejemplo, podría anular el [nombre de la aplicación](#app_name) para un host virtual completo o para un subconjunto de URL manejadas por la aplicación WSGI para ese host virtual.
Además de poder anular ciertas configuraciones de agente, puede establecer otras configuraciones por solicitud con su clave de entorno WSGI:
-
+
Si se establece en `true`, esta transacción web se informará como una [transacción no web](/docs/apm/transactions/intro-transactions/monitor-background-processes-other-non-web-transactions).
-
+
Si se establece en `true`, esta transacción web no se informará.
-
+
Si se establece en `true`, no se generará ninguna métrica de Apdex para esta transacción web.
-
+
Si se establece en `true`, esta transacción web no se puede registrar en una [traza de la transacción](/docs/apm/transactions/transaction-traces/transaction-traces).
-
+
Si se establece en `true`, esto deshabilita la inserción automática del encabezado/pie de página de JavaScript para el tiempo de carga de la página (a veces denominado monitoreo de usuarios reales o RUM). Solo se aplica si la inserción automática está [disponible para su framework web](/docs/agents/python-agent/supported-features/page-load-timing-python#restrictions_on_instrumentation).
@@ -454,10 +416,7 @@ La estructura básica del archivo de configuración es:
Estas configuraciones están disponibles en el archivo de configuración del agente.
-
+
@@ -502,13 +461,10 @@ Estas configuraciones están disponibles en el archivo de configuración del age
- Especifica el de tu cuenta New Relic. Esta clave asocia la métrica de tu aplicación con tu cuenta New Relic.
+ Especifica el de tu cuenta New Relic. Esta clave asocia la métrica de tu aplicación con tu cuenta New Relic.
-
+
@@ -566,10 +522,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
El [nombre de la aplicación](/docs/apm/new-relic-apm/installation-configuration/name-your-application) utilizada para agregar datos en la UI de New Relic. Para informar datos a [varias aplicaciones al mismo tiempo](/docs/apm/new-relic-apm/installation-configuration/using-multiple-names-app), especifique una lista de nombres separados por un punto y coma `;`. No coloque un espacio antes del punto y coma, lo que hace que el analizador de configuración de Python interprete el nombre como un comentario incrustado.
-
+
@@ -617,10 +570,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Cuando `true`, el agente recopila datos de rendimiento sobre su aplicación e informa estos datos a nuestro [recolector de datos](/docs/accounts-partnerships/education/getting-started-new-relic/glossary#collector).
-
+
@@ -670,10 +620,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Utilice el modo de desarrolladores para probar [nuevas versiones del agente](/docs/release-notes/agent-release-notes/python-release-notes) o pruebe el agente con paquetes de terceros en un entorno de desarrolladores. El modo fuera de línea no es una forma de ejecutar el APM localmente, porque las métricas que recopila el agente no se informan en ninguna parte.
-
+
@@ -727,10 +674,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
-
+
@@ -780,10 +724,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Para informar problemas con los agentes, la configuración más útil es `debug`. Sin embargo, `debug` genera mucha información muy rápidamente, por lo que no mantenga el agente en este nivel durante más tiempo del necesario para reproducir el problema.
-
+
@@ -833,10 +774,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Para activar el modo de alta seguridad, configúrelo en `true` en el archivo de configuración local **.ini** **and** actívelo desde la página **Account settings** . Para obtener más información, consulte [Alta seguridad](/docs/accounts-partnerships/accounts/security/high-security).
-
+
@@ -896,10 +834,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
En lugar de configurar las configuraciones `proxy_scheme`, `proxy_host` y `proxy_port` , también puede configurar la configuración `proxy_host` en un URI válido para el proxy. Incluya el esquema, el host y el puerto; por ejemplo, `http://proxy-host:8000`. Esto también funciona si configura los detalles del proxy HTTP con la variable de entorno `NEW_RELIC_PROXY_HOST` .
-
+
@@ -953,10 +888,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
-
+
@@ -1001,13 +933,10 @@ Estas configuraciones están disponibles en el archivo de configuración del age
- Agrega [etiqueta](/docs/apm/new-relic-apm/maintenance/labels-categories-organize-your-apps-servers). Especifique _nombre:valor_ separado por dos puntos `:` y separe la etiqueta adicional con punto y coma `;`.
+ Agrega [etiqueta](/docs/apm/new-relic-apm/maintenance/labels-categories-organize-your-apps-servers). Especifique *nombre:valor* separado por dos puntos `:` y separe la etiqueta adicional con punto y coma `;`.
-
+
```ini
labels = Server:One;Data Center:Primary
```
@@ -1015,10 +944,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
-
+
@@ -1066,10 +992,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Establece el nombre de host que se [mostrará en la UI de APM](/docs/apm/new-relic-apm/maintenance/add-rename-remove-hosts#display_name). Si se establece, esto anula el nombre de host predeterminado que el agente captura automáticamente.
-
+
@@ -1114,13 +1037,10 @@ Estas configuraciones están disponibles en el archivo de configuración del age
- Establece [api_key](/docs/apis/rest-api-v2/requirements/api-keys) que se usará con [newrelic-admin record-deploy](/docs/agents/python-agent/installation-configuration/python-agent-admin-script#record-deploy).
+ Establece [api\_key](/docs/apis/rest-api-v2/requirements/api-keys) que se usará con [newrelic-admin record-deploy](/docs/agents/python-agent/installation-configuration/python-agent-admin-script#record-deploy).
-
+
@@ -1172,10 +1092,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
-
+
@@ -1222,7 +1139,7 @@ Estas configuraciones están disponibles en el archivo de configuración del age
Registraremos la traza de la transacción cuando superen este umbral. El formato es una cantidad de segundos (se permiten puntos decimales).
- Consulte nuestra entrada del glosario para [apdex_t](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#apdex_t)
+ Consulte nuestra entrada del glosario para [apdex\_t](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#apdex_t)
Esto solo se establece en el archivo de configuración o en la variable de entorno si se establece `serverless_mode` , que está habilitado para AWS Lambda. De lo contrario, el valor local `apdex_t` se anula por el valor en la configuración de la aplicación UI que luego se usa para establecer el valor `apdex_f` .
@@ -1232,15 +1149,12 @@ Estas configuraciones están disponibles en el archivo de configuración del age
## Atributo
-Los atributos son pares de valores principales que proporcionan información para la traza de la transacción, errores de traza, y evento de transacción. Además de configurar el atributo para los cuatro destinos con las configuraciones generales del atributo a continuación, también se pueden configurar por destino.
+Los atributos son pares de valores principales que proporcionan información para la traza de la transacción, errores de traza, y evento de transacción. Además de configurar el atributo para los cuatro destinos con las configuraciones generales del atributo a continuación, también se pueden configurar por destino.
Para obtener más información, consulte [Atributo del agente Python](/docs/agents/python-agent/attributes/python-agent-attributes), [Habilitación y deshabilitación de atributo](/docs/agents/python-agent/attributes/enabling-disabling-attributes-python) y [Ejemplos de atributos](/docs/agents/python-agent/attributes/python-attribute-examples).
-
+
@@ -1278,10 +1192,7 @@ Para obtener más información, consulte [Atributo del agente Python](/docs/agen
Esta configuración se puede utilizar para activar o desactivar todos los atributos.
-
+
@@ -1325,10 +1236,7 @@ Para obtener más información, consulte [Atributo del agente Python](/docs/agen
Las reglas para los atributos se pueden encontrar [en la página de atributos del agente](/docs/subscriptions/agent-attributes).
-
+
@@ -1382,10 +1290,7 @@ Esta sección incluye la configuración del agente Python para configurar el mon
-
+
@@ -1427,10 +1332,7 @@ Esta sección incluye la configuración del agente Python para configurar el mon
-
+
@@ -1468,10 +1370,7 @@ Esta sección incluye la configuración del agente Python para configurar el mon
Cuando se establece en `false`, deshabilita la instrumentación que registra eventos de resumen y mensajes para datos extensos de modelo de lenguaje transmitidos.
-
+
@@ -1519,10 +1418,7 @@ Esta sección incluye la configuración del agente Python para configurar el mon
Para obtener más información sobre la traza de la transacción, consulte [traza de la transacción](/docs/traces/transaction-traces).
-
+
@@ -1570,10 +1466,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Si está habilitado, el rastreador de transacciones [captura información detallada sobre transacciones lentas](/docs/apm/transactions/transaction-traces/transaction-traces).
-
+
@@ -1618,13 +1511,10 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
- Umbral en segundos para saber cuándo recoger una traza de la transacción. Cuando el tiempo de respuesta de una acción del controlador excede este umbral, el agente registra una traza de la transacción. Los valores válidos son cualquier valor flotante positivo o `apdex_f` (cuatro veces [apdex_t](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#apdex_t)).
+ Umbral en segundos para saber cuándo recoger una traza de la transacción. Cuando el tiempo de respuesta de una acción del controlador excede este umbral, el agente registra una traza de la transacción. Los valores válidos son cualquier valor flotante positivo o `apdex_f` (cuatro veces [apdex\_t](/docs/using-new-relic/welcome-new-relic/get-started/glossary/#apdex_t)).
-
+
@@ -1678,10 +1568,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
-
+
@@ -1729,10 +1616,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Umbral en segundos para saber cuándo recopilar el rastreo del stack de las llamadas SQL. Cuando las sentencias SQL superan este umbral, el agente captura el rastreo actual de la pila. Esto es útil para identificar dónde se originan las llamadas SQL largas en una aplicación.
-
+
@@ -1780,10 +1664,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Determina si el agente Python capturará planes de consulta para consultas SQL lentas. Sólo es compatible con MySQL y PostgreSQL.
-
+
@@ -1831,10 +1712,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Las consultas en la traza de la transacción que superen este umbral informarán [los datos de consulta lenta](/docs/apm/applications-menu/monitoring/viewing-slow-query-details) y cualquier plan explicativo disponible. La recopilación del plan de explicación no se realizará si [`transaction_tracer.explain_enabled`](#txn-tracer-explain-threshold) es `false`.
-
+
@@ -1872,10 +1750,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Esta configuración se puede utilizar para activar o desactivar todos los atributos de la traza de la transacción. Si `attributes.enabled` en el nivel raíz es `false`, no se enviará ningún atributo a la traza de la transacción independientemente de cómo se establezca esta configuración (`transaction_tracer.attributes.enabled`).
-
+
@@ -1913,10 +1788,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Si los atributos están habilitados para la traza de la transacción, todas las claves de atributos que se encuentran en esta lista nos serán enviadas en la traza de la transacción. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -1954,10 +1826,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Todas las claves de atributos encontradas en esta lista no se enviarán en la traza de la transacción. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -2034,10 +1903,7 @@ Para obtener más información sobre la traza de la transacción, consulte [traz
Aquí están las configuraciones del segmento de transacciones disponibles a través del archivo de configuración del agente.
-
+
@@ -2075,10 +1941,7 @@ Aquí están las configuraciones del segmento de transacciones disponibles a tra
Esta configuración se puede utilizar para activar o desactivar todos los atributos de los segmentos de traza de la transacción. Si `attributes.enabled` en el nivel raíz es `false`, no se enviará ningún atributo a los segmentos de la traza de la transacción independientemente de cómo se establezca esta configuración (`transaction_segments.attributes.enabled`).
-
+
@@ -2116,10 +1979,7 @@ Aquí están las configuraciones del segmento de transacciones disponibles a tra
Si los atributos están habilitados para segmentos de traza de la transacción, todas las claves de atributos que se encuentran en esta lista se enviarán en segmentos de traza de la transacción. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -2167,10 +2027,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
-
+
@@ -2218,10 +2075,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
Si está habilitado, el recolector de errores captura información sobre excepciones no detectadas.
-
+
@@ -2273,10 +2127,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
-
+
@@ -2321,7 +2172,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
- Enumera los códigos de estado HTTP que el agente debe ignorar en lugar de registrar como errores. Enumere códigos de estado adicionales como números enteros separados por espacios y especifique rangos con un guión `-` como separador entre los valores inicial y final. Para agregar uno de los códigos predeterminados a su lista de 'permitidos', anteponga el código con un signo de exclamación `!`.
+ Enumera los códigos de estado HTTP que el agente debe ignorar en lugar de registrar como errores. Enumere códigos de estado adicionales como números enteros separados por espacios y especifique rangos con un guión `-` como separador entre los valores inicial y final. Para agregar uno de los códigos predeterminados a su lista de 'permitidos', anteponga el código con un signo de exclamación `!`.
Esta configuración solo es compatible con algunos marcos web, ya que algunos marcos no utilizan excepciones para devolver respuestas HTTP.
@@ -2330,10 +2181,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
-
+
@@ -2385,10 +2233,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
-
+
@@ -2442,10 +2287,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
-
+
@@ -2483,10 +2325,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
Esta configuración se puede utilizar para activar o desactivar todos los atributos para errores de traza. Si `attributes.enabled` es `false` en el nivel raíz, entonces no se enviará ningún atributo a los errores de traza independientemente de cómo esté establecida esta configuración (`error_collector.attributes.enabled`).
-
+
@@ -2524,10 +2363,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
Si los atributos están habilitados para errores de traza, todas las claves de atributos que se encuentran en esta lista se enviarán a errores de traza. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -2565,10 +2401,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
Las claves de atributos que se encuentran en esta lista no se enviarán a errores de traza. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -2612,10 +2445,7 @@ Estos son los ajustes del recolector de errores disponibles a través del archiv
Aquí hay monitoreo de la configuración del navegador disponible a través del archivo de configuración del agente.
-
+
@@ -2657,10 +2487,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
-
+
@@ -2698,10 +2525,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
Para [el marco web Python compatible](/docs/agents/python-agent/supported-features/page-load-timing-python#restrictions_on_instrumentation), esta configuración permite la inserción automática del monitoreo de fragmentos de JavaScript del navegador.
-
+
@@ -2739,10 +2563,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
Especifique los `Content-Type` HTML (s) que nuestro agente de monitoreo de navegador debe auto-instrumentado. Agregue entradas adicionales en una lista separada por espacios.
-
+
Si está generando respuestas de página HTML y utiliza el `Content-Type` de `application/xhtml+xml`, puede anular los tipos de contenido permitidos para enumerar tanto este tipo de contenido como el `text/html` predeterminado usando:
```ini
@@ -2756,10 +2577,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
-
+
@@ -2797,10 +2615,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
Esta configuración se puede utilizar para activar o desactivar todos los atributos de monitoreo del navegador. Estos son los datos que se envían al evento de vista de página. Si `attributes.enabled` es falso en el nivel raíz, no se enviará ningún atributo en el monitoreo del navegador independientemente de cómo esté establecida la configuración (`browser_monitoring.attributes.enabled`).
-
+
@@ -2838,10 +2653,7 @@ Aquí hay monitoreo de la configuración del navegador disponible a través del
Si los atributos están habilitados para `browser_monitoring`, todas las claves de atributos que se encuentran en esta lista se enviarán en las vistas de página. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+
@@ -2889,10 +2701,7 @@ Aquí están las configuraciones de eventos de transacción disponibles a travé
-
+
@@ -2930,10 +2739,7 @@ Aquí están las configuraciones de eventos de transacción disponibles a travé
transacción evento data permite el uso de información adicional como [histograma](/docs/applications-menu/histograms-viewing-data-distribution) y [percentil](/docs/applications-menu/percentiles-comparing-ranked-data).
-
+
@@ -2971,10 +2777,7 @@ Aquí están las configuraciones de eventos de transacción disponibles a travé
Esta configuración se puede utilizar para activar o desactivar todos los atributos del evento de transacción. Si `attributes.enabled` es `false` en el nivel raíz, no se enviará ningún atributo al evento de transacción independientemente de cómo se establezca esta configuración (`transaction_events.attributes.enabled`).
-
+
@@ -3012,10 +2815,7 @@ Aquí están las configuraciones de eventos de transacción disponibles a travé
Si los atributos están habilitados para el evento de transacción, todas las claves de atributos que se encuentran en esta lista se enviarán en el evento de transacción. Para obtener más información, consulte las [reglas de atributos del agente](/docs/apm/other-features/attributes/agent-attributes).
-
+