From f26f785b455595ad81288935ef00ae15146dc5ef Mon Sep 17 00:00:00 2001 From: CherylFrankenfield <32469854+CherylFrankenfield@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:36:09 -0800 Subject: [PATCH 01/30] Update session-replay.mdx After some testing, we should add expected behavior with iframe apps and session replay content. --- .../browser-pro-features/session-replay.mdx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx index c10c0f16264..5238b5dd924 100644 --- a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx +++ b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx @@ -249,6 +249,29 @@ For more details on session replay, see the following sections: ``` + + ### Problem + + Session replay feature is enabled, but you're not seeing replay data for iframe content. + + ### Solution + + Assuming a web page consists of a top level window with a child iframe, here are some possible fixes: + * If the iframe is **same-origin**, + * agent placed in the top level will capture session replay events in both the window and the iframe. + * agent placed in the iframe will capture events only in its own context. + * agents placed in both window and iframe will each report session replay events independently (with their own session) in line with the two bullets above. + * If the iframe is **cross-origin**, + * agent placed in the top level will only capture session replay events in the window; iframe will appear blank. + * agent placed in the iframe will only capture events in the iframe. + * if *recordCrossOriginIframes* is not enabled (current state of agent) in the replay options, agents placed in both window and iframe will each report session replay events independently (with their own session) in line with the two bullets above. + * if *recordCrossOriginIframes* is enabled and agents are in both window and iframe, the iframe agent does not report session replay events. However, the window agent will report events with the cross-origin iframe events captured in replay. + * Please note, session replay is not compatible with elements and this is unsupported. + + ## Manually record session replays [#manual-replays] From ebf03e1bc365daa1fa7d4c959d2638f4eaec8aa5 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Fri, 8 Nov 2024 12:09:40 -0800 Subject: [PATCH 02/30] Add clarifying examples to SetTransactionName API doc --- .../net-agent/net-agent-api/net-agent-api.mdx | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx index f9b7e75a5c7..d2e24e1d521 100644 --- a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx +++ b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx @@ -2334,7 +2334,7 @@ The following list contains the different calls you can make with the API, inclu ### Description - Sets the name of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). + Sets the name (other than the initial `WebTransaction` or `OtherTransaction` base name) of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). If you use this call multiple times within the same transaction, each call overwrites the previous call and the last call sets the name. @@ -2392,8 +2392,71 @@ The following list contains the different calls you can make with the API, inclu ### Examples + This example shows use of this API in an ASP.NET Core MVC controller. A transaction is created automatically by the agent's instrumentation for ASP.NET Core. The first part of the transaction name will continue to be `WebTransaction`. + + ```cs + public class HomeController : Controller + { + + public IActionResult Order(string product) + { + + // The commented-out API call below is probably a bad idea and will lead to a metric grouping issue (MGI) + // because too many transaction names will be created. Don't do this. + //NewRelic.Api.Agent.NewRelic.SetTransactionName("Other", $"ProductOrder-{product}"); + + // Do this instead if you want to record request-specific data about this MVC endpoint + var tx = NewRelic.Api.Agent.NewRelic.GetAgent().CurrentTransaction; + tx.AddCustomAttribute("productName", product); + + // The default transaction name at this point will be: WebTransaction/MVC/Home/Order + + // Set custom transaction name + NewRelic.Api.Agent.NewRelic.SetTransactionName("Other", "OrderProduct"); + + // Transaction name is now: WebTransaction/Other/OrderProduct + + return View(); + } + } + ``` + + This example shows use of this API in a console application. Note the `[Transaction]` custom instrumentation attribute, which is necessary to create a transaction for the example method. The first part of the transaction name will continue to be `OtherTransaction`. + ```cs - NewRelic.Api.Agent.NewRelic.SetTransactionName("Other", "MyTransaction"); + using NewRelic.Api.Agent; + + namespace SetApplicationNameConsoleExample + { + internal class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + + var start = DateTime.Now; + while (DateTime.Now - start < TimeSpan.FromMinutes(2)) + { + DoSomething(); + Thread.Sleep(TimeSpan.FromSeconds(5)); + } + } + + [Transaction] // Attribute-based custom instrumentation to create a transaction for this method + static void DoSomething() + { + Console.WriteLine("Doing something: " + Guid.NewGuid().ToString()); + + // Transaction name from default naming at this point is: OtherTransaction/Custom/SetApplicationNameConsoleExample.Program/DoSomething + + NewRelic.Api.Agent.NewRelic.SetTransactionName("Console", "MyCustomTransactionName"); + + // Transaction name at this point is: OtherTransaction/Console/MyCustomTransactionName + + // Note, however, that this transaction will still have a child segment (span) named "SetApplicationNameConsoleExample.Program.DoSomething" + } + } + } ``` From 1888894f90c931b412da7acf78e9b7cfb9e763a0 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Fri, 8 Nov 2024 13:00:41 -0800 Subject: [PATCH 03/30] PR feedback --- .../docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx index d2e24e1d521..18a8c5b4059 100644 --- a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx +++ b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx @@ -2334,7 +2334,7 @@ The following list contains the different calls you can make with the API, inclu ### Description - Sets the name (other than the initial `WebTransaction` or `OtherTransaction` base name) of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). + Sets a custom transaction name, to be appended after an initial prefix (`WebTransaction` or `OtherTransaction`) based on the type of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). If you use this call multiple times within the same transaction, each call overwrites the previous call and the last call sets the name. From f3f046f0451019d2c67c56fc3f63d6deb470a5c4 Mon Sep 17 00:00:00 2001 From: a-sassman Date: Mon, 11 Nov 2024 15:38:54 -0800 Subject: [PATCH 04/30] fix(browser): improved language of troubleshooting section --- .../browser-pro-features/session-replay.mdx | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx index 5238b5dd924..314d0cf9c5c 100644 --- a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx +++ b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx @@ -1,10 +1,10 @@ --- title: "Session replay" metaDescription: "Play back user interactions to debug faster and improve page performance." -freshnessValidatedDate: 2024-04-23 +freshnessValidatedDate: 2024-11-11 --- -Session replay plays back user interactions on your web app and maps other telemetry data to help you understand your user's journeys. Session replay can be used for troubleshooting and improving the end-user experience, such as: +Session replay captures interactions on your web app and maps other telemetry data to help you understand your user's journeys. Session replay can be used for troubleshooting and improving the end-user experience, such as: * **Troubleshooting JavaScript errors**: Troubleshoot the cause of an error by seeing what the user was doing when the error occurred. For example, if an end user receives an error while trying to complete an ecommerce transaction, you can use session replay to see which steps they took and what data they entered before the error occurred. This can help you quickly identify and fix the root cause of the problem. * **Improving the user experience**: Discover areas of your web app that are causing users frustration. For example, you might see that users are getting lost in your navigation or clicking on buttons that don't do anything. @@ -258,18 +258,19 @@ For more details on session replay, see the following sections: Session replay feature is enabled, but you're not seeing replay data for iframe content. ### Solution + + The behavior of session replay in iframe scenarios depends on the origin of the iframe and the placement of the browser agent. - Assuming a web page consists of a top level window with a child iframe, here are some possible fixes: - * If the iframe is **same-origin**, - * agent placed in the top level will capture session replay events in both the window and the iframe. - * agent placed in the iframe will capture events only in its own context. - * agents placed in both window and iframe will each report session replay events independently (with their own session) in line with the two bullets above. - * If the iframe is **cross-origin**, - * agent placed in the top level will only capture session replay events in the window; iframe will appear blank. - * agent placed in the iframe will only capture events in the iframe. - * if *recordCrossOriginIframes* is not enabled (current state of agent) in the replay options, agents placed in both window and iframe will each report session replay events independently (with their own session) in line with the two bullets above. - * if *recordCrossOriginIframes* is enabled and agents are in both window and iframe, the iframe agent does not report session replay events. However, the window agent will report events with the cross-origin iframe events captured in replay. - * Please note, session replay is not compatible with elements and this is unsupported. + Assuming a web page consists of a top-level window with a child iframe, here are some possible fixes: + * **Same-origin iframes**: + * If you place the browser agent in the top-level window, session replay captures both the window and the iframe. + * If you place the browser agent in the iframe, session replay only captures what's in the iframe. + * If you place the browser agent in both the top-level window and iframe, session replay captures what's happening independently in both the window and iframe, resulting in two separate sessions. + * **Cross-origin iframes**: + * If you place the browser agent in the top-level window, session replay only captures what's in the window. The iframe will appear blank in session replay. + * If you place the browser agent in the top-level window, session replay only captures what's in the iframe. + + Session replay is **not** compatible with elements. From 6914befc12c86b48bad636f8e1b5ff6089ffafcf Mon Sep 17 00:00:00 2001 From: ally sassman <42753584+ally-sassman@users.noreply.github.com> Date: Mon, 11 Nov 2024 17:38:42 -0800 Subject: [PATCH 05/30] Update src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx --- .../browser-monitoring/browser-pro-features/session-replay.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx index 314d0cf9c5c..8ba3dc0ccfd 100644 --- a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx +++ b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx @@ -268,7 +268,7 @@ For more details on session replay, see the following sections: * If you place the browser agent in both the top-level window and iframe, session replay captures what's happening independently in both the window and iframe, resulting in two separate sessions. * **Cross-origin iframes**: * If you place the browser agent in the top-level window, session replay only captures what's in the window. The iframe will appear blank in session replay. - * If you place the browser agent in the top-level window, session replay only captures what's in the iframe. + * If you place the browser agent in the top-level iframe, session replay only captures what's in the iframe. Session replay is **not** compatible with elements. From e4a0c3f480e65df2b38820a374b76ad4535e6163 Mon Sep 17 00:00:00 2001 From: Ariana <96448173+ammartens@users.noreply.github.com> Date: Wed, 13 Nov 2024 10:03:59 -0800 Subject: [PATCH 06/30] Corrected spelling $headers.removeMmultiple() should be $headers.removeMultiple() --- ...c-scripted-browser-reference-monitor-versions-chrome-100.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/synthetics/synthetic-monitoring/scripting-monitors/synthetic-scripted-browser-reference-monitor-versions-chrome-100.mdx b/src/content/docs/synthetics/synthetic-monitoring/scripting-monitors/synthetic-scripted-browser-reference-monitor-versions-chrome-100.mdx index b013c16f159..a1901015a17 100644 --- a/src/content/docs/synthetics/synthetic-monitoring/scripting-monitors/synthetic-scripted-browser-reference-monitor-versions-chrome-100.mdx +++ b/src/content/docs/synthetics/synthetic-monitoring/scripting-monitors/synthetic-scripted-browser-reference-monitor-versions-chrome-100.mdx @@ -171,7 +171,7 @@ The `waitForAndFindElement(locator, timeout)` and `waitForPendingRequests(timeou - `$headers.removeMmultiple(headers: {key:value...})` + `$headers.removeMultiple(headers: {key:value...})` From e8dbbfbff61b65aa39939fe2bdd08d1ed72bc34a Mon Sep 17 00:00:00 2001 From: svc-docs-eng-opensource-bot Date: Fri, 15 Nov 2024 15:32:42 +0000 Subject: [PATCH 07/30] chore(whats-new-ids): updated ids --- src/data/whats-new-ids.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/data/whats-new-ids.json b/src/data/whats-new-ids.json index 216dd60a1b4..df71f36c316 100644 --- a/src/data/whats-new-ids.json +++ b/src/data/whats-new-ids.json @@ -350,5 +350,6 @@ "/whats-new/2024/10/whats-new-10-10-pathpoint": "43007", "/whats-new/2024/10/whats-new-10-23-kogs-gateway-logs-integration": "43008", "/whats-new/2024/10/whats-new-10-21-in-app-help": "43009", - "/whats-new/2024/11/whats-new-11-11-data-explorer": "43010" + "/whats-new/2024/11/whats-new-11-11-data-explorer": "43010", + "/whats-new/2024/11/whats-new-11-12-browser-apm-summary": "43011" } \ No newline at end of file From 7a34ebc2f09d688e89c390625f1241c51d2a56b7 Mon Sep 17 00:00:00 2001 From: abhishuraina <45932588+abhishuraina@users.noreply.github.com> Date: Mon, 18 Nov 2024 14:14:15 +0530 Subject: [PATCH 08/30] Update docs to include optional parameter.mdx --- src/install/microsoft-sql/whatsNext.mdx | 26 ++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/install/microsoft-sql/whatsNext.mdx b/src/install/microsoft-sql/whatsNext.mdx index 7fc11ce17f7..de8b37019b5 100644 --- a/src/install/microsoft-sql/whatsNext.mdx +++ b/src/install/microsoft-sql/whatsNext.mdx @@ -173,6 +173,7 @@ headingText: What's next? PASSWORD: mssql_password ENABLE_BUFFER_METRICS: false ENABLE_DATABASE_RESERVE_METRICS: false + ENABLE_DISK_METRICS_IN_BYTES: false interval: 30s labels: environment: production @@ -183,6 +184,7 @@ headingText: What's next? * If you enable `ENABLE_BUFFER_METRICS`, a query starts running involving the `sys.sysdatabases` and `sys.dm_os_buffer_descriptors` internal tables to obtain the buffer's pool size for each database. This query could cause overhead on some SQL Servers. If you disable `ENABLE_BUFFER_METRICS`, the metric `bufferpool.sizePerDatabaseInBytes` won't be reported in MssqlDatabaseSample and `buferpool.sizeInBytes` won't be reported in MssqlInstanceSample. * If you enable `ENABLE_DATABASE_RESERVE_METRICS`, the reserved size is queried for each database and may cause some load on your server, depending on its size and usage. When it's disabled, both `pageFileTotal` and `pageFileAvailable` metrics stop being reported in MssqlDatabaseSample. + * If you enable `ENABLE_DISK_METRICS_IN_BYTES`, runs a query which fetchs the volume stats for each database and this query can be slow. If you disable `ENABLE_DISK_METRICS_IN_BYTES`, the metric `instance.diskInBytes` won't be reposted in MssqlDatabaseSample. - The amount of disk space on the instance, in bytes. + The amount of disk space on the instance, in bytes. It is reported + when `ENABLE_DISK_METRICS_IN_BYTES` is set to true. @@ -1004,6 +1007,27 @@ The Microsoft SQL Server integration collects the following metric data attribut { ' ' } + + + `ENABLE_DISK_METRICS_IN_BYTES` + + + + Enable collection of the volume stats for each MSSQL instance. + + + + `true` + + + + M + + + + { + ' ' + } From bdca1d592f12d793eec3f0adae7a25156a29e598 Mon Sep 17 00:00:00 2001 From: akashreddy Date: Mon, 18 Nov 2024 15:45:43 +0530 Subject: [PATCH 09/30] fix: Update the indentation in callout tag so that file can be serialized --- .../data-apis/understand-data/metric-data/metric-data-type.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/content/docs/data-apis/understand-data/metric-data/metric-data-type.mdx b/src/content/docs/data-apis/understand-data/metric-data/metric-data-type.mdx index 9dd504cbf08..291ac19008a 100644 --- a/src/content/docs/data-apis/understand-data/metric-data/metric-data-type.mdx +++ b/src/content/docs/data-apis/understand-data/metric-data/metric-data-type.mdx @@ -91,7 +91,8 @@ The metric `type` determines how the data is aggregated over longer time windows Equivalent to the `count` type described above, but in addition this gives access to cumulative metric fields. For more on this, see [Cumulative metrics](/docs/data-apis/understand-data/metric-data/cumulative-metrics). - This type is slightly larger than a typical `count`, and therefore can add to [data ingest](/docs/accounts/accounts-billing/new-relic-one-pricing-billing/data-ingest-billing). + + This type is slightly larger than a typical `count`, and therefore can add to [data ingest](/docs/accounts/accounts-billing/new-relic-one-pricing-billing/data-ingest-billing). From ace497315cf76d3ec4ddf60af8d5ae920c3f5863 Mon Sep 17 00:00:00 2001 From: mangulonr Date: Mon, 18 Nov 2024 05:54:44 -0500 Subject: [PATCH 10/30] Update k8s-agent-operator.mdx --- .../installation/k8s-agent-operator.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index 7f9bd930e13..6504cb4e7bc 100644 --- a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -574,9 +574,7 @@ It's advised to uninstall any versions preceding 0.14 and proceed with the insta ## Support [#support] -The Kubernetes APM auto-attach currently supports the latest version of these APM agents: Java, .NET, Node.js, Python, Ruby and PHP. - -Once is on general availability, the latest 3 versions of each of the APM agents will be supported. +The Kubernetes APM auto-attach currently supports the latest 3 versions of these APM agents: Java, .NET, Node.js, Python, Ruby and PHP. For any issues: From 6183416857809de532c492f425c2eefb8941e2f0 Mon Sep 17 00:00:00 2001 From: svc-docs-eng-opensource-bot Date: Mon, 18 Nov 2024 13:55:48 +0000 Subject: [PATCH 11/30] chore(whats-new-ids): updated ids --- src/data/whats-new-ids.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/data/whats-new-ids.json b/src/data/whats-new-ids.json index 216dd60a1b4..df71f36c316 100644 --- a/src/data/whats-new-ids.json +++ b/src/data/whats-new-ids.json @@ -350,5 +350,6 @@ "/whats-new/2024/10/whats-new-10-10-pathpoint": "43007", "/whats-new/2024/10/whats-new-10-23-kogs-gateway-logs-integration": "43008", "/whats-new/2024/10/whats-new-10-21-in-app-help": "43009", - "/whats-new/2024/11/whats-new-11-11-data-explorer": "43010" + "/whats-new/2024/11/whats-new-11-11-data-explorer": "43010", + "/whats-new/2024/11/whats-new-11-12-browser-apm-summary": "43011" } \ No newline at end of file From 558416dd62bddb01b1b11372a4c5bdca40b69e8b Mon Sep 17 00:00:00 2001 From: svc-docs-eng-opensource-bot Date: Tue, 19 Nov 2024 12:05:12 +0000 Subject: [PATCH 12/30] chore: add translations --- .../user-type.mdx | 10 +- .../create-nrql-alert-conditions.mdx | 64 +++---- .../nodejs-agent-configuration.mdx | 44 +++++ ...ow-new-relic-distributed-tracing-works.mdx | 2 +- .../choose-infra-install-method.mdx | 62 +++++++ ...structure-agent-configuration-settings.mdx | 166 ++++++++--------- ...tart-stop-restart-infrastructure-agent.mdx | 144 +++++---------- .../introduction-infra-monitoring.mdx | 172 ++++++++++++++++++ .../fluent-bit-plugin-log-forwarding.mdx | 166 +++++++++-------- .../monitor-your-react-native-application.mdx | 150 ++++++++------- 10 files changed, 610 insertions(+), 370 deletions(-) create mode 100644 src/i18n/content/kr/docs/infrastructure/choose-infra-install-method.mdx create mode 100644 src/i18n/content/kr/docs/infrastructure/introduction-infra-monitoring.mdx diff --git a/src/i18n/content/kr/docs/accounts/accounts-billing/new-relic-one-user-management/user-type.mdx b/src/i18n/content/kr/docs/accounts/accounts-billing/new-relic-one-user-management/user-type.mdx index 22700b77223..cf6f807c792 100644 --- a/src/i18n/content/kr/docs/accounts/accounts-billing/new-relic-one-user-management/user-type.mdx +++ b/src/i18n/content/kr/docs/accounts/accounts-billing/new-relic-one-user-management/user-type.mdx @@ -5,7 +5,7 @@ tags: - Accounts and billing - New Relic user management metaDescription: 'An explanation of New Relic user types: basic users, core users, and full platform users.' -freshnessValidatedDate: never +freshnessValidatedDate: '2024-11-08T00:00:00.000Z' translationType: human --- @@ -912,12 +912,10 @@ translationType: human ## 사용자 유형 및 업그레이드 요청 관리 [#manage-user-type] -사용자의 사용자 유형을 관리하는 방법은 조직의 사용자가 속한 [사용자 모델](/docs/accounts/original-accounts-billing/original-product-based-pricing/overview-user-models)에 따라 다릅니다. +참고 자료: -* [새로운 사용자 모델 문서](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-ui-and-tasks#edit-user-type) -* [기존 사용자 모델 문서](/docs/accounts/original-accounts-billing/original-users-roles/users-roles-original-user-model#update-user-type) - -사용자 청구 및 다운그레이드에 대한 규칙은 [청구 및 다운그레이드 규칙](/docs/accounts/accounts-billing/new-relic-one-pricing-billing/user-count-billing)을 참조하십시오. +* [일반적인 사용자 관리 작업에 대한 팁](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-ui-and-tasks#edit-user-type) +* [결제 및 다운그레이드 규칙](/docs/accounts/accounts-billing/new-relic-one-pricing-billing/user-count-billing) ## 액세스 권한이 부족합니까? [#access] diff --git a/src/i18n/content/kr/docs/alerts/create-alert/create-alert-condition/create-nrql-alert-conditions.mdx b/src/i18n/content/kr/docs/alerts/create-alert/create-alert-condition/create-nrql-alert-conditions.mdx index 03718d0541f..f5ce5b8641f 100644 --- a/src/i18n/content/kr/docs/alerts/create-alert/create-alert-condition/create-nrql-alert-conditions.mdx +++ b/src/i18n/content/kr/docs/alerts/create-alert/create-alert-condition/create-nrql-alert-conditions.mdx @@ -173,8 +173,8 @@ WHERE attribute [comparison] [AND|OR ...] 예: ```sql - SELECT percentile(largestContentfulPaint, 75) - FROM PageViewTiming + SELECT percentile(largestContentfulPaint, 75) + FROM PageViewTiming WHERE (appId = 837807) SINCE yesterday ``` @@ -227,7 +227,7 @@ WHERE attribute [comparison] [AND|OR ...] 기존 쿼리: ```sql - SELECT count(foo), average(bar), max(baz) + SELECT count(foo), average(bar), max(baz) FROM Transaction ``` @@ -266,8 +266,8 @@ WHERE attribute [comparison] [AND|OR ...] 예를 들어 다음과 같은 알림 조건을 생성하려면 ```sql - SELECT count(*) - FROM Transaction + SELECT count(*) + FROM Transaction TIMESERIES 1 minute SLIDE BY 5 minutes ``` @@ -318,14 +318,14 @@ WHERE attribute [comparison] [AND|OR ...] 소수의 주요 고객 또는 데이터 범위와 같은 데이터의 특정 세그먼트를 대상으로 하는 제한된 알람을 생성합니다. `WHERE` 조항을 사용하여 이러한 조건을 정의합니다. ```sql - SELECT average(duration) - FROM Transaction + SELECT average(duration) + FROM Transaction WHERE account_id IN (91290, 102021, 20230) ``` ```sql - SELECT percentile(duration, 95) - FROM Transaction + SELECT percentile(duration, 95) + FROM Transaction WHERE name LIKE 'Controller/checkout/%' ``` @@ -334,12 +334,12 @@ WHERE attribute [comparison] [AND|OR ...] 데이터의 N번째 백분위수가 지정된 임계값에 도달하면 알림을 생성합니다. 예를 들어, SLA 서비스 수준 유지. 집계 창 기간을 기반으로 NRQL 쿼리를 평가하기 때문에 백분위수는 각 기간에 대해 별도로 계산됩니다. ```sql - SELECT percentile(duration, 95) + SELECT percentile(duration, 95) FROM Transaction ``` ```sql - SELECT percentile(databaseDuration, 75) + SELECT percentile(databaseDuration, 75) FROM Transaction ``` @@ -348,17 +348,17 @@ WHERE attribute [comparison] [AND|OR ...] 데이터가 특정 최대값, 최소값 또는 평균에 도달하면 알림을 생성합니다. 예를 들어, 지속 시간 또는 응답 시간이 특정 임계값을 초과하지 않도록 할 수 있습니다. ```sql - SELECT max(duration) + SELECT max(duration) FROM Transaction ``` ```sql - SELECT min(duration) + SELECT min(duration) FROM Transaction ``` ```sql - SELECT average(duration) + SELECT average(duration) FROM Transaction ``` @@ -367,12 +367,12 @@ WHERE attribute [comparison] [AND|OR ...] 데이터 비율이 특정 임계값을 초과하거나 미만으로 떨어지면 알람을 생성합니다. ```sql - SELECT percentage(count(*), WHERE duration > 2) + SELECT percentage(count(*), WHERE duration > 2) FROM Transaction ``` ```sql - SELECT percentage(count(*), WHERE http.statusCode = '500') + SELECT percentage(count(*), WHERE http.statusCode = '500') FROM Transaction ``` @@ -381,8 +381,8 @@ WHERE attribute [comparison] [AND|OR ...] 특정 트랜잭션에 대해 고유한 T-값을 적용하여 [Apdex](/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction)에 알람을 생성합니다. 예를 들어, 프로덕션 앱에 대한 트랜잭션의 T-값 500ms에 대한 Apdex가 0.8 아래로 내려가면 알람을 받습니다. ```sql - SELECT apdex(duration, t:0.5) - FROM Transaction + SELECT apdex(duration, t:0.5) + FROM Transaction WHERE appName LIKE '%prod%' ``` @@ -401,8 +401,8 @@ WHERE attribute [comparison] [AND|OR ...] 이것이 알람 조건 쿼리라고 가정해 보겠습니다. ```sql -SELECT count(*) -FROM SyntheticCheck +SELECT count(*) +FROM SyntheticCheck WHERE monitorName = 'My Cool Monitor' AND result = 'FAILED' ``` @@ -421,7 +421,7 @@ WHERE monitorName = 'My Cool Monitor' AND result = 'FAILED' 이것이 알림 조건 쿼리이고 `MyCoolEvent`가 때때로 0 값을 반환할 수 있는 속성이라고 가정해 보겠습니다. ```sql -SELECT average(MyCoolAttribute) +SELECT average(MyCoolAttribute) FROM MyCoolEvent ``` @@ -436,8 +436,8 @@ null 값을 처리하는 방법을 결정하려면 [alerts 조건 UI](/docs/aler 다음은 `FAILED` 결과에 대한 알림의 예입니다. ```sql -SELECT filter(count(*), WHERE result = 'FAILED') -FROM SyntheticCheck +SELECT filter(count(*), WHERE result = 'FAILED') +FROM SyntheticCheck WHERE monitorName = 'My Favorite Monitor' ``` @@ -454,13 +454,13 @@ WHERE monitorName = 'My Favorite Monitor' `FACET`이 없으면 내부 쿼리는 단일 결과를 생성하므로 외부 쿼리는 집계할 항목이 없습니다. 중첩 쿼리를 사용하는 경우 내부 쿼리가 패싯인지 확인하십시오. ```sql - SELECT max(cpu) - FROM + SELECT max(cpu) + FROM ( - SELECT min(cpuPercent) AS 'cpu' - FROM SystemSample + SELECT min(cpuPercent) AS 'cpu' + FROM SystemSample FACET hostname - ) + ) ``` @@ -468,11 +468,11 @@ WHERE monitorName = 'My Favorite Monitor' 1분의 알람 집계 창에서 내부 쿼리는 30초의 더 작은 두 개의 창을 생성합니다. 이론상 이 두 창은 외부 쿼리에 의해 집계될 수 있습니다. 그러나 이 기능은 현재 지원되지 않습니다. ```sql - SELECT max(cpu) - FROM + SELECT max(cpu) + FROM ( SELECT min(cpuTime) AS cpu TIMESERIES 30 seconds - FROM Event + FROM Event ) ``` @@ -739,7 +739,7 @@ GraphQL API(권장) 또는 REST API를 사용하여 이러한 설정을 관리 * 예상된 종료인 경우에는 '신호 손실' 인시던트를 열면 안됩니다. 신호 종료가 예상되는 경우 새 인시던트를 열지 않도록 선택할 수 있습니다. 이 기능은 특정 시간에 신호가 손실될 것임을 알고 있고, 그 신호 손실에 대해 새로운 인시던트를 열고 싶지 않을 때 유용합니다. 이에 대한 GraphQL 노드 이름은 [`ignoreOnExpectedTermination`](/docs/apis/nerdgraph/examples/nerdgraph-api-loss-signal-gap-filling/#loss-of-signal)입니다. - **Do not open "lost signal" incident on expected termination** 일 때 인시던트 신호 손실을 방지하려면 엔터티에 태그 `termination: expected`를 추가해야 합니다. 이 태그는 신호가 끝날 것으로 예상되었음을 알려줍니다. [태그를 엔터티에 직접 추가하는 방법](/docs/new-relic-solutions/new-relic-one/core-concepts/use-tags-help-organize-find-your-data/#add-tags)을 확인하십시오. + **Do not open "lost signal" incident on expected termination** 일 때 인시던트 신호 손실을 방지하려면 엔터티에 태그 `termination: expected`를 추가해야 합니다. 이 태그는 신호가 끝날 것으로 예상되었음을 알려줍니다. [태그를 엔터티에 직접 추가하는 방법](/docs/new-relic-solutions/new-relic-one/core-concepts/use-tags-help-organize-find-your-data/#add-tags)을 확인하십시오. 태그 `hostStatus: shutdown`은 또한 &quot;신호 손실&quot; 인시던트가 열리지 않도록 합니다. 보다 자세한 내용은 ["호스트가 보고하지 않음" 조건을 생성하는 방법](/docs/infrastructure/infrastructure-alerts/create-infrastructure-host-not-reporting-condition/#create-condition)을 참조하십시오. UI에서 신호 손실 감지로 구성된 NRQL 알람을 생성하려면: diff --git a/src/i18n/content/kr/docs/apm/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration.mdx b/src/i18n/content/kr/docs/apm/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration.mdx index 6e3354e72bb..0e75f8c660e 100644 --- a/src/i18n/content/kr/docs/apm/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration.mdx +++ b/src/i18n/content/kr/docs/apm/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration.mdx @@ -955,6 +955,50 @@ Node.js 에이전트는 구성 방법에 다음의 우선순위를 적용합니 +## 클라우드 변수 [#cloud\_config][#cloud_config] + +이 섹션에서는 클라우드 제공업체와 APM 애플리케이션 간의 관계를 생성하기 위해 Node.js 에이전트 변수를 정의합니다. + + + + + + + + + + + + + + + + + + + + + + + +
+ Type + + 정수 +
+ 기본 + + `null` +
+ [환경 변수](#environment) + + `NEW_RELIC_CLOUD_AWS_ACCOUNT_ID` +
+ + 이 앱과 연결된 AWS 계정의 AWS 계정 ID입니다. +
+
+ ## 감사 로깅 [#audit\_log][#audit_log] 이 섹션에서는 앱 `newrelic.js` 설정 파일의 `audit_log: {` 섹션에 일반적으로 나타나는 순서대로 Node.js 에이전트 변수들에 대해 설명합니다. diff --git a/src/i18n/content/kr/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works.mdx b/src/i18n/content/kr/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works.mdx index dc11987aea5..4fa213f3e09 100644 --- a/src/i18n/content/kr/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works.mdx +++ b/src/i18n/content/kr/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works.mdx @@ -167,7 +167,7 @@ Infinite Tracing을 사용하면 애플리케이션 또는 서드파티 텔레 [브라우저 모니터링 분산 추적](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing)과 [모바일 모니터링](/docs/mobile-monitoring/new-relic-mobile-android/get-started/new-relic-mobile-and-dt)은 모든 스팬을 보고합니다. - 뉴렐릭의 언어 에이전트는 종종 및 \[ 와 함께 사용되며, 뉴렐릭의 언어 에이전트는 [샘플링을 사용합니다](#trace-origin-sampling). 이는 백엔드 스팬보다 더 많은 브라우저 및 모바일 스팬이 있을 수 있기 때문에 브라우저 및 모바일 앱 스팬이 백엔드 스팬에서 분리될 수 있다는 것을 의미합니다. 프런트 엔드 및 백엔드 스팬이 포함된 트레이스 쿼리에 대한 유용한 팁은 [브라우저 스팬 데이터 찾기](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing#find-data)를 참조하십시오. + 뉴렐릭의 언어 에이전트는 종종 와 함께 사용되며, 언어 에이전트는 [샘플링을 사용합니다](#trace-origin-sampling). 이는 브라우저 및 모바일 스팬이 백엔드 스팬보다 더 많을 수 있기 때문에, 브라우저 및 모바일 앱 스팬이 백엔드 스팬에서 분리될 수 있음을 의미합니다. 프런트 엔드 및 백엔드 스팬이 포함된 트레이스 쿼리에 대한 유용한 팁은 [브라우저 스팬 데이터 찾기](/docs/browser/new-relic-browser/browser-pro-features/browser-data-distributed-tracing#find-data)를 참조하십시오. diff --git a/src/i18n/content/kr/docs/infrastructure/choose-infra-install-method.mdx b/src/i18n/content/kr/docs/infrastructure/choose-infra-install-method.mdx new file mode 100644 index 00000000000..2781b88528a --- /dev/null +++ b/src/i18n/content/kr/docs/infrastructure/choose-infra-install-method.mdx @@ -0,0 +1,62 @@ +--- +title: 인프라 에이전트 설치 방법 선택 +tags: + - Infrastructure + - Install the infrastructure agent + - Get started +metaDescription: An overview of installation methods for New Relic's infrastructure agent and infrastructure integrations. +freshnessValidatedDate: '2024-05-21T00:00:00.000Z' +translationType: human +--- + +인프라 에이전트는 호스트에 대한 데이터를 수집하는 실행 파일입니다. 인프라 에이전트를 사용해, [일부 서드파티 서비스](/docs/infrastructure/host-integrations/installation/install-infrastructure-host-integrations)의 데이터를 보고하고 [로그 데이터](/docs/logs/enable-log-monitoring-new-relic/enable-log-monitoring-new-relic/forward-your-logs-using-infrastructure-agent)를 수집하도록 설정할 수도 있습니다. + +인프라 에이전트는 Windows, macOS 및 다양한 Linux 배포판에서 실행할 수 있습니다. 이 문서에서는 인프라 에이전트를 설치하는 데 사용할 수 있는 다양한 방법을 설명합니다. 시작하려면 [뉴렐릭 계정](https://newrelic.com/signup)과 라이선스 키가 필요합니다. + +## 인프라 에이전트 수동 설치 [#manual-install] + +몇 개의 호스트만 모니터링하고 복잡하지 않은 쪽을 선호하는 경우 수동 설치 절차를 사용하는 것이 좋습니다. 일반적으로 명령줄을 사용해 에이전트가 있을 디렉터리를 만든 다음 라이선스 키 정보를 추가합니다. 운영 시스템에 따라 구성 파일을 생성하고 수정해야 할 수도 있습니다. 수동으로 설치하려면 여기에서 시작하십시오. + +* [패키지 매니저를 사용해 Linux 시스템에 설치](/docs/infrastructure/install-infrastructure-agent/linux-installation/install-infrastructure-monitoring-agent-linux) +* [macOS에 설치](/docs/infrastructure/install-infrastructure-agent/macos-installation/install-infrastructure-monitoring-agent-macos) +* [MSI 설치](/docs/infrastructure/install-infrastructure-agent/windows-installation/install-infrastructure-monitoring-agent-windows), [zip 설치](/docs/infrastructure/install-infrastructure-agent/windows-installation/zip-assisted-install-infrastructure-agent-windows) 또는 [수동 zip 설치](/docs/infrastructure/install-infrastructure-agent/windows-installation/zip-manual-install-infrastructure-agent-windows)를 통해 Windows에 설치 + +## 프로그래밍으로 인프라 에이전트 구현 [#deploy-programmatically] + +여러 구성 관리 및 구현 도구로 프로그래밍을 하여 인프라 에이전트를 구현할 수 있습니다. + +* Ansible[Ansible](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-using-ansible) +* Chef[Chef](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-using-chef) +* Docker[Docker ](/docs/infrastructure/install-infrastructure-agent/linux-installation/docker-container-infrastructure-monitoring)(컨테이너로 설치) +* EBS[Elastic Beanstalk](/docs/infrastructure/install-infrastructure-agent/config-management-tools/install-infrastructure-agent-aws-elastic-beanstalk) +* Puppet[Puppet](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-puppet) + +## 안내 설치 사용 [#guided-install] + +안내 설치는 인스턴스를 모니터링하기 위해 실행할 수 있는 단일 CLI 명령입니다. 소규모 조직이나 뉴렐릭을 테스트해보려는 경우 좋은 옵션입니다. CLI 명령을 실행하면 뉴렐릭이 시스템을 검사하여 모니터링할 수 있는 다른 호환 기술을 찾습니다. 기본적으로 [인프라 상태 API](https://github.com/newrelic/infrastructure-agent/blob/master/docs/status_api.md)도 받게 됩니다. + + + 뉴렐릭 CLI는 FedRAMP 서버를 지원하지 않습니다. FedRAMP 고객인 경우 [수동 설치 지침](#manual-install)을 참조하십시오. + + +시작하려면 [뉴렐릭 데이터센터 지역](/docs/accounts/accounts-billing/account-setup/choose-your-data-center)을 선택해야 합니다. + + + + 미국 지역 안내 설치 + + + + EU 지역 안내 설치 + + + +## 다음 단계는? [#whats-next] + +인프라 에이전트를 설치한 후: + +* [에이전트를 구성](/docs/infrastructure/install-configure-infrastructure/configuration/configure-infrastructure-agent)하거나 [구성 템플릿](https://github.com/newrelic/infrastructure-agent/blob/master/assets/examples/infrastructure/newrelic-infra-template.yml.example)을 수정하는 방법을 알아보십시오. +* [호스트 통합](/docs/integrations/host-integrations/getting-started/introduction-host-integrations)(예: Apache 또는 MySQL)을 설치합니다. +* [인프라 에이전트를 사용하여 로그 전달을 활성화](/docs/logs/enable-new-relic-logs/1-enable-logs/forward-your-logs-using-new-relic-infrastructure)합니다. +* [에이전트 관리](/docs/infrastructure/install-infrastructure-agent/manage-your-agent) 방법을 알아보십시오. +* 뉴렐릭의 인프라 에이전트는 경량 실행 파일입니다. [여기서](/docs/infrastructure/new-relic-infrastructure/getting-started/infrastructure-agent-performance-overhead) 그 의미에 대해 자세히 알아보십시오. \ No newline at end of file diff --git a/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/configuration/infrastructure-agent-configuration-settings.mdx b/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/configuration/infrastructure-agent-configuration-settings.mdx index 11d0ccf1cff..e95fd7644c7 100644 --- a/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/configuration/infrastructure-agent-configuration-settings.mdx +++ b/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/configuration/infrastructure-agent-configuration-settings.mdx @@ -3269,26 +3269,26 @@ translationType: human 이 예에서는 실행 파일과 이름을 사용하여 프로세스 메트릭을 제외시킵니다. - ``` - exclude_matching_metrics: # You can combine attributes from different metrics - process.name: - - regex "^java" # Exclude all processes starting with "java" - process.executable: - - "/usr/bin/python2" # Exclude the Python 2.x executable - - regex "\\System32\\svchost" # Exclude all svchost executables + ```yml + exclude_matching_metrics: # You can combine attributes from different metrics + process.name: + - regex "^java" # Exclude all processes starting with "java" + process.executable: + - "/usr/bin/python2" # Exclude the Python 2.x executable + - regex "\\System32\\svchost" # Exclude all svchost executables ``` `exclude_matching_metrics`를 [쿠버네티스 통합](/docs/kubernetes-pixie/kubernetes-integration/get-started/introduction-kubernetes-integration/)을 위한 환경 변수로 구성하려면 이를 `env:` 오브젝트 내에 있는 매니페스트에 추가합니다. ```yml env: - - name: NRIA_EXCLUDE_MATCHING_METRICS - value: | - process.name: - - regex "^java" - process.executable: - - "/usr/bin/python2" - - regex "\\System32\\svchost" + - name: NRIA_EXCLUDE_MATCHING_METRICS + value: | + process.name: + - regex "^java" + process.executable: + - "/usr/bin/python2" + - regex "\\System32\\svchost" ``` 기본 @@ -5550,83 +5550,83 @@ translationType: human ```bash curl http://localhost:8003/v1/status - { - "checks": { - "endpoints": [ - { - "url": "https://infrastructure-command-api.newrelic.com/agent_commands/v1/commands", - "reachable": true - }, - { - "url": "https://infra-api.newrelic.com/infra/v2/metrics", - "reachable": true - }, - { - "url": "https://identity-api.newrelic.com/identity/v1", - "reachable": true - }, - { - "url": "https://infra-api.newrelic.com/inventory", - "reachable": true - } - ] - }, - "config": { - "reachability_timeout": "10s" - } - } + [output] { + [output] "checks": { + [output] "endpoints": [ + [output] { + [output] "url": "https://infrastructure-command-api.newrelic.com/agent_commands/v1/commands", + [output] "reachable": true + [output] }, + [output] { + [output] "url": "https://infra-api.newrelic.com/infra/v2/metrics", + [output] "reachable": true + [output] }, + [output] { + [output] "url": "https://identity-api.newrelic.com/identity/v1", + [output] "reachable": true + [output] }, + [output] { + [output] "url": "https://infra-api.newrelic.com/inventory", + [output] "reachable": true + [output] } + [output] ] + [output] }, + [output] "config": { + [output] "reachability_timeout": "10s" + [output] } + [output] } ``` 기본 상태 엔드포인트(오류 있음): ```bash curl http://localhost:8003/v1/status - { - "checks": { - "endpoints": [ - { - "url": "https://staging-infra-api.newrelic.com/infra/v2/metrics", - "reachable": false, - "error": "endpoint check timeout exceeded" - }, - { - "url": "https://infra-api.newrelic.com/infra/v2/metrics", - "reachable": true - }, - { - "url": "https://identity-api.newrelic.com/identity/v1", - "reachable": true - }, - { - "url": "https://infra-api.newrelic.com/inventory", - "reachable": true - } - ] - }, - "config": { - "reachability_timeout": "10s" - } - } + [output] { + [output] "checks": { + [output] "endpoints": [ + [output] { + [output] "url": "https://staging-infra-api.newrelic.com/infra/v2/metrics", + [output] "reachable": false, + [output] "error": "endpoint check timeout exceeded" + [output] }, + [output] { + [output] "url": "https://infra-api.newrelic.com/infra/v2/metrics", + [output] "reachable": true + [output] }, + [output] { + [output] "url": "https://identity-api.newrelic.com/identity/v1", + [output] "reachable": true + [output] }, + [output] { + [output] "url": "https://infra-api.newrelic.com/inventory", + [output] "reachable": true + [output] } + [output] ] + [output] }, + [output] "config": { + [output] "reachability_timeout": "10s" + [output] } + [output] } ``` 오류 엔드포인트 예: ```bash curl http://localhost:18003/v1/status/errors - { - "checks": { - "endpoints": [ - { - "url": "https://staging-infra-api.newrelic.com/infra/v2/metrics", - "reachable": false, - "error": "endpoint check timeout exceeded" - } - ] - }, - "config": { - "reachability_timeout": "10s" - } - } + [output] { + [output] "checks": { + [output] "endpoints": [ + [output] { + [output] "url": "https://staging-infra-api.newrelic.com/infra/v2/metrics", + [output] "reachable": false, + [output] "error": "endpoint check timeout exceeded" + [output] } + [output] ] + [output] }, + [output] "config": { + [output] "reachability_timeout": "10s" + [output] } + [output] } ``` 이는 기본 상태 엔드포인트와 유사하지만 오류가 있는 항목만 필터링합니다. @@ -5635,10 +5635,10 @@ translationType: human ```bash curl http://localhost:8003/v1/status/entity - { - "guid":"MMMMNjI0NjR8SU5GUkF8TkF8ODIwMDg3MDc0ODE0MTUwNTMy", - "key":"your-host-name" - } + [output] { + [output] "guid":"MMMMNjI0NjR8SU5GUkF8TkF8ODIwMDg3MDc0ODE0MTUwNTMy", + [output] "key":"your-host-name" + [output] } ``` 에이전트/호스트 엔터티에 대한 정보를 반환합니다. 에이전트에 에이전트/호스트 엔터티에 대한 정보가 없으면 응답 상태 코드 *204* (&quot;콘텐츠 없음&quot;)가 반환됩니다. 따라서 에이전트가 엔터티 데이터를 제공할 때까지 여러 요청이 필요할 수 있습니다. diff --git a/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/manage-your-agent/start-stop-restart-infrastructure-agent.mdx b/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/manage-your-agent/start-stop-restart-infrastructure-agent.mdx index 35f86bf8ee7..6526395a989 100644 --- a/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/manage-your-agent/start-stop-restart-infrastructure-agent.mdx +++ b/src/i18n/content/kr/docs/infrastructure/infrastructure-agent/manage-your-agent/start-stop-restart-infrastructure-agent.mdx @@ -76,7 +76,6 @@ translationType: human 또한, 다음을 사용할 수 있습니다 `net start|stop newrelic-infra` - * Windows 에이전트 재시작: ```shell @@ -147,15 +146,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 Amazon Linux - + - + - + @@ -165,15 +161,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -182,15 +175,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -199,66 +189,54 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + - Debian 7 ("Wheezy") + Debian 7 ("Wheezy") - + - + - + - Debian 8 ("Jessie") + Debian 8 ("Jessie") - + - + - + - Debian 9 ("Stretch") + Debian 9 ("Stretch") - + - + - + @@ -266,16 +244,13 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 RHEL 5 - + - + - + @@ -283,15 +258,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 RHEL 6 - + - + - + @@ -301,15 +273,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -318,15 +287,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -334,15 +300,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 Ubuntu, 14.04 이하 - + - + - + @@ -352,15 +315,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -369,15 +329,12 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 - + - + - + @@ -385,16 +342,13 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 SLES 11 - + - + - + @@ -406,4 +360,4 @@ Linux의 경우, 인프라 에이전트는 배포에 적합한 초기화 시스 * [Ansible 구성](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-using-ansible) * [Chef 구성](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-using-chef) * [AWS Elastic Beanstalk 구성](/docs/infrastructure/install-infrastructure-agent/config-management-tools/install-infrastructure-agent-aws-elastic-beanstalk) -* [Puppet 구성](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-puppet) +* [Puppet 구성](/docs/infrastructure/new-relic-infrastructure/config-management-tools/configure-new-relic-infrastructure-puppet) \ No newline at end of file diff --git a/src/i18n/content/kr/docs/infrastructure/introduction-infra-monitoring.mdx b/src/i18n/content/kr/docs/infrastructure/introduction-infra-monitoring.mdx new file mode 100644 index 00000000000..880178d03bf --- /dev/null +++ b/src/i18n/content/kr/docs/infrastructure/introduction-infra-monitoring.mdx @@ -0,0 +1,172 @@ +--- +title: 인프라 모니터링 소개 +tags: + - Infrastructure + - Infrastructure monitoring + - Get started +metaDescription: 'New Relic provides flexible, dynamic monitoring of your entire infrastructure. Learn about features, installation, and use cases.' +freshnessValidatedDate: '2024-05-21T00:00:00.000Z' +translationType: human +--- + +뉴렐릭에는 안정적인 시스템을 제공할 수 있도록 소프트웨어 모니터링에 도움을 주는 도구들이 있습니다. 인프라 모니터링을 사용하면 클라우드, 전용 호스트, 또는 오케스트레이션된 환경에서 실행되는 컨테이너 등 모든 환경에서 상태와 성능을 개선할 수 있습니다. + +New Relic - Infrastructure Monitoring + +
+ **[one.newrelic.com](https://one.newrelic.com) &gt; All Capabilities &gt; Infrastructure**로 이동: **Hosts** 페이지에는 시스템, 네트워크, 프로세스 및 스토리지의 성능 데이터가 표시됩니다. +
+ +## 온프레미스 및 가상 호스트 모니터링 [#infra-agent-intro] + +온프레미스 또는 가상 호스트를 모니터링하려면 인프라 에이전트를 설치합니다. 이 에이전트는 시스템 리소스와 프로세스에서 성능 및 상태 데이터를 수집합니다. 여기에서 데이터베이스, 메시징 서비스, 애플리케이션 서버 같은 인프라 도구로 모니터링을 확장해주는 다양한 [온호스트 통합](/docs/integrations/host-integrations/getting-started/introduction-host-integrations)과 인프라 에이전트를 함께 사용할 수 있습니다. 또한 인프라 에이전트를 사용하여 [로그를 전달](/docs/logs/enable-log-monitoring-new-relic/enable-log-monitoring-new-relic/forward-your-logs-using-infrastructure-agent)할 수 있습니다. + +Agents and New Relic + +Linux, macOS 및 Windows 시스템에 인프라 에이전트를 설치할 수 있습니다. 고유한 옵저빌리버티 요구 사항에 맞게 시스템에 에이전트를 몇 가지 방법으로 구현할 수 있습니다. [인프라 에이전트 설치 방법 선택](/docs/infrastructure/infrastructure-monitoring/get-started/choose-infra-install-method)을 검토하여 사용 사례에 적합한 옵션을 결정하시기 바랍니다. + +## 클라우드 통합 [#cloud] + +뉴렐릭의 클라우드 통합은 클라우드 플랫폼 서비스와 계정으로부터 데이터를 수집합니다. 클라우드 통합은 설치 프로세스는 없으며, 뉴렐릭의 인프라 에이전트를 사용할 필요가 없습니다. 뉴렐릭 계정을 클라우드 공급자 계정에 연결하기만 하면 됩니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + **Integrations** + + + + **Description** + +
+ Amazon Web Services(AWS) 클라우드 통합 + + [Amazon Web Services(AWS) 계정을 연결](/docs/infrastructure/amazon-integrations/connect/aws-metric-stream)하여 데이터를 모니터링하고 뉴렐릭으로 보고할 수 있습니다. +
+ Microsoft Azure 클라우드 통합 + + [Microsoft Azure 계정을 연결](/docs/infrastructure/microsoft-azure-integrations/get-started/activate-azure-integrations)하여 데이터를 모니터링하고 뉴렐릭으로 보고할 수 있습니다. +
+ Google Cloud Platform(GCP) 클라우드 통합 + + [Google Cloud Platform(GCP) 계정을 연결](/docs/infrastructure/google-cloud-platform-integrations/get-started/connect-google-cloud-platform-services-new-relic)하여 데이터를 모니터링하고 뉴렐릭으로 보고할 수 있습니다. +
+ +## 인프라 서비스 통합 [#on-host] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + **Integrations** + + + + **Description** + +
+ [쿠버네티스 통합](/docs/integrations/kubernetes-integration/getting-started/getting-started) + + 계정을 연결하면 [쿠버네티스 환경에 대한 가시성을 확보하고](/docs/integrations/kubernetes-integration/understand-use-data/understand-use-data), [클러스터를 탐색](/docs/integrations/kubernetes-integration/cluster-explorer/kubernetes-cluster-explorer)하며, [알림을 관리](/docs/integrations/kubernetes-integration/understand-use-data/understand-use-data#alerts)할 수 있습니다. +
+ Prometheus 통합 + + 다양한 옵션을 선택해 [Prometheus에서 데이터를 모니터링하고 보고](/docs/infrastructure/prometheus-integrations/get-started/send-prometheus-metric-data-new-relic)할 수 있습니다. +
+ 다양한 온호스트 인프라 통합 + + NGINX, MySQL, Redis, Apache, RabbitMQ 등 보편적으로 사용되는 서비스의 데이터를 모니터링하고 보고할 수 있습니다. [서비스 활성화를 시작합니다](/docs/infrastructure/host-integrations/installation/install-infrastructure-host-integrations). +
+ 퀵스타트 구축하기 + + 자체적으로 경량 인프라 통합을 구축하려면 뉴렐릭의 [Flex 통합](/docs/integrations/host-integrations/host-integrations-list/flex-integration-tool-build-your-own-integration)을 사용합니다. +
+ +## 실행 가능한 데이터로 MTTR 감소 [#why-it-matters] + +실시간 메트릭과 분석은 호스트 성능의 변경 사항을 설정 변경 사항에 연결하여 [평균 해결 시간](https://newrelic.com/devops/how-to-reduce-mttr)(MTTR)을 줄여줍니다. 다음은 인프라 데이터가 어떻게 도움이 되는지 보여주는 예입니다. + +**Inventory** 페이지는 자산에 포함된 모든 인프라 [엔터티](/docs/new-relic-one/use-new-relic-one/core-concepts/what-entity-new-relic)에 중점을 둡니다. + +New Relic - Infrastructure monitoring - Inventory + +
+ **[one.newrelic.com](https://one.newrelic.com) &gt; All Capabilities &gt; Infrastructure monitoring &gt; Inventory**: 특정 패키지, 구성 또는 시작 스크립트가 포함된 호스트를 정확히 찾기 위해 전체 시스템을 검색합니다. +
+ +**Events** 페이지에서 구성 변경, 재시작, SSH 세션 및 기타 [주요 이벤트](/docs/infrastructure-events-page#types)의 변경 사항을 추적할 수 있습니다. 실시간 피드는 전체 인프라에 대한 변경 로그를 제공합니다. + +New Relic - Infrastructure monitoring - Events + +
+ **Events** 페이지에는 호스트에서 일어나는 모든 일에 대한 실시간 피드가 포함되어 있습니다. +
+ +뉴렐릭의 솔루션은 데이터를 [안전하게](/docs/infrastructure/new-relic-infrastructure/getting-started/infrastructure-security) 수집하고 표시하여 실시간 모니터링을 지원합니다. + +## 인프라 및 앱 데이터에 대한 로그 보기 [#logs-context] + +로그와 인프라 데이터를 함께 가져와 더 쉽고 빠르게 문제를 해결할 수 있습니다. 문맥적 로그를 사용하면 쿠버네티스 클러스터 같은 인프라 데이터의 로그를 볼 수 있습니다. 필요한 만큼 구성 파일을 추가할 수 있으며, 이 파일들은 로그 메타데이터를 뉴렐릭 플랫폼으로 푸시하는 소스 역할을 합니다. + +또한 오류 및 트레이스와 관련된 로그 메시지를 앱이나 호스트의 UI 에서 직접 확인할 수도 있습니다. 자세한 내용은 [문맥적 APM 로그](/docs/apm/new-relic-apm/getting-started/get-started-logs-context)를 참조하십시오. + +사용 중인 에이전트가 아직 컨텍스트 솔루션의 자동 로그를 지원하지 않는 경우, 컨텍스트 솔루션의 수동 로그를 계속 사용하고 인프라 에이전트 또는 기타 [지원되는 서드파티 로그 전달자를](/docs/logs/forward-logs/enable-log-management-new-relic) [통해 로그를 전달](/docs/logs/forward-logs/forward-your-logs-using-infrastructure-agent/)할 수 있습니다. \ No newline at end of file diff --git a/src/i18n/content/kr/docs/logs/forward-logs/fluent-bit-plugin-log-forwarding.mdx b/src/i18n/content/kr/docs/logs/forward-logs/fluent-bit-plugin-log-forwarding.mdx index 5518cfbe8d4..2734332f6b2 100644 --- a/src/i18n/content/kr/docs/logs/forward-logs/fluent-bit-plugin-log-forwarding.mdx +++ b/src/i18n/content/kr/docs/logs/forward-logs/fluent-bit-plugin-log-forwarding.mdx @@ -4,129 +4,125 @@ tags: - Logs - Enable log management in New Relic - Enable log monitoring in New Relic + - Fluent Bit metaDescription: 'Install and configure the New Relic logging plugin for Fluent Bit, so you can use enhanced log management capabilities.' -freshnessValidatedDate: never +freshnessValidatedDate: '2024-10-30T00:00:00.000Z' translationType: human --- [Fluent Bit](https://fluentbit.io/)에서 이미 로그 데이터를 모니터링하고 있는 경우, Fluent Bit 출력 플러그인을 사용하여 뉴렐릭에서 로그 데이터를 전달하고 보강할 수 있습니다. -Fluent Bit 로그를 뉴렐릭으로 전달하면 로그 데이터에 대한 수집, 처리, 탐색, 쿼리 및 알림하기 위한 향상된 기능이 제공됩니다. +Fluent Bit 로그를 뉴렐릭으로 전달하면 로그 데이터에 대한 수집, 처리, 탐색, 쿼리 및 알림 설정 시에 향상된 기능을 활용할 수 있습니다. 다음과 같은 방법으로 Fluent Bit를 설치할 수 있습니다. -## 기본 프로세스 [#compatibility-requirements] +* [쿠버네티스 설치](#k8s-installation) +* [도커 이미지 사용](#helm-docker-image) +* [온 호스트 설치](#on-host-installation) -플러그인이 설치된 컨테이너가 게시되었습니다. 이 컨테이너는 쿠버네티스 통합에서 사용할 기본 이미지 역할을 합니다. 이 기본 이미지를 사용하고 고유한 커스텀 구성 파일을 계층화하길 권합니다. +## 쿠버네티스 설치 [#k8s-installation] -Fluent Bit에서 뉴렐릭으로 로그를 전달하려면: +뉴렐릭에는 로그를 뉴렐릭 로그 관리로 전달하기 위한 [Fluent Bit 출력 플러그인](https://github.com/newrelic/newrelic-fluent-bit-output)이 있습니다. 이 플러그인을 독립적으로 실행되는 도커 이미지로 쿠버네티스 클러스터에 설치할 수 있습니다. 그러면 이 플러그인은 쿠버네스트 플러그인, 다른 말로는 DaemonSet의 역할을 수행합니다. -1. 다음 사항이 있는지 확인합니다. +[Helm 차트](https://github.com/newrelic/helm-charts/tree/master)를 사용해 두 가지 방법으로 클러스터에 설치할 수 있습니다. - * 뉴렐릭 +* 뉴렐릭 안내 설치 사용 +* 수동 설치 - +### 뉴렐릭 안내 설치 사용 [#helm-guided-install] - * Fluent Bit 1.0 이상(권장), v0.12 이상 +[`newrelic-logging`](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging) 차트는 독립적으로 작동하지만 [`nri-bundle`](https://github.com/newrelic/helm-charts/tree/master/charts/nri-bundle) 차트의 일부로 설치하는 것을 권장합니다. - * Fluent Bit Windows 설치 지침은 [여기](https://docs.fluentbit.io/manual/installation/windows)에서 찾을 수 있습니다. +이를 설치하는 가장 좋은 방법은 [안내 설치](/install/kubernetes/) 프로세스를 따르는 것입니다. 이 안내 설치는 설치에 필요한 Helm 명령을 생성합니다. - * Fluent Bit Linux 설치 지침은 [여기](https://docs.fluentbit.io/manual/installation/linux)에서 찾을 수 있습니다. +### 수동 설치 -2. Fluent Bit 플러그인을 [설치](#fluentbit-plugin)합니다. +Helm을 사용해 수동으로 설치하는 방법도 있지만 권장하지 않습니다. 리포지터리를 설치하려면 다음 명령을 실행합니다. -3. Fluent Bit 플러그인을 [구성](#configure-plugin)합니다. - -4. Fluent Bit 플러그인을 [테스트](#test-plugin)합니다. - -5. 트래픽을 생성하고 몇 분 정도 기다린 다음, [계정에서 데이터를 확인](#find-data)합니다. - -## Fluent Bit 플러그인 설치 [#fluentbit-plugin] - -Fluent Bit 플러그인을 설치하려면: - -1. [GitHub에서 뉴렐릭의 Fluent Bit 플러그인 리포지토리](https://github.com/newrelic/newrelic-fluent-bit-output)로 이동합니다. 2. 리포지토리 페이지에서 [리포지토리를 복제하거나 다운로드](https://help.github.com/en/articles/cloning-a-repository)합니다. 3. 다음 명령을 실행하여 플러그인을 빌드합니다. +```bash + helm repo add newrelic https://helm-charts.newrelic.com +``` - ```sh - cd newrelic-fluent-bit-output && make all - ``` +리포지토리를 업데이트하려면 다음 명령을 실행합니다. -2. `fluent-bit` 데몬이 액세스할 수 있는 위치에 `out_newrelic.so` 또는 `out_newrelic_winXX.dll`을 저장합니다. +```bash + helm repo update newrelic +``` - 플러그인을 직접 컴파일하길 원치 않는 경우 [GitHub 리포지토리의 릴리스 페이지](https://github.com/newrelic/newrelic-fluent-bit-output/releases)에서 사전 컴파일된 버전을 다운로드할 수 있습니다. + `newrelic-logging` Helm 차트에서 [지원되는 설정 모범 사례](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging#supported-configuration-parameters)를 참조하십시오. -## Fluent Bit 플러그인 업그레이드 [#upgrade-plugin] +제거하려면 [쿠버네티스 통합 제거](/docs/kubernetes-pixie/kubernetes-integration/installation/uninstall-kubernetes/)를 참조하십시오. -Fluent Bit 플러그인을 업그레이드하기 전에, 다음 NRQL 쿼리를 실행하여 시스템에서 사용 중인 출력 플러그인의 현재 버전을 찾으십시오. +## 도커 이미지 사용 [#helm-docker-image] -```sql - FROM K8sContainerSample - SELECT latest(containerImage) - WHERE podName like '%newrelic-logging%' - FACET clusterName -``` +맞춤화된 쿠버네티스 통합이 있는 경우, [`newrelic-fluent-bit-output`](https://github.com/newrelic/newrelic-fluent-bit-output)과 함께 제공되는 [도커](https://hub.docker.com/r/newrelic/newrelic-fluentbit-output) 이미지를 사용하는 것이 좋습니다. 또는 도커 이미지를 기본 이미지로 사용하고 맞춤 설정 파일을 계층화할 수도 있습니다. - - Fluent Bit 출력 플러그인 버전 1.16.0-1.19.2는 [보안 취약점(CVE-2024-4323)](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-4323)의 영향을 받습니다. 이러한 버전 중 하나를 사용하는 경우 버전 2.0.0 이상으로 업그레이드하시기 바랍니다. 이에 대한 자세한 내용은 [보안 게시판 NR24-01 - Fluent Bit](/docs/security/new-relic-security/security-bulletins/security-bulletin-nr24-01/)를 참조하십시오. - +## 온 호스트 설치 [#on-host-installation] -업그레이드하려면 [설치 지침](#fluentbit-plugin)을 따르거나 [GitHub 저장소](https://github.com/newrelic/newrelic-fluent-bit-output/releases)에서 사전 컴파일된 최신 버전을 가져오십시오. +Fluent Bit 플러그인의 온 호스트 설치는 다음 단계를 따릅니다. -## Fluent Bit 출력 플러그인 설치 [#fluent-bit] +1. GitHub에서 뉴렐릭의 [Fluent Bit 플러그인](https://github.com/newrelic/newrelic-fluent-bit-output)을 엽니다. -뉴렐릭에는 사용자의 로그를 뉴렐릭 로그인 관리에 전달하기 위한 [Fluent Bit](https://fluentbit.io/) [출력 플러그인](https://github.com/newrelic/newrelic-fluent-bit-output)이 있습니다. 이 플러그인은 DaemonSet 형태로 쿠버네티스 클러스터에 설치할 수 있는 독립 실행형 이미지로도 제공되며 쿠버네티스 플러그인이라고도 합니다. +2. 리포지토리 페이지에서 [리포지토리를 복제하거나 다운로드](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)합니다. -두 가지 방법으로 Helm 차트를 사용하여 클러스터에 설치할 수 있습니다. +3. 다음 명령을 실행해 플러그인을 빌드합니다. -### 안내 설치 사용 [#helm-guided-install] +```sh +cd newrelic-fluent-bit-output && make all +``` -[newrelic-logging](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging) 차트는 독립적으로 작동하지만 [nri-bundle](https://github.com/newrelic/helm-charts/tree/master/charts/nri-bundle) 차트의 일부로 설치하는 것을 권장합니다. +4. `fluent-bit` 데몬이 액세스할 수 있는 위치에 `out_newrelic.so` 또는 `out_newrelic_winXX.dll`을 저장합니다. -가장 좋은 설치 방법은 [안내 설치](/docs/kubernetes-pixie/kubernetes-integration/installation/kubernetes-integration-install-configure/) 프로세스를 따르는 것입니다. 이 안내 설치는 설치에 필요한 Helm 3 명령을 생성할 수 있습니다(["Helm 3" 참조](/docs/kubernetes-pixie/kubernetes-integration/installation/kubernetes-integration-install-configure/#finish-your-install)). + + 플러그인을 직접 컴파일하길 원치 않는 경우 [GitHub 리포지터리의 릴리스 페이지](https://github.com/newrelic/newrelic-fluent-bit-output/releases)에서 사전 컴파일된 버전을 다운로드할 수 있습니다. + -### 수동 설치 [#manual-helm-install] +### Fluent Bit 플러그인 업그레이드 [#upgrade-plugin] -또는 Helm을 사용해 다음 명령을 실행하여 리포지터리를 수동 설치할 수 있습니다. +Fluent Bit 플러그인을 업그레이드하기 전에 다음 NRQL 쿼리를 실행하여 시스템에서 사용 중인 출력 플러그인의 현재 버전을 찾으십시오. -```bash - helm repo add newrelic https://helm-charts.newrelic.com +```sql +FROM K8sContainerSample +SELECT latest(containerImage) +WHERE podName like '%newrelic-logging%' +FACET clusterName ``` -리포지터리를 업데이트하려면 다음을 실행할 수 있습니다. - -```bash - helm repo update newrelic -``` + + [보안 취약점(CVE-2024-4323)](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-4323)은 Fluent Bit 출력 플러그인 버전 1.16.0-1.19.2에 영향을 미칩니다. 이 버전 중 하나를 사용하고 있다면 2.0.0 이상 버전으로 업데이트해야 합니다. 이에 대한 자세한 내용은 보안 공지 [NR24-01 - Fluent Bit](/docs/security/new-relic-security/security-bulletins/security-bulletin-nr24-01/)를 참조하십시오. + -[제거 지침](/docs/kubernetes-pixie/kubernetes-integration/uninstall-kubernetes/)은 여기에서 확인할 수 있습니다. +업데이트하려면 설치 지침을 따르거나 [GitHub 리포지터리](https://github.com/newrelic/newrelic-fluent-bit-output/releases)에서 최신 사전 컴파일 버전을 다운로드하십시오. ## Fluent Bit 플러그인 구성 [#configure-plugin] -Fluent Bit는 뉴렐릭 플러그인과 뉴렐릭의 위치를 알아야 뉴렐릭에 데이터를 출력할 수 있습니다. Fluent Bit 플러그인을 구성하려면: +Fluent Bit는 뉴렐릭 플러그인과 뉴렐릭의 위치를 알아야 뉴렐릭에 데이터를 출력할 수 있습니다. 구성 파일을 수정할 때 공백에 주의하십시오. 들여쓰기에 4개의 공백을 사용하고 키와 값 사이에 1개의 공백을 사용해야 합니다. -1. 플러그인 디렉터리에서 `plugins.conf` 파일을 찾거나 생성합니다. +다음 단계에 따라 Fluent Bit 플러그인을 설정합니다. + +1. 플러그인 디렉토리에서 `plugins.conf` 파일을 찾거나 생성합니다. 2. `plugins.conf` 파일에서 `fluent-bit.conf` 파일 옆에 `out_newrelic.so`에 대한 참조를 추가합니다. - ```ini - [PLUGINS] - Path /PATH/TO/newrelic-fluent-bit-output/out_newrelic.so - ``` +```ini +[PLUGINS] + Path /PATH/TO/newrelic-fluent-bit-output/out_newrelic.so +``` 3. `fluent-bit.conf` 파일에서 `service` 블록 아래에 다음 줄을 추가합니다. - ```ini - [SERVICE] - # This is the main configuration block for fluent bit. - # Ensure the follow line exists somewhere in the SERVICE block - Plugins_File plugins.conf - ``` +```ini +[SERVICE] + # This is the main configuration block for fluent bit. + # Ensure the follow line exists somewhere in the SERVICE block + Plugins_File plugins.conf +``` -4. `fluent-bit.conf` 파일 하단에 다음을 추가하여 입력, 필터, 출력 섹션을 설정합니다. 자리표시자 텍스트를 로 바꿉니다. +4. `fluent-bit.conf` 파일 하단에 다음을 추가하여 입력, 필터, 출력 섹션을 설정합니다. 자리표시자 텍스트를 로 바꿉니다. ```ini [INPUT] @@ -163,14 +159,12 @@ Fluent Bit는 뉴렐릭 플러그인과 뉴렐릭> /PATH/TO/YOUR/LOG/FILE ``` -2. `test message`에 대한 [로그 UI](https://one.newrelic.com/launcher/logger.log-launcher)를 검색합니다. +2. [로그 UI](https://one.newrelic.com/launcher/logger.log-launcher) 에서 `test message`를 검색합니다. -더 많은 옵션은 [Fluent Bit 수정 필터 문서](https://docs.fluentbit.io/manual/pipeline/filters/modify)와 [인프라 에이전트를 사용한 로그 전달](/docs/logs/enable-log-management-new-relic/enable-log-monitoring-new-relic/forward-your-logs-using-infrastructure-agent/#automatically-inserted-attributes) 문서를 참조하십시오. +더 많은 옵션은 [Fluent Bit 문서의 `modify` 필터](https://docs.fluentbit.io/manual/pipeline/filters/modify)를 참조하십시오. [인프라 에이전트를 사용해 로그를 전달하는 방법](/docs/logs/forward-logs/forward-your-logs-using-infrastructure-agent/#automatically-inserted-attributes)에 대한 문서도 참조할 수 있습니다. ## 선택 사항: 플러그인 속성 구성 [#instrument-plugin] -Fluent Bit 플러그인을 [설치](#fluentbit-plugin)하고 [구성](#configure-plugin)했으면 다음 속성을 사용하여 플러그인이 뉴렐릭에 데이터를 보내는 방법을 구성할 수 있습니다. +Fluent Bit 플러그인을 설치하고 [설정](#configure-plugin)한 후에는 다음 속성을 사용해 플러그인이 데이터를 뉴렐릭으로 보내는 방법을 설정할 수 있습니다. @@ -209,7 +203,7 @@ Fluent Bit 플러그인을 [설치](#fluentbit-plugin)하고 [구성](#configure @@ -249,7 +243,7 @@ Fluent Bit 플러그인을 [설치](#fluentbit-plugin)하고 [구성](#configure @@ -257,25 +251,29 @@ Fluent Bit 플러그인을 [설치](#fluentbit-plugin)하고 [구성](#configure ## 로그 데이터 확인 [#find-data] -모든 것이 올바르게 구성되고 데이터가 수집되는 경우 다음 두 위치에서 로그가 표시되어야 합니다. +모든 것이 올바르게 설정되었고 뉴렐릭이 데이터를 수집하기 시작하면 다음 두 곳 모두에서 로그 데이터가 표시됩니다. * [로그 UI](https://one.newrelic.com/launcher/logger.log-launcher) -* [NRQL 쿼리](/docs/chart-builder/use-chart-builder/choose-data/use-advanced-nrql-mode-specify-data) 실행을 위한 툴입니다.예를 들어 다음과 같은 쿼리를 실행할 수 있습니다. + +* [NRQL 쿼리](/docs/query-your-data/explore-query-data/query-builder/use-advanced-nrql-mode-query-data/) 실행을 위한 뉴렐릭 툴. 예를 들어, 다음과 같은 쿼리를 실행할 수 있습니다. ```sql -SELECT * FROM Log +SELECT * +FROM Log ``` -로그 관리 기능을 활성화한 후에도 데이터가 나타나지 않으면 [표준 로그 문제 해결 절차](/docs/logs/log-management/troubleshooting/no-log-data-appears-ui/)를 따르십시오. +로그 관리 기능을 활성화한 후에도 데이터가 수집되지 않으면 표준 로그 [문제 해결 절차](/docs/logs/troubleshooting/no-log-data-appears-ui/)를 따르십시오. ## 다음 단계는? [#what-next] -[로그 UI](/docs/logs/log-management/ui-data/use-logs-ui)를 사용하여 플랫폼 전반에 걸쳐 로깅 데이터를 탐색합니다. +[로그 UI](/docs/logs/ui-data/use-logs-ui/)를 사용하여 플랫폼 전반에 걸쳐 로깅 데이터를 탐색합니다. * [문맥적 로그](/docs/logs/enable-log-management-new-relic/configure-logs-context/configure-logs-context-apm-agents/) 기능으로 로그를 전달하여 애플리케이션과 플랫폼 성능 데이터에 대한 더 깊은 가시성을 얻을 수 있습니다. -* [알림](/docs/alerts-applied-intelligence/new-relic-alerts/alert-conditions/create-alert-conditions/)을 설정합니다. + +* [알림](/docs/alerts/create-alert/create-alert-condition/alert-conditions/)을 설정합니다. + * [데이터를 쿼리](/docs/query-your-data/explore-query-data/get-started/introduction-querying-new-relic-data/)하고 [대시보드를 만듭니다](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards/). ## 로그 전달 비활성화 [#disable] -로그 전달 기능을 비활성화하려면 [Fluent Bit 문서](https://fluentbit.io/)에 포함된 표준 절차를 따르십시오. 뉴렐릭에서는 다른 작업을 수행할 필요가 없습니다. +로그 전달 기능을 비활성화하려면 [Fluent Bit 문서](https://fluentbit.io/)의 표준 절차를 참고하십시오. 뉴렐릭에서는 다른 작업을 수행할 필요가 없습니다. \ No newline at end of file diff --git a/src/i18n/content/kr/docs/mobile-monitoring/new-relic-monitoring-react-native/monitor-your-react-native-application.mdx b/src/i18n/content/kr/docs/mobile-monitoring/new-relic-monitoring-react-native/monitor-your-react-native-application.mdx index 01148a568b2..1d27c90a59d 100644 --- a/src/i18n/content/kr/docs/mobile-monitoring/new-relic-monitoring-react-native/monitor-your-react-native-application.mdx +++ b/src/i18n/content/kr/docs/mobile-monitoring/new-relic-monitoring-react-native/monitor-your-react-native-application.mdx @@ -58,57 +58,70 @@ React Native 에이전트를 설치하려면 UI에 있는 [안내 설치](https: `index.js`를 열고 다음 코드를 추가하여 뉴렐릭을 실행합니다. ```js - import NewRelic from 'newrelic-react-native-agent'; - import {name, version} from './package.json'; - import {Platform} from 'react-native'; - let appToken; - if (Platform.OS === 'ios') { - appToken = ''; - } else { - appToken = ''; - } - const agentConfiguration = { - - //Android Specific - // Optional:Enable or disable collection of event data. - analyticsEventEnabled: true, - // Optional:Enable or disable crash reporting. - crashReportingEnabled: true, - // Optional:Enable or disable interaction tracing. Trace instrumentation still occurs, but no traces are harvested. This will disable default and custom interactions. - interactionTracingEnabled: true, - // Optional:Enable or disable reporting successful HTTP requests to the MobileRequest event type. - networkRequestEnabled: true, - // Optional:Enable or disable reporting network and HTTP request errors to the MobileRequestError event type. - networkErrorRequestEnabled: true, - // Optional:Enable or disable capture of HTTP response bodies for HTTP error traces, and MobileRequestError events. - httpRequestBodyCaptureEnabled: true, - // Optional:Enable or disable agent logging. - loggingEnabled: true, - // Optional:Specifies the log level. Omit this field for the default log level. - // Options include: ERROR (least verbose), WARNING, INFO, VERBOSE, AUDIT (most verbose). - logLevel: NewRelic.LogLevel.INFO, - // iOS Specific - // Optional:Enable/Disable automatic instrumentation of WebViews - webViewInstrumentation: true, - // Optional:Set a specific collector address for sending data. Omit this field for default address. - // collectorAddress: "", - // Optional:Set a specific crash collector address for sending crashes. Omit this field for default address. - // crashCollectorAddress: "", - // Optional:Enable or disable reporting data using different endpoints for US government clients - fedRampEnabled: false - // Optional: Enable or disable offline data storage when no internet connection is available. - offlineStorageEnabled: true - - // iOS Specific - // Optional: Enable or disable Background Reporting. - backgroundReportingEnabled: false, - - // iOS Specific - // Optional: Enable or disable to use our new, more stable event system for iOS agent. - newEventSystemEnabled: false - - - }; + import NewRelic from "newrelic-react-native-agent"; + import { name, version } from "./package.json"; + import { Platform } from "react-native"; + + let appToken; + if (Platform.OS === "ios") { + appToken = "IOS-APP-TOKEN"; + } else { + appToken = "ANDROID-APP-TOKEN"; + } + + const agentConfiguration = { + // Android Specific + // Optional:Enable or disable collection of event data. + analyticsEventEnabled: true, + + // Optional:Enable or disable crash reporting. + crashReportingEnabled: true, + + // Optional:Enable or disable interaction tracing. Trace instrumentation still occurs, but no traces are harvested. + // This will disable default and custom interactions. + interactionTracingEnabled: true, + + // Optional:Enable or disable reporting successful HTTP requests to the MobileRequest event type. + networkRequestEnabled: true, + + // Optional:Enable or disable reporting network and HTTP request errors to the MobileRequestError event type. + networkErrorRequestEnabled: true, + + // Optional:Enable or disable capture of HTTP response bodies for HTTP error traces, and MobileRequestError events. + httpRequestBodyCaptureEnabled: true, + + // Optional:Enable or disable agent logging. + loggingEnabled: true, + + // Optional:Specifies the log level. Omit this field for the default log level. + // Options include: ERROR (least verbose), WARNING, INFO, VERBOSE, AUDIT (most verbose). + logLevel: NewRelic.LogLevel.INFO, + + // iOS Specific + // Optional:Enable/Disable automatic instrumentation of WebViews + webViewInstrumentation: true, + + // Optional:Set a specific collector address for sending data. Omit this field for default address. + collectorAddress: "", + + // Optional:Set a specific crash collector address for sending crashes. Omit this field for default address. + crashCollectorAddress: "", + + // Optional:Enable or disable reporting data using different endpoints for US government clients + fedRampEnabled: false, + + // Optional: Enable or disable offline data storage when no internet connection is available. + offlineStorageEnabled: true, + + // iOS Specific + // Optional: Enable or disable Background Reporting. + backgroundReportingEnabled: false, + + // iOS Specific + // Optional: Enable or disable to use our new, more stable event system for iOS agent. + newEventSystemEnabled: false, + }; + NewRelic.startAgent(appToken, agentConfiguration); NewRelic.setJSAppVersion(version); AppRegistry.registerComponent(name, () => App); @@ -170,7 +183,7 @@ React Native 에이전트를 설치하려면 UI에 있는 [안내 설치](https: ``` 3. 다음 줄을 `AndroidManifest.xml`에 추가하여 앱이 `INTERNET` 및 `ACCESS_NETWORK_STATE` 권한을 요청하도록 합니다. - ``` + ```xml ``` @@ -228,11 +241,11 @@ React Native 에이전트를 설치하려면 UI에 있는 [안내 설치](https: [커스텀 관리 워크플로우](https://docs.expo.dev/introduction/managed-vs-bare/#bare-workflow)를 설정하려면, 패키지를 설치한 후 구성 플러그인을 `app.json` 또는 `app.config.js`의 플러그인 배열에 추가합니다. - ```javascript - { - "name": "my app", - "plugins": ["newrelic-react-native-agent"] - } + ```json + { + "name": "my app", + "plugins": ["newrelic-react-native-agent"] + } ``` 관리되는 워크플로우의 경우 [커스텀 네이티브 코드 추가](https://docs.expo.dev/workflow/customizing/) 가이드에 설명된 대로 `expo prebuild --clean` 명령어를 사용해 플러그인 변경사항으로 앱을 다시 빌드해야 합니다. 이 명령이 실행되고 있지 않으면 뉴렐릭 에이전트를 시작할 때 오류가 발생합니다. Expo Go 사용자의 경우 에이전트는 네이티브 코드를 사용해야 합니다. Expo Go는 커스텀 네이티브 코드의 무선 전송이 지원되지 않으므로 [Expo Go에서 커스텀 네이티브 코드를 사용하는 방법](https://docs.expo.dev/bare/using-expo-client/)에 대한 Expo의 문서를 따르시기 바랍니다. @@ -247,19 +260,17 @@ React Native 에이전트를 설치하려면 UI에 있는 [안내 설치](https: * [react-navigation v5](https://github.com/react-navigation/react-navigation)의 경우: - 다음과 같이 NavigationContainer에서 `onStateChange`를 `NewRelic.onStateChange`로 설정합니다. + `NavigationContainer`에서 `onStateChange`를 `NewRelic.onStateChange`로 설정합니다. ```javascript - + ``` - * react-navigation v4 이하의 경우: 다음과 같이 앱 래퍼에서 `onNavigationStateChange`를 `NewRelic.onNavigationStateChange`로 설정합니다. + * react-navigation v4 이하의 경우: `App` 래퍼에서 `onNavigationStateChange`를 `NewRelic.onNavigationStateChange`로 설정합니다. ```javascript - export default () => ( - + export default () => ( + ); ``` @@ -270,18 +281,19 @@ React Native 에이전트를 설치하려면 UI에 있는 [안내 설치](https: 다음을 사용해 `NewRelic.componentDidAppearListener` 리스너를 등록합니다. ```javascript - Navigation.events().registerComponentDidAppearListener( NewRelic.componentDidAppearListener ); + Navigation.events().registerComponentDidAppearListener( + NewRelic.componentDidAppearListener + ); ``` 또는 다음 API를 사용하여 화면 변경 사항을 수동으로 보고할 수 있습니다. ```js var params = { - 'screenName':'screenName' - }; - - NewRelic.recordBreadcrumb('navigation',params); + screenName: "screenName", + }; + NewRelic.recordBreadcrumb("navigation", params); ``` From f364631c94959dbfd856fe02d0f1d0a5afc8d0be Mon Sep 17 00:00:00 2001 From: svc-docs-eng-opensource-bot Date: Tue, 19 Nov 2024 12:05:18 +0000 Subject: [PATCH 13/30] chore: add translations --- src/i18n/content/es/docs/alerts/overview.mdx | 4 - .../net-agent-compatibility-requirements.mdx | 40 +++-- .../default-infra-data.mdx | 19 +++ .../account-setup/choose-your-data-center.mdx | 2 - src/i18n/content/jp/docs/alerts/overview.mdx | 4 - .../net-agent-compatibility-requirements.mdx | 40 +++-- .../monitoring/kubernetes-summary-page.mdx | 2 +- .../NRQL-high-cardinality-metrics.mdx | 2 +- .../installation/k8s-agent-operator.mdx | 22 ++- .../account-setup/choose-your-data-center.mdx | 2 - src/i18n/content/kr/docs/alerts/overview.mdx | 4 - .../api-guides/guide-using-java-agent-api.mdx | 45 +++++- .../compatibility-requirements-java-agent.mdx | 12 +- .../net-agent-compatibility-requirements.mdx | 40 +++-- ...ompatibility-requirements-nodejs-agent.mdx | 2 +- .../monitoring/kubernetes-summary-page.mdx | 2 +- .../default-infra-data.mdx | 19 +++ .../installation/k8s-agent-operator.mdx | 22 ++- .../account-setup/choose-your-data-center.mdx | 2 - src/i18n/content/pt/docs/alerts/overview.mdx | 4 - .../api-guides/guide-using-java-agent-api.mdx | 45 +++++- .../java-agent-configuration-config-file.mdx | 152 +++++++++++++++++- .../compatibility-requirements-java-agent.mdx | 12 +- .../net-agent-compatibility-requirements.mdx | 40 +++-- ...ompatibility-requirements-nodejs-agent.mdx | 2 +- .../monitoring/kubernetes-summary-page.mdx | 2 +- .../default-infra-data.mdx | 19 +++ .../installation/k8s-agent-operator.mdx | 22 ++- 28 files changed, 460 insertions(+), 123 deletions(-) diff --git a/src/i18n/content/es/docs/alerts/overview.mdx b/src/i18n/content/es/docs/alerts/overview.mdx index 27dfac9a219..bf5523132b7 100644 --- a/src/i18n/content/es/docs/alerts/overview.mdx +++ b/src/i18n/content/es/docs/alerts/overview.mdx @@ -184,10 +184,6 @@ Este diagrama muestra cómo funcionan las alertas: usted crea una política de a
- . `licenseKey` (**recommended**) 또는 `apiKey` 중 하나를 사용하고 둘 다 사용할 수는 없습니다. 기본: `none` + . `licenseKey` (**recommended**) 또는 `apiKey` 중 하나를 사용하고 둘 다 사용할 수는 없습니다. 기본: `none`
- 기본값은 `https://log-api.newrelic.com/log/v1` 입니다. EU 키를 사용하려면 다음으로 설정해야 합니다. `https://log-api.eu.newrelic.com/log/v1` + 기본값은 `https://log-api.newrelic.com/log/v1`입니다. EU 키를 사용하는 경우의 설정: `https://log-api.eu.newrelic.com/log/v1`
-## Nota sobre el centro de datos UE/EE.UU. [#eu-datacenter] - -El servicio de alertas de New Relic se realiza en Estados Unidos. Al emplear las alertas de New Relic, usted acepta que New Relic pueda mover sus datos y procesarlos en la región de EE. UU. Esto se aplica ya sea que almacene sus datos en el centro de datos de la región de EE. UU. de New Relic o en nuestro [centro de datos de la región de la UE](/docs/accounts/accounts-billing/account-setup/choose-your-data-center/). - ¿Listo para probar New Relic por ti mismo? [Regístrese para obtener su cuenta gratuita New Relic ](https://newrelic.com/signup)y siga nuestra [guía de lanzamiento rápida](/docs/new-relic-solutions/get-started/intro-new-relic/#get-started) para que pueda comenzar a maximizar sus datos hoy mismo. Si necesita ayuda, consulte nuestra [serie de tutoriales](/docs/tutorial-create-alerts/create-new-relic-alerts/) sobre cómo crear alertas para comenzar. 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 f7509127a3b..7149a9f4346 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 @@ -36,7 +36,11 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum - El agente .NET admite .NET Core versión 3.1 y .NET 5.0, 6.0 y 8.0. + El agente .NET es compatible con .NET Core versión 3.1 y .NET 5.0, 6.0, 7.0, 8.0 y 9.0. + + + El agente solo es totalmente compatible cuando la aplicación instrumentada tiene como objetivo [los tiempos de ejecución .NET actualmente soportados por Microsoft](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core). Es probable que el agente funcione con los tiempos de ejecución EOL que se enumeran a continuación, pero no probamos nuevas versiones del agente con tiempos de ejecución EOL. + @@ -54,7 +58,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum + + + + + +
- .NET Core 3.1 + .NET Core 3.1 (fin de vida útil) @@ -64,7 +68,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum
- .NET 5.0 + .NET 5.0 (fin de vida útil) @@ -74,7 +78,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum
- NET 6.0 + .NET 6.0 (fin de vida útil) @@ -84,7 +88,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum
- .NET 7.0 + .NET 7.0 (fin de vida útil) @@ -101,6 +105,16 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum 10.0.0 y superior
+ .NET 9.0 + + 10.0.0 y superior +
@@ -247,9 +261,9 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum
- El agente .NET solo admite aplicaciones destinadas a .NET Core 3.1 y .NET 5.0, 6.0 y 8.0. Puede encontrar el framework objetivo en su archivo `.csproj`. La compatibilidad del agente varía según las diferentes versiones de .NET Core. + El agente .NET es compatible con aplicaciones destinadas a .NET Core 3.1 y .NET 5.0, 6.0, 7.0, 8.0 y 9.0. Puede encontrar el framework objetivo en su archivo `.csproj`. La compatibilidad del agente varía según las diferentes versiones de .NET Core. - Soportado: + Compatible: ```xml netcoreapp3.1 @@ -271,16 +285,14 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum net8.0 ``` + ```xml + net9.0 + ``` + En la plataforma Linux ARM64, el agente .NET **only** admite el marco objetivo de `net5.0` o superior. - No compatible: - - ```xml - net452 - ``` - Si desea monitor una aplicación ASP.NET Core orientada al marco .NET, cerciorar de habilitar la compatibilidad con el marco .NET luego de instalar el agente .NET.
@@ -293,7 +305,7 @@ Para el marco y la biblioteca que no se [instrumentan automáticamente](#instrum El agente .NET instrumentó automáticamente este marco de aplicación: - * ASP..NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0 y 8.0 (incluye API web) + * ASP..NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 y 9.0 (incluye API sitio web) * ASP..NET Core Razor Pages 6.0, 7.0 y 8.0 (a partir de la versión 10.19.0 del agente .NET) diff --git a/src/i18n/content/es/docs/infrastructure/infrastructure-data/default-infra-data.mdx b/src/i18n/content/es/docs/infrastructure/infrastructure-data/default-infra-data.mdx index ae99e5ef002..5c6f0441e91 100644 --- a/src/i18n/content/es/docs/infrastructure/infrastructure-data/default-infra-data.mdx +++ b/src/i18n/content/es/docs/infrastructure/infrastructure-data/default-infra-data.mdx @@ -114,6 +114,25 @@ Seleccione un nombre de evento en la siguiente tabla para ver su atributo. `NetworkSample` Captura la información descriptiva y de estado de cada dispositivo de red asociado con un servidor. Incluye la interfaz del dispositivo y la información de dirección, así como datos de uso actuales. Tomamos una instantánea de estos datos cada 10 segundos para cada interfaz de red conectada y la empaquetamos en un evento `NetworkSample` , que luego se envía a New Relic. Estos datos aparecen en la [página UI **Network** ](/docs/infrastructure/infrastructure-ui-pages/infra-hosts-ui-page#network). + + + No todos los dispositivos de red se incluirán de forma predeterminada, los filtros en la siguiente tabla no generarán `NetworkSample` para las interfaces coincidentes a menos que se modifique el atributo de configuración [network-inferface-filters](/docs/infrastructure/install-infrastructure-agent/configuration/infrastructure-agent-configuration-settings/#network-interface-filters) . + + + + + Filtros de interfaz de red predeterminados para Linux: + + * Interfaces de red que comienzan con `dummy`, `lo`, `vmnet`, `sit`, `tun`, `tap` o `veth` + * Interfaces de red que contienen `tun` o `tap` + + + + Filtros de interfaz de red predeterminados para Windows: + + * Interfaces de red que comienzan con `Loop`, `isatap` o `Local` + + diff --git a/src/i18n/content/jp/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx b/src/i18n/content/jp/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx index 44004bf4074..1395b226dd7 100644 --- a/src/i18n/content/jp/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx +++ b/src/i18n/content/jp/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx @@ -39,8 +39,6 @@ New Relic は、EU 地域において、米国地域とほぼ同じ製品、機 * APMの [ウィークリーパフォーマンスレポート](/docs/apm/reports/other-performance-analysis/weekly-performance-report) は利用できません。 * 非推奨の製品や機能は利用できません。 -[New Relic のインシデント インテリジェンス](/docs/new-relic-one/use-new-relic-one/new-relic-ai/get-started-incident-intelligence)サービスは、お客様がデータを New Relic の米国地域のデータ センターまたは New Relic の EU 地域のデータ センターに保存するかどうかにかかわらず、米国内でのみ運用されます。New Relic インシデント インテリジェンスを使用することにより、お客様は、New Relic がお客様のデータを米国地域。 - ## データ費用 [#data-costs] データ取り込みのコストは、データ センターのリージョンによって異なります。詳しくは、 [定価表](/docs/licenses/license-information/usage-plans/new-relic-one-usage-plan-descriptions/#list-price)をご覧ください。 diff --git a/src/i18n/content/jp/docs/alerts/overview.mdx b/src/i18n/content/jp/docs/alerts/overview.mdx index fbb0d404cb5..d6636b56bcf 100644 --- a/src/i18n/content/jp/docs/alerts/overview.mdx +++ b/src/i18n/content/jp/docs/alerts/overview.mdx @@ -184,10 +184,6 @@ New Relic アラートを使用すると、次のことが可能になります -## EU/米国のデータセンターに関する注意事項 [#eu-datacenter] - -New Relic のアラート サービスは米国で実行されます。 New Relic アラートを使用することにより、お客様は New Relic がお客様のデータを米国地域に移動し、米国地域でデータを処理することに同意するものとします。 これは、New Relic の米国地域のデータセンターにデータを保存する場合でも、 [EU 地域のデータセンター](/docs/accounts/accounts-billing/account-setup/choose-your-data-center/)にデータを保存する場合でも適用されます。 - New Relic を実際に試してみませんか? [無料のNew Relicアカウントにサインアップし](https://newrelic.com/signup)、[クイック リリース ガイド](/docs/new-relic-solutions/get-started/intro-new-relic/#get-started)に従って、今すぐデータを最大限に活用しましょう。 サポートが必要な場合は、アラートの作成に関する[チュートリアル シリーズ](/docs/tutorial-create-alerts/create-new-relic-alerts/)をご覧ください。 diff --git a/src/i18n/content/jp/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx b/src/i18n/content/jp/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx index 96320f9c42e..a162d6a68ad 100644 --- a/src/i18n/content/jp/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx +++ b/src/i18n/content/jp/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx @@ -36,7 +36,11 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor - .NETエージェントは、.NET Coreバージョン3.1、および .NET 5.0、6.0、8.0をサポートしています。 + .NET エージェントは、.NET Core バージョン 3.1、および .NET 5.0、6.0、7.0、8.0、9.0 と互換性があります。 + + + エージェントは[、現在 Microsoft によってサポートされている対象.NET ランタイムを対象と](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core)するインストゥルメントされたアプリケーションの場合にのみ完全にサポートされます。 エージェントは、以下にリストされている EOL されたランタイムでも動作する可能性がありますが、EOL されたランタイムではエージェントの新しいバージョンはテストされません。 + @@ -54,7 +58,7 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor + + + + + +
- .NET Core 3.1 + .NET Core 3.1 (サポート終了) @@ -64,7 +68,7 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor
- .NET 5.0 + .NET 5.0 (サポート終了) @@ -74,7 +78,7 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor
- .NET 6.0 + .NET 6.0 (サポート終了) @@ -84,7 +88,7 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor
- .NET 7.0 + .NET 7.0 (サポート終了) @@ -101,6 +105,16 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor 10.0.0以降
+ .NET 9.0 + + 10.0.0以降 +
@@ -247,9 +261,9 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor
- .NETエージェントのサポート対象は、.NET Core 3.1、.NET 5.0、6.0、8.0を対象とするアプリケーションのみです。ターゲットフレームワークは、`.csproj`ファイルで見つけることができます。エージェントの互換性は、.NET Coreのバージョンによって異なります。 + .NET エージェントは、.NET Core 3.1、および .NET 5.0、6.0、7.0、8.0、9.0 をターゲットとするアプリケーションと互換性があります。 ターゲット フレームワークは`.csproj`ファイルにあります。 エージェントの互換性は、.NET Core のバージョンによって異なります。 - サポート: + 互換: ```xml netcoreapp3.1 @@ -271,16 +285,14 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor net8.0 ``` + ```xml + net9.0 + ``` + Linux ARM64プラットフォームでは、.NETエージェント**only**は`net5.0`以降のターゲットフレームワークをサポートします。 - 非サポート: - - ```xml - net452 - ``` - .NET フレームワークをターゲットとする ASP..NET Core アプリケーションを監視する場合は、.NET エージェントをインストールした後、.NET フレームワークのサポートが有効になっていることを確認してください。
@@ -293,7 +305,7 @@ New Relicの .NET エージェントは、.NET フレームワークと .NET Cor .NET Coreエージェントは、以下のアプリケーションを自動的にインストゥルメントします。 - * ASP.NET Core MVC 2.0、2.1、2.2、3.0、3.1、5.0、6.0、7.0、および8.0(Web APIを含む) + * ASP..NET Core MVC 2.0、2.1、2.2、3.0、3.1、5.0、6.0、7.0、8.0、9.0 (Web API含む) * ASP.NET Core Razor Pages 6.0、7.0、および8.0(.NETエージェントバージョン10.19.0以降) diff --git a/src/i18n/content/jp/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx b/src/i18n/content/jp/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx index 1eb9358c567..1632b82dfcd 100644 --- a/src/i18n/content/jp/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx +++ b/src/i18n/content/jp/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx @@ -123,5 +123,5 @@ Kubernetes 概要ページを表示するには、APM サービス エンティ Kubernetes異なるインストゥルメンテーション プロバイダー (New Relic とOpenTelemetry ) が混在している場合、 概要ページは正しく機能しません。これが適切に動作するには、 KubernetesとAPM両方をNew Relic独自のエージェントを通じて独占的に監視するか、完全にOpenTelemetryを通じて監視する必要があります。 - ハイブリッド シナリオはサポートされていません。 + **さまざまなインストゥルメンテーション プロバイダーのセットアップのサポートは、2025 年の第 1 四半期までに予定されています。** \ No newline at end of file diff --git a/src/i18n/content/jp/docs/data-apis/ingest-apis/metric-api/NRQL-high-cardinality-metrics.mdx b/src/i18n/content/jp/docs/data-apis/ingest-apis/metric-api/NRQL-high-cardinality-metrics.mdx index 895ba7d5c3f..74a28ed3363 100644 --- a/src/i18n/content/jp/docs/data-apis/ingest-apis/metric-api/NRQL-high-cardinality-metrics.mdx +++ b/src/i18n/content/jp/docs/data-apis/ingest-apis/metric-api/NRQL-high-cardinality-metrics.mdx @@ -72,7 +72,7 @@ Metric APIに送信すると、これらのメトリクスの1つは以下のよ 上記のように、キーや値に変更があれば、新しいカーディナリティを表すことになりますが、それらの変更が全体のカーディナリティにどのような影響を与えるかを予測するのは、少し難しいことです。メトリックのカーディナリティは、可能性のある各キーに対するすべての可能性のある値の数の積であると仮定したくなるが、あるキーの値が他のキーの値に依存したり決定したりすることが多いため、実際にはほとんどない。 -前の例を使用すると、 `container`の値が`1`になると、コンテナ ID がグローバルに一意であると仮定して、 `host`の値が \{ `W` } に固定されました。したがって、4 つのホストに 8 つのコンテナーがありますが、カーディナリティは 4 \* 8 = 32 ではなく 8 のままです。これは、単純な乗算方法でカウントされるほとんどの組み合わせが不可能であり、そのメトリックのカーディナリティに寄与しないためです。たとえば、 `host = 'X', container = 1`の組み合わせは見られません。 +前の例を使用すると、 `container`の値が`1`になると、コンテナ ID がグローバルに一意であると仮定して、 `host`の値が `W` に固定されました。したがって、4 つのホストに 8 つのコンテナーがありますが、カーディナリティは 4 \* 8 = 32 ではなく 8 のままです。これは、単純な乗算方法でカウントされるほとんどの組み合わせが不可能であり、そのメトリックのカーディナリティに寄与しないためです。たとえば、 `host = 'X', container = 1`の組み合わせは見られません。 これはまた、属性マップにキーを追加しても、必ずしも総カーディナリティが増加するわけではないことを意味します。新しいキーの値が既存のキーの値によって一意に決定される場合、長期的に新しいカーディナリティが追加されることはありません。たとえば、例のマップに`region`のようなものを追加すると、 `container`の値も特定の地域の値に固定され、カーディナリティが 8 に保たれる可能性があります。 diff --git a/src/i18n/content/jp/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/i18n/content/jp/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index 64a41fb3bb7..ad27e9802be 100644 --- a/src/i18n/content/jp/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/i18n/content/jp/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -12,7 +12,7 @@ translationType: machine KubernetesAPM以前はKubernetes エージェントKubernetes APMKubernetesオペレーターとして知られていた 自動アタッチは、 エージェント デプロイメントとともに インストゥルメンテーションを自動化することで、 環境のフルスタック オブザーバビリティを合理化します。自動インストゥルメンテーションを有効にすると、開発者は[APMエージェントを](/docs/apm/new-relic-apm/getting-started/introduction-apm/)手動で管理する必要がなくなります。 Kubernetes APM自動アタッチは、 APMエージェントを自動的にインストール、アップグレード、削除します。 -現在、Java、.NET、Node.js[をサポートしています](#k8s-supported-versions)。 Python、Ruby に加え、追加言語 (PHP および Go) も開発中です。 +現在、Java、.NET、Node.js[をサポートしています](#k8s-supported-versions)。 Python、Ruby、PHP。 ## 使い方 [#how-it-works] @@ -255,6 +255,20 @@ kubectl apply -f ./values.yaml -n newrelic [Ruby](https://hub.docker.com/repository/docker/newrelic/newrelic-ruby-init/general) + + + + php + + + + `newrelic-php-init:latest` + + + + [PHP](https://hub.docker.com/repository/docker/newrelic/newrelic-php-init/general) + + @@ -292,6 +306,7 @@ kubectl apply -f ./values.yaml -n newrelic * [Python](/docs/apm/agents/python-agent/configuration/python-agent-configuration/) * [.NET](/docs/apm/agents/net-agent/configuration/net-agent-configuration/) * [Ruby](/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/) +* [PHP](/docs/apm/agents/php-agent/configuration/php-agent-configuration/) これらの環境変数をアプリ デプロイメント マニフェストに挿入できます。 @@ -373,7 +388,7 @@ kubectl apply -f ./values.yaml -n newrelic namespace: newrelic spec: agent: - language: java + language: ruby image: newrelic/newrelic-ruby-init:latest namespaceLabelSelector: matchExpressions: @@ -484,6 +499,7 @@ helm search repo k8s-agents-operator * [Python](/docs/apm/agents/python-agent/custom-instrumentation/python-custom-instrumentation/) * [.NET](/docs/apm/agents/net-agent/custom-instrumentation/introduction-net-custom-instrumentation/) * [Ruby](/docs/apm/agents/ruby-agent/api-guides/ruby-custom-instrumentation/) + * [PHP](/docs/apm/agents/php-agent/features/php-custom-instrumentation/) @@ -539,7 +555,7 @@ helm search repo k8s-agents-operator ## サポート [#support] -Kubernetes APM自動アタッチは現在、Java、.NET、Node.jsなどのAPMエージェントの最新バージョンをサポートしています。 Python と Ruby。 +Kubernetes APM自動アタッチは現在、Java、.NET、Node.jsなどのAPMエージェントの最新バージョンをサポートしています。 Python、Ruby、PHP。 一般提供開始後は、各APMエージェントの最新 3 バージョンがサポートされます。 diff --git a/src/i18n/content/kr/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx b/src/i18n/content/kr/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx index 3424327f54f..4e427e0dab3 100644 --- a/src/i18n/content/kr/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx +++ b/src/i18n/content/kr/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx @@ -39,8 +39,6 @@ New Relic은 미국 지역에서 제공되는 것과 거의 동일한 활성 제 * APM의 [주간 실적 보고서](/docs/apm/reports/other-performance-analysis/weekly-performance-report) 는 사용할 수 없습니다. * 더 이상 사용되지 않는 제품 및 기능은 사용할 수 없습니다. -[New Relic의 사고 정보](/docs/new-relic-one/use-new-relic-one/new-relic-ai/get-started-incident-intelligence) 서비스는 New Relic의 미국 지역 데이터 센터 또는 New Relic의 EU 지역 데이터 센터에 데이터를 저장하는지 여부에 관계없이 미국에서만 운영됩니다. New Relic 사고 정보를 사용하면 New Relic이 데이터를 미국 지역. - ## 데이터 비용 [#data-costs] 데이터 수집 비용은 데이터 센터 지역에 따라 다릅니다. 자세한 내용은 [정가표](/docs/licenses/license-information/usage-plans/new-relic-one-usage-plan-descriptions/#list-price) 를 참조하십시오. diff --git a/src/i18n/content/kr/docs/alerts/overview.mdx b/src/i18n/content/kr/docs/alerts/overview.mdx index 97afb2ec815..dd4dcd64808 100644 --- a/src/i18n/content/kr/docs/alerts/overview.mdx +++ b/src/i18n/content/kr/docs/alerts/overview.mdx @@ -184,10 +184,6 @@ translationType: machine -## EU/US 데이터 센터에 대한 참고 사항 [#eu-datacenter] - -뉴렐릭의 알림 서비스는 미국에서 수행됩니다. 뉴렐릭 알림을 사용하면 뉴렐릭이 귀하의 데이터를 미국 지역으로 이동하고 미국 지역에서 처리할 수 있다는 점에 동의하는 것입니다. 이는 귀하가 뉴렐릭의 미국 지역 데이터센터나 [EU 지역 데이터센터](/docs/accounts/accounts-billing/account-setup/choose-your-data-center/) 에 데이터를 저장하는지 여부에 관계없이 적용됩니다. - 뉴렐릭을 직접 시험해 볼 준비가 되셨나요? [무료 뉴렐릭 계정에 가입](https://newrelic.com/signup) 하고 [빠른 시작 가이드를](/docs/new-relic-solutions/get-started/intro-new-relic/#get-started) 따라 오늘부터 데이터를 최대화해 보세요! 도움이 필요하면 알림 생성에 대한 [튜토리얼 시리즈를](/docs/tutorial-create-alerts/create-new-relic-alerts/) 확인하여 시작해 보세요. diff --git a/src/i18n/content/kr/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx b/src/i18n/content/kr/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx index ef63475c87a..7510f72fed7 100644 --- a/src/i18n/content/kr/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx +++ b/src/i18n/content/kr/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx @@ -9,7 +9,7 @@ freshnessValidatedDate: never translationType: machine --- -뉴렐릭 배터리 에이전트 API 사용하면 [배터리 에이전트](/docs/agents/java-agent/getting-started/new-relic-java) 의 기능을 제어, 맞춤설정, 확장할 수 있습니다. 이 API는 다음으로 구성됩니다. +뉴렐릭 배터리 에이전트 API 사용하면 [배터리 에이전트](/docs/agents/java-agent/getting-started/new-relic-java) 의 기능을 제어, 맞춤설정, 확장할 수 있습니다. 이 API는 다음으로 구성됩니다. * `com.newrelic.api.agent.NewRelic` 클래스의 정적 메서드 * 사용자 정의 계측 구현을 위한 [@Trace 주석](/docs/agents/java-agent/custom-instrumentation/java-instrumentation-annotation) @@ -141,8 +141,8 @@ implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}' 애플리케이션의 오류 및 추적 컨텍스트 내에서 직접 로그를 보려면 다음 API 호출을 사용하여 로그에 주석을 추가하십시오. -* [`getTraceMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getTraceMetadata()) -* [`getLinkingMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getLinkingMetadata()) +* [`getTraceMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getTraceMetadata\(\)) +* [`getLinkingMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getLinkingMetadata\(\)) 로그 데이터와 다른 원격 측정 데이터의 상관 관계에 대한 자세한 내용은 [컨텍스트 문서의 로그를](/docs/logs/logs-context/java-configure-logs-context-all/) 참조하세요. @@ -308,10 +308,7 @@ implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}' - + [에이전트 버전 6.4.0](/docs/release-notes/agent-release-notes/java-release-notes/java-agent-640) 에서는 다음 분산 추적 API가 더 이상 사용되지 않으며 위 표의 API로 대체되었습니다. 에이전트를 업그레이드하고 더 이상 사용되지 않는 API 대신 새 API를 사용하는 것이 좋습니다. @@ -688,6 +685,38 @@ implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}' 또한 `Insights` 을 [사용하여 New Relic API 클래스에 대한 참조를 얻는](#) 방법에 대한 이 문서의 정보를 참조하세요. + + + + 에이전트에게 일반 클라우드 공급자 계정 정보를 제공합니다. + + + + ```java + NewRelic.getAgent().getCloud().setAccountInfo(CloudAccountInfo.AWS_ACCOUNT_ID, "..."); + ``` + + 이 방법을 사용하면 계정 정보 유형과 해당 금액을 제공할 수 있습니다. 에이전트는 이 정보를 사용하여 선택한 클라우드 서비스 범위에서 속성 `cloud.resource_id` 을 채웁니다. + + AWS DynamoDB와 Kinesis는 `cloud.resource_id` 속성을 채우려면 이 값이 필요한 서비스입니다. 마찬가지로, AWS Lambda는 계정 ID가 함수 이름에 포함되지 않은 경우 이 값을 요구합니다. + + 이 메서드를 호출하면 해당 클라우드 설정이 재정의됩니다. 위에 표시된 호출은 `cloud.aws.account_id` 재정의합니다. + + + + + + 에이전트에 SDK 클라이언트별 클라우드 공급자 계정 정보를 제공합니다. + + + + ```java + NewRelic.getAgent().getCloud().setAccountInfo(sdkClient, CloudAccountInfo.AWS_ACCOUNT_ID, "..."); + ``` + + 이 호출은 이전 메서드와 동일한 정보를 제공하지만, 제공된 SDK 클라이언트에만 국한됩니다. 지정된 SDK 클라이언트를 사용하면 일반 데이터 대신 이 데이터가 사용됩니다. + + @@ -702,4 +731,4 @@ API 사용에 대한 자세한 코드 예제는 다음에 대한 사용자 지 * [원치 않는 계측 방지](/docs/agents/java-agent/instrumentation/blocking-instrumentation-java) * [사용자 정의 속성 삽입](/docs/data-analysis/metrics/collecting-custom-attributes#java-att) * [사용자 정의 이벤트 삽입](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents#java-att) -* [맞춤 측정항목 수집](/docs/apm/other-features/metrics/custom-metrics) +* [맞춤 측정항목 수집](/docs/apm/other-features/metrics/custom-metrics) \ No newline at end of file diff --git a/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx b/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx index bfd4f88a366..8faf32aab08 100644 --- a/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx +++ b/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx @@ -268,19 +268,19 @@ Java 에이전트를 설치하기 전에 시스템이 다음 요구 사항을 * JMS 1.1에서 최신 버전 - * Kafka 클라이언트 노드 지표]\(/docs/에이전트/java-에이전트 측정/자바 에이전트-계측하다-kafka-메시지 독립) 3.7.0에서 최신(라인용) + * [Kafka 클라이언트 노드 지표](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0부터 최신(기준용) * [Kafka 클라이언트 지표](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.10.0.0부터 최신 버전까지(지수용) - * [Kafka 클라이언트 스팬](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 to 3.6.x (분산 추적용) + * [Kafka 클라이언트 스팬](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 ~ 최신 (for future 추적) - * [카프카 커넥트](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0-3.6.x (기준용) + * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 - 최신 버전(메트릭용) - * [카프카 커넥트](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0에서 3.6.x로 (분산 추적 및 트랜잭션 데이터용) + * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 - 최신 버전(분산 추적 및 트랜잭션 데이터용) - * [카프카 스트림](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0-3.6.x (기준용) + * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 - 최신 버전(메트릭용) - * [카프카 스트림](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0-3.6.x (분산 추적 및 트랜잭션 데이터용) + * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 - 최신 버전(분산 추적 및 트랜잭션 데이터용) * OkHttp 3.6.0-최신 버전 diff --git a/src/i18n/content/kr/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx b/src/i18n/content/kr/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx index 76b72d96a4b..e091d63c060 100644 --- a/src/i18n/content/kr/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx +++ b/src/i18n/content/kr/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx @@ -36,7 +36,11 @@ translationType: machine - .NET 에이전트는 .NET Core 버전 3.1과 .NET 5.0, 6.0 및 8.0을 지원합니다. + .NET 에이전트는 .NET Core 버전 3.1, .NET 5.0, 6.0, 7.0, 8.0 및 9.0과 호환됩니다. + + + 에이전트는 [현재 Microsoft에서 지원하는 목표 .NET 런타임이 있는](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core) 경우에만 완전히 지원됩니다. 해당 에이전트는 아래 나열된 EOL 런타임에서 작동할 가능성이 있지만, EOL 런타임에서 새 버전의 에이전트를 테스트하지는 않습니다. + @@ -54,7 +58,7 @@ translationType: machine + + + + + +
- .NET 코어 3.1 + .NET Core 3.1 (EOL) @@ -64,7 +68,7 @@ translationType: machine
- .NET 5.0 + .NET 5.0 (단종) @@ -74,7 +78,7 @@ translationType: machine
- .NET 6.0 + .NET 6.0 (단종) @@ -84,7 +88,7 @@ translationType: machine
- .NET 7.0 + .NET 7.0 (단종) @@ -101,6 +105,16 @@ translationType: machine 10.0.0 이상
+ .NET 9.0 + + 10.0.0 이상 +
@@ -247,9 +261,9 @@ translationType: machine
- .NET 에이전트는 .NET Core 3.1, 그리고 .NET 5.0, 6.0, 8.0을 타겟으로 하는 애플리케이션만 지원합니다. `.csproj` 파일에서 쿠, 목표 프레임워크를 찾을 수 있습니다. 에이전트 호환성은 .NET Core 버전마다 다릅니다. + .NET 에이전트는 .NET Core 3.1, .NET 5.0, 6.0, 7.0, 8.0, 9.0을 타겟으로 하는 애플리케이션과 호환됩니다. `.csproj` 파일에서 군단, 목표 프레임워크를 찾을 수 있습니다. 에이전트 호환성은 .NET Core 버전마다 다릅니다. - 지원: + 호환 가능: ```xml netcoreapp3.1 @@ -271,16 +285,14 @@ translationType: machine net8.0 ``` + ```xml + net9.0 + ``` + Linux ARM64 플랫폼에서 .NET 에이전트 **only** 는 `net5.0` 이상의 목표 프레임워크를 지원합니다. - 지원되지 않음: - - ```xml - net452 - ``` - .NET 프레임워크를 대상으로 하는 ASP..NET Core 기능을 모니터링하려면 .NET 에이전트를 설치한 후 .NET 프레임워크 지원을 활성화했는지 확인하세요.
@@ -293,7 +305,7 @@ translationType: machine .NET 에이전트는 다음 애플리케이션 프레임워크를 자동으로 계측합니다. - * ASP.NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0 및 8.0(웹 API 포함) + * ASP..NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 및 9.0(Web API 포함) * ASP.NET Core Razor Pages 6.0, 7.0 및 8.0(.NET 에이전트 버전 10.19.0부터 시작) diff --git a/src/i18n/content/kr/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx b/src/i18n/content/kr/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx index f4b4d343a06..24b9df930ac 100644 --- a/src/i18n/content/kr/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx +++ b/src/i18n/content/kr/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx @@ -251,7 +251,7 @@ Node.js 에이전트는 [npm(Node Package Manager) 저장소](https://npmjs.org/ **참고**: 지원되는 최신 버전은 지원되는 최신 버전을 반영하지 않을 수 있습니다. -| 패키지 이름 | 최소 지원 버전 | 최신 지원 버전 | 도입된 버전\* | | --- | --- | --- | --- | | `@apollo/gateway` | 2.3.0 | 2.9.3 | `@newrelic/apollo-server-plugin@1.0.0` | | `@apollo/server` | 4.0.0 | 4.11.2 | `@newrelic/apollo-server-plugin@2.1.0` | | `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.687.0 | 11.13.0 | | `@aws-sdk/client-dynamodb` | 3.0.0 | 3.687.0 | 8.7.1 | | `@aws-sdk/client-sns` | 3.0.0 | 3.687.0 | 8.7.1 | | `@aws-sdk/client-sqs` | 3.0.0 | 3.689.0 | 8.7.1 | | `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.689.0 | 8.7.1 | | `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 | | `@elastic/elasticsearch` | 7.16.0 | 8.15.2 | 11.9.0 | | `@grpc/grpc-js` | 1.4.0 | 1.12.2 | 8.17.0 | | `@hapi/hapi` | 20.1.2 | 21.3.12 | 9.0.0 | | `@koa/router` | 11.0.2 | 13.1.0 | 3.2.0 | | `@langchain/core` | 0.1.17 | 0.3.18 | 11.13.0 | | `@nestjs/cli` | 9.0.0 | 10.4.7 | 10.1.0 | | `@prisma/client` | 5.0.0 | 5.22.0 | 11.0.0 | | `@smithy/smithy-client` | 2.0.0 | 3.4.2 | 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.1692.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 | | `connect` | 3.0.0 | 3.7.0 | 2.6.0 | | `express` | 4.6.0 | 4.21.1 | 2.6.0 | | `fastify` | 2.0.0 | 5.1.0 | 8.5.0 | | `generic-pool` | 3.0.0 | 3.9.0 | 0.9.0 | | `ioredis` | 4.0.0 | 5.4.1 | 1.26.2 | | `kafkajs` | 2.0.0 | 2.2.4 | 11.19.0 | | `koa` | 2.0.0 | 2.15.3 | 3.2.0 | | `koa-route` | 3.0.0 | 4.0.1 | 3.2.0 | | `koa-router` | 11.0.2 | 13.0.1 | 3.2.0 | | `memcached` | 2.2.0 | 2.2.2 | 1.26.2 | | `mongodb` | 4.1.4 | 6.10.0 | 1.32.0 | | `mysql` | 2.2.0 | 2.18.1 | 1.32.0 | | `mysql2` | 2.0.0 | 3.11.4 | 1.32.0 | | `next` | 13.4.19 | 15.0.3 | 12.0.0 | | `openai` | 4.0.0 | 4.72.0 | 11.13.0 | | `pg` | 8.2.0 | 8.13.1 | 9.0.0 | | `pg-native` | 3.0.0 | 3.2.0 | 9.0.0 | | `pino` | 7.0.0 | 9.5.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.1.1 | 4.9.0 | | `undici` | 5.0.0 | 6.20.1 | 11.1.0 | | `when` | 3.7.0 | 3.7.8 | 1.26.2 | | `winston` | 3.0.0 | 3.17.0 | 8.11.0 | +| 패키지 이름 | 최소 지원 버전 | 최신 지원 버전 | 도입된 버전\* | | --- | --- | --- | --- | | `@apollo/gateway` | 2.3.0 | 2.9.3 | `@newrelic/apollo-server-plugin@1.0.0` | | `@apollo/server` | 4.0.0 | 4.11.2 | `@newrelic/apollo-server-plugin@2.1.0` | | `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.691.0 | 11.13.0 | | `@aws-sdk/client-dynamodb` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/client-sns` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/client-sqs` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 | | `@elastic/elasticsearch` | 7.16.0 | 8.16.0 | 11.9.0 | | `@grpc/grpc-js` | 1.4.0 | 1.12.2 | 8.17.0 | | `@hapi/hapi` | 20.1.2 | 21.3.12 | 9.0.0 | | `@koa/router` | 11.0.2 | 13.1.0 | 3.2.0 | | `@langchain/core` | 0.1.17 | 0.3.18 | 11.13.0 | | `@nestjs/cli` | 9.0.0 | 10.4.7 | 10.1.0 | | `@prisma/client` | 5.0.0 | 5.22.0 | 11.0.0 | | `@smithy/smithy-client` | 2.0.0 | 3.4.3 | 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.1692.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 | | `connect` | 3.0.0 | 3.7.0 | 2.6.0 | | `express` | 4.6.0 | 4.21.1 | 2.6.0 | | `fastify` | 2.0.0 | 5.1.0 | 8.5.0 | | `generic-pool` | 3.0.0 | 3.9.0 | 0.9.0 | | `ioredis` | 4.0.0 | 5.4.1 | 1.26.2 | | `kafkajs` | 2.0.0 | 2.2.4 | 11.19.0 | | `koa` | 2.0.0 | 2.15.3 | 3.2.0 | | `koa-route` | 3.0.0 | 4.0.1 | 3.2.0 | | `koa-router` | 11.0.2 | 13.0.1 | 3.2.0 | | `memcached` | 2.2.0 | 2.2.2 | 1.26.2 | | `mongodb` | 4.1.4 | 6.10.0 | 1.32.0 | | `mysql` | 2.2.0 | 2.18.1 | 1.32.0 | | `mysql2` | 2.0.0 | 3.11.4 | 1.32.0 | | `next` | 13.4.19 | 15.0.3 | 12.0.0 | | `openai` | 4.0.0 | 4.72.0 | 11.13.0 | | `pg` | 8.2.0 | 8.13.1 | 9.0.0 | | `pg-native` | 3.0.0 | 3.2.0 | 9.0.0 | | `pino` | 7.0.0 | 9.5.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.1.1 | 4.9.0 | | `undici` | 5.0.0 | 6.21.0 | 11.1.0 | | `when` | 3.7.0 | 3.7.8 | 1.26.2 | | `winston` | 3.0.0 | 3.17.0 | 8.11.0 | \*패키지를 지정하지 않으면 `newrelic` 패키지 내에서 지원됩니다. diff --git a/src/i18n/content/kr/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx b/src/i18n/content/kr/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx index c3381acd61e..08b75f56e3b 100644 --- a/src/i18n/content/kr/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx +++ b/src/i18n/content/kr/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx @@ -123,5 +123,5 @@ Kubernetes 요약 페이지를 표시하려면 APM 서비스 엔터티에 다음 Kubernetes 다양한 계측 공급자(뉴럴릭 및 OpenTelemetry)가 혼합되어 있는 경우 요약 페이지가 제대로 작동하지 않습니다. 이것이 제대로 작동하려면 Kubernetes 와 APM 모두 뉴렐릭의 독점 에이전트를 통해서만 모니터링되거나 OpenTelemetry 통해서만 모니터링되어야 합니다. - 우리는 하이브리드 시나리오를 지원하지 않습니다. + **2025년 1분기에 다양한 계측기 공급업체 설정에 대한 지원이 예상됩니다.** \ No newline at end of file diff --git a/src/i18n/content/kr/docs/infrastructure/infrastructure-data/default-infra-data.mdx b/src/i18n/content/kr/docs/infrastructure/infrastructure-data/default-infra-data.mdx index 7bdeacea9bf..03c94ef1ba3 100644 --- a/src/i18n/content/kr/docs/infrastructure/infrastructure-data/default-infra-data.mdx +++ b/src/i18n/content/kr/docs/infrastructure/infrastructure-data/default-infra-data.mdx @@ -114,6 +114,25 @@ translationType: machine `NetworkSample` 서버와 연결된 각 네트워크 장치에 대한 기술 및 상태 정보를 캡처합니다. 여기에는 장치의 인터페이스와 주소 정보는 물론 현재 사용 데이터도 포함됩니다. 연결된 각 네트워크 인터페이스에 대해 10초마다 이 데이터의 스냅샷을 찍어 `NetworkSample` 이벤트로 패키징한 다음 뉴렐릭으로 전송합니다. 이 데이터는 [**Network** UI 페이지](/docs/infrastructure/infrastructure-ui-pages/infra-hosts-ui-page#network) 에 나타납니다. + + + 기본적으로 모든 네트워크 장치가 포함되지는 않습니다. 다음 표의 필터는 [network-inferface-filters](/docs/infrastructure/install-infrastructure-agent/configuration/infrastructure-agent-configuration-settings/#network-interface-filters) 구성 속성이 수정되지 않는 한 일치하는 인터페이스에 대해 `NetworkSample` 생성하지 않습니다. + + + + + Linux용 기본 네트워크 인터페이스 필터: + + * `dummy` , `lo` , `vmnet` , `sit` , `tun` , `tap` 또는 `veth` + * `tun` 또는 `tap` + + + + Windows용 기본 네트워크 인터페이스 필터: + + * `Loop` , `isatap` 또는 `Local` + + diff --git a/src/i18n/content/kr/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/i18n/content/kr/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index 8dd6756594c..77472daed22 100644 --- a/src/i18n/content/kr/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/i18n/content/kr/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -12,7 +12,7 @@ translationType: machine Kubernetes APM Kubernetes 이전에 에이전트 Kubernetes APM 연산자로 알려진 자동 Kubernetes 연결은 에이전트 배포와 함께 배포를 자동화하여 환경에 대한 풀스택 옵저버빌리티를 간소화합니다. 자동 측정을 활성화하면 개발자는 더 이상 [APM 에이전트를](/docs/apm/new-relic-apm/getting-started/introduction-apm/) 수동으로 관리할 필요가 없습니다. Kubernetes APM 자동 연결은 APM 에이전트를 자동으로 설치, 업그레이드 및 제거합니다. -현재 Java, .NET, Node.js를 [지원합니다](#k8s-supported-versions) . Python 및 루비에 추가 언어(PHP 및 Go)가 추가될 예정입니다. +현재 Java, .NET, Node.js를 [지원합니다](#k8s-supported-versions) . 파이썬, 루비, PHP. ## 작동 원리 [#how-it-works] @@ -255,6 +255,20 @@ kubectl apply -f ./values.yaml -n newrelic [루비](https://hub.docker.com/repository/docker/newrelic/newrelic-ruby-init/general) + + + + 페프 + + + + `newrelic-php-init:latest` + + + + [PHP](https://hub.docker.com/repository/docker/newrelic/newrelic-php-init/general) + + @@ -292,6 +306,7 @@ kubectl apply -f ./values.yaml -n newrelic * [파이썬](/docs/apm/agents/python-agent/configuration/python-agent-configuration/) * [.그물](/docs/apm/agents/net-agent/configuration/net-agent-configuration/) * [루비](/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/) +* [PHP](/docs/apm/agents/php-agent/configuration/php-agent-configuration/) 이러한 환경 변수는 앱 배포 매니페스트에 삽입할 수 있습니다. @@ -373,7 +388,7 @@ kubectl apply -f ./values.yaml -n newrelic namespace: newrelic spec: agent: - language: java + language: ruby image: newrelic/newrelic-ruby-init:latest namespaceLabelSelector: matchExpressions: @@ -484,6 +499,7 @@ helm search repo k8s-agents-operator * [파이썬](/docs/apm/agents/python-agent/custom-instrumentation/python-custom-instrumentation/) * [.그물](/docs/apm/agents/net-agent/custom-instrumentation/introduction-net-custom-instrumentation/) * [루비](/docs/apm/agents/ruby-agent/api-guides/ruby-custom-instrumentation/) + * [PHP](/docs/apm/agents/php-agent/features/php-custom-instrumentation/)
@@ -539,7 +555,7 @@ helm search repo k8s-agents-operator ## 지원하다 [#support] -Kubernetes APM 자동 연결은 현재 다음 APM 에이전트의 최신 버전을 지원합니다: Java, .NET, Node.js, 파이썬, 루비. +Kubernetes APM 자동 연결은 현재 다음 APM 에이전트의 최신 버전을 지원합니다: Java, .NET, Node.js, 파이썬, 루비, PHP. 일반적으로 사용 가능해지면 각 APM 에이전트의 최신 3가지 버전이 지원될 예정입니다. diff --git a/src/i18n/content/pt/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx b/src/i18n/content/pt/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx index 75df75f2217..43db2f83e0a 100644 --- a/src/i18n/content/pt/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx +++ b/src/i18n/content/pt/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx @@ -39,8 +39,6 @@ A New Relic oferece quase todos os mesmos produtos ativos, recursos, ofertas de * [Os relatórios semanais de desempenho](/docs/apm/reports/other-performance-analysis/weekly-performance-report) da APM não estão disponíveis. * Produtos e recursos obsoletos não estão disponíveis. -O serviço [de inteligência de incidentes da New Relic](/docs/new-relic-one/use-new-relic-one/new-relic-ai/get-started-incident-intelligence) opera exclusivamente nos EUA, quer você armazene seus dados no data center da região dos EUA da New Relic ou no data center da região da UE da New Relic, ao usar a inteligência de incidentes da New Relic, você concorda que a New Relic pode mover e armazenar seus dados no Região dos EUA. - ## Custos de dados [#data-costs] Os custos da ingestão de dados dependem da região do seu data center. Para obter detalhes, consulte [a tabela de preços de tabela](/docs/licenses/license-information/usage-plans/new-relic-one-usage-plan-descriptions/#list-price). diff --git a/src/i18n/content/pt/docs/alerts/overview.mdx b/src/i18n/content/pt/docs/alerts/overview.mdx index bd749fe657f..d250b014a21 100644 --- a/src/i18n/content/pt/docs/alerts/overview.mdx +++ b/src/i18n/content/pt/docs/alerts/overview.mdx @@ -184,10 +184,6 @@ Este diagrama mostra como os alertas funcionam: você cria uma política de aler -## Nota sobre o data center da UE/EUA [#eu-datacenter] - -O serviço de alertas da New Relic é realizado nos Estados Unidos. Ao usar os alertas da New Relic, você concorda que a New Relic pode mover e processar seus dados na região dos EUA. Isso se aplica quer você armazene seus dados no data center da região dos EUA da New Relic ou em nosso [data center da região da UE](/docs/accounts/accounts-billing/account-setup/choose-your-data-center/). - Pronto para experimentar o New Relic você mesmo? [Cadastre-se para obter sua conta New Relic gratuita](https://newrelic.com/signup) e siga nosso [guia de lançamento rápido](/docs/new-relic-solutions/get-started/intro-new-relic/#get-started) para começar a maximizar seus dados hoje mesmo! Se precisar de ajuda, confira nossa [série de tutoriais](/docs/tutorial-create-alerts/create-new-relic-alerts/) sobre como criar alertas para começar. diff --git a/src/i18n/content/pt/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx b/src/i18n/content/pt/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx index 2409603981c..d79cdee09a0 100644 --- a/src/i18n/content/pt/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx +++ b/src/i18n/content/pt/docs/apm/agents/java-agent/api-guides/guide-using-java-agent-api.mdx @@ -9,7 +9,7 @@ freshnessValidatedDate: never translationType: machine --- -A API do agente Java da New Relic permite controlar, personalizar e estender a funcionalidade do [agente Java](/docs/agents/java-agent/getting-started/new-relic-java). Esta API consiste em: +A API do agente Java da New Relic permite controlar, personalizar e estender a funcionalidade do [agente Java](/docs/agents/java-agent/getting-started/new-relic-java). Esta API consiste em: * Métodos estáticos na classe `com.newrelic.api.agent.NewRelic` * Uma [anotação @Trace](/docs/agents/java-agent/custom-instrumentation/java-instrumentation-annotation) para implementar instrumentação personalizada @@ -141,8 +141,8 @@ Para usar o instrumento [`Transactions`](/docs/apm/applications-menu/monitoring/ Para ver o log diretamente no contexto dos erros e rastreamento do seu aplicativo, use esta chamada de API para anotar seu log: -* [`getTraceMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getTraceMetadata()) -* [`getLinkingMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getLinkingMetadata()) +* [`getTraceMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getTraceMetadata\(\)) +* [`getLinkingMetadata`](http://newrelic.github.io/java-agent-api/javadoc/com/newrelic/api/agent/Agent.html#getLinkingMetadata\(\)) Para obter mais informações sobre como correlacionar dados log com outros dados de telemetria, consulte nossa documentação [de logs contextualizados](/docs/logs/logs-context/java-configure-logs-context-all/) . @@ -308,10 +308,7 @@ Distributed tracing permite ver o caminho que uma solicitação percorre ao perc - + Com [a versão 6.4.0 do](/docs/release-notes/agent-release-notes/java-release-notes/java-agent-640) agente , a seguinte distributed tracing API foi descontinuada e substituída pela API na tabela acima. É altamente recomendável atualizar o agente e usar a nova API em vez das obsoletas. @@ -688,6 +685,38 @@ A API a seguir fornece funcionalidades adicionais, como configuração de inform Consulte também as informações neste documento sobre como usar `Insights` para [obter referências às classes da API New Relic](#). + + + + Forneça informações gerais da conta do provedor de nuvem ao agente + + + + ```java + NewRelic.getAgent().getCloud().setAccountInfo(CloudAccountInfo.AWS_ACCOUNT_ID, "..."); + ``` + + Com esse método, você pode fornecer o tipo de informação da conta e seu valor. O agente usa essas informações para preencher o atributo `cloud.resource_id` nos spans selecionados de serviços na nuvem. + + AWS DynamoDB e Kinesis são serviços que exigem esse valor para preencher o atributo `cloud.resource_id` . Da mesma forma, o AWS Lambda exige esse valor quando o ID da conta não faz parte do nome da função. + + Chamar esse método substitui a respectiva configuração de nuvem. A chamada mostrada acima substitui `cloud.aws.account_id`. + + + + + + Forneça informações específicas da conta do provedor de nuvem do cliente SDK ao agente + + + + ```java + NewRelic.getAgent().getCloud().setAccountInfo(sdkClient, CloudAccountInfo.AWS_ACCOUNT_ID, "..."); + ``` + + Esta chamada fornece as mesmas informações que o método anterior, mas é específica para o cliente SDK fornecido. Quando o cliente SDK especificado for usado, esses dados serão usados em vez dos gerais. + + @@ -702,4 +731,4 @@ Para obter exemplos de código detalhados sobre como usar a API, consulte a docu * [Prevenindo instrumentação indesejada](/docs/agents/java-agent/instrumentation/blocking-instrumentation-java) * [Inserindo atributo personalizado](/docs/data-analysis/metrics/collecting-custom-attributes#java-att) * [Inserindo evento personalizado](/docs/insights/new-relic-insights/adding-querying-data/inserting-custom-events-new-relic-apm-agents#java-att) -* [Coleta métrica personalizada](/docs/apm/other-features/metrics/custom-metrics) +* [Coleta métrica personalizada](/docs/apm/other-features/metrics/custom-metrics) \ No newline at end of file diff --git a/src/i18n/content/pt/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file.mdx b/src/i18n/content/pt/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file.mdx index 21dbe775139..ee392b7774f 100644 --- a/src/i18n/content/pt/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file.mdx +++ b/src/i18n/content/pt/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file.mdx @@ -1940,6 +1940,56 @@ common: &default_settings​ +## Configuração de cloud + +Defina opções relacionadas à nuvem na seção `cloud` do YAML do agente. Você pode substituir essas configurações com uma [propriedade de sistema](/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file/#System_Properties) prefixada `newrelic.config.cloud` ou uma [variável de ambiente](/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file/#Environment_Variables) prefixada `NEW_RELIC_CLOUD_` . + +Um exemplo de configuração: + +```yml +cloud: + aws: + account_id: 123456789012 +``` + + + + + + + + + + + + + + + + + +
+ Tipo + + Corda +
+ Padrão + + (nenhum) +
+ + Esta configuração é lida por alguns serviços na instrumentação em nuvem para que o atributo `cloud.resource_id` possa ser definido nos respectivos spans. + + AWS DynamoDB e Kinesis são serviços que exigem esse valor para preencher o atributo `cloud.resource_id` . Da mesma forma, o AWS Lambda exige esse valor quando o ID da conta não faz parte do nome da função. + + A chamada a seguir substituirá esta configuração: + + ```java + NewRelic.getAgent().getCloud().setAccountInfo(CloudAccountInfo.AWS_ACCOUNT_ID, "..."); + ``` +
+
+ ## Utilização da plataforma em nuvem [#utilization] Defina as configurações de utilização da plataforma de nuvem na seção `utilization` e podem ser substituídas pela propriedade de sistema prefixada `newrelic.config.utilization` . @@ -3301,7 +3351,7 @@ Defina a configuração da coleção jar na seção `jar_collector` . Essas opç O agente Java usa Java Flight Recorder (JFR) para coletar dados JVM de alta fidelidade para [criação de perfil em tempo real](/docs/agents/java-agent/features/real-time-profiling-java-using-jfr-metrics/). -Configure a criação de perfil em tempo real na seção `jfr` no YAML do agente com [propriedades do sistema](#System_Properties) prefixadas por `newrelic.config.jfr.` ou com [variáveis de ambiente](#Environment_Variables) prefixadas por `NEW_RELIC_JFR_`. +Configure a criação de perfil em tempo real na seção `jfr` no YAML do agente. Essas opções de configuração podem ser substituídas por [propriedades do sistema](#System_Properties) prefixadas por `newrelic.config.jfr.` ou por [variáveis de ambiente](#Environment_Variables) prefixadas por `NEW_RELIC_JFR_`. @@ -3437,11 +3487,109 @@ O agente Java usa JMX para coletar dados JVM. Além disso, o agente pode expor m +## Propriedades JVM ofuscação + +O agente Java envia propriedades da JVM para o New Relic para exibição na interface do usuário. A partir da versão `8.16.0` do agente Java, os valores da maioria das propriedades serão ofuscados. Por exemplo: `-Dprop=12345` agora será enviado como `-Dprop=obfuscated`. + +Defina opções relacionadas à ofuscação na seção `obfuscate_jvm_props` do YAML do agente. Você pode substituir essas configurações com uma [propriedade de sistema](/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file/#System_Properties) prefixada `newrelic.config.obfuscate_jvm_props` ou uma [variável de ambiente](/docs/apm/agents/java-agent/configuration/java-agent-configuration-config-file/#Environment_Variables) prefixada `NEW_RELIC_OBFUSCATE_JVM_PROPS_` . + +Por padrão, os valores das propriedades que começam com `-X` não serão ofuscados. + + + + + + + + + + + + + + + + + +
+ Tipo + + Boleano +
+ Padrão + + `true` +
+ + Usado para habilitar/desabilitar a ofuscação de propriedades da JVM. +
+ + + + + + + + + + + + + + + + +
+ Tipo + + Lista de strings +
+ Padrão + + (nenhum) +
+ + Se a ofuscação estiver habilitada, quando a chave de propriedade corresponder a um valor nesta lista, o valor não será ofuscado. + + Os itens nesta lista podem ter curingas, `*` como o último caractere. Conflitos com a lista de blocos são resolvidos seguindo [regras de atributo](/docs/apm/agents/java-agent/attributes/java-agent-attributes/#attruls), onde `allow` funciona como `include`. +
+ + + + + + + + + + + + + + + + +
+ Tipo + + Lista de strings +
+ Padrão + + (nenhum) +
+ + Se a ofuscação estiver habilitada, quando a chave de propriedade corresponder a um valor nesta lista, o valor será ofuscado. + + Os itens nesta lista podem ter curingas, `*` como o último caractere. Conflitos com a lista de permissões são resolvidos seguindo [regras de atributo](/docs/apm/agents/java-agent/attributes/java-agent-attributes/#attruls), onde `block` funciona como `exclude`. +
+
+ ## Kafka fila de mensagens [#kafka-message-queues] Informações detalhadas sobre a configuração da instrumentação Kafka podem ser encontradas na página [do instrumento Kafka fila de mensagens](/docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/) . -* \[Coleção de eventos Kafka(/docs/agente APM/java-instrumentação de agente/agente Java-instrumento-kafka-fila de mensagens/#collect-kafka-evento) +* [Coleção de eventos Kafka](/docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/#collect-kafka-events) * [Métrica do nó Kafka](/docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/#kafka-node-metrics) * [Evento de configuração do Kafka](/docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/#kafka-config) * [Kafka transmite transação](/docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/#collect-kafka-streams-transactions) diff --git a/src/i18n/content/pt/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx b/src/i18n/content/pt/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx index c12b40e43d2..65c962b6d14 100644 --- a/src/i18n/content/pt/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx +++ b/src/i18n/content/pt/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx @@ -268,19 +268,19 @@ O agente automaticamente utiliza estes frameworks e bibliotecas: * JMS de 1.1 até o mais recente - * Kafka Client Node métrica]\(/docs/agente/java-instrumentação de agente/agente Java-instrumento-kafka-fila de mensagens) 3.7.0 até o mais recente (para métrica) + * [Métrica do nó cliente Kafka](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 até a mais recente (para métrica) * [Métrica do cliente Kafka](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.10.0.0 até a mais recente (para métrica) - * [Kafka Client Spans](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 a 3.6.x (para distributed tracing) + * [Span de cliente Kafka](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 até o mais recente (para distributed tracing) - * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 a 3.6.x (para métrica) + * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 até o mais recente (para métrica) - * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 a 3.6.x (para distributed tracing e dados de transação) + * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 até o mais recente (para distributed tracing e dados de transação) - * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 a 3.6.x (para métrica) + * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 até o mais recente (para métrica) - * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 a 3.6.x (para distributed tracing e dados de transação) + * [Kafka Streams](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 2.0.0 até o mais recente (para distributed tracing e dados de transação) * OkHttp 3.6.0 até o mais recente diff --git a/src/i18n/content/pt/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx b/src/i18n/content/pt/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx index fd9fcbafa92..6806fe0e739 100644 --- a/src/i18n/content/pt/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx +++ b/src/i18n/content/pt/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx @@ -36,7 +36,11 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic - O agente .NET oferece suporte ao .NET Core versão 3.1 e .NET 5.0, 6.0 e 8.0. + O agente .NET é compatível com o .NET Core versão 3.1 e .NET 5.0, 6.0, 7.0, 8.0 e 9.0. + + + O agente só é totalmente suportado quando instrumentado aplicativo que tem como destino [os tempos de execução .NET atualmente suportados pela Microsoft](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core). É provável que o agente funcione com os tempos de execução EOL listados abaixo, mas não testamos novas versões do agente com tempos de execução EOL. + @@ -54,7 +58,7 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic + + + + + +
- .NET Core 3.1 + .NET Core 3.1 (EOL) @@ -64,7 +68,7 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic
- .NET 5.0 + .NET 5.0 (fim de vida útil) @@ -74,7 +78,7 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic
- .NET 6.0 + .NET 6.0 (fim de vida útil) @@ -84,7 +88,7 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic
- .NET 7.0 + .NET 7.0 (fim de vida útil) @@ -101,6 +105,16 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic 10.0.0 e superior
+ .NET 9.0 + + 10.0.0 e superior +
@@ -247,9 +261,9 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic
- O agente .NET suporta apenas aplicativos direcionados ao ..NET Core 3.1 e .NET 5.0, 6.0 e 8.0. Você pode encontrar o framework destino no seu arquivo `.csproj`. A compatibilidade do agente varia entre diferentes versões do .NET Core. + O agente .NET é compatível com aplicativos direcionados ao ..NET Core 3.1 e .NET 5.0, 6.0, 7.0, 8.0 e 9.0. Você pode encontrar o framework destino no seu arquivo `.csproj`. A compatibilidade do agente varia entre diferentes versões do .NET Core. - Suportado: + Compatível: ```xml netcoreapp3.1 @@ -271,16 +285,14 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic net8.0 ``` + ```xml + net9.0 + ``` + Na plataforma Linux ARM64, o agente .NET **only** suporta estrutura de destino de `net5.0` ou superior. - Não suportado: - - ```xml - net452 - ``` - Se você quiser monitor um aplicativo ASP..NET Core direcionado ao .NET Framework, certifique-se de ter habilitado o suporte ao .NET Framework após instalar o agente .NET.
@@ -293,7 +305,7 @@ Quer experimentar nosso agente .NET? [Crie uma conta New Relic](https://newrelic O agente .NET utiliza automaticamente esta estrutura de aplicativos: - * ASP..NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0 e 8.0 (inclui API Web) + * ASP..NET Core MVC 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 e 9.0 (inclui Web API) * ASP.NET Core Razor páginas 6.0, 7.0 e 8.0 (começando com o agente .NET versão 10.19.0) diff --git a/src/i18n/content/pt/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx b/src/i18n/content/pt/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx index ea6d47156f5..b6b2c69fe50 100644 --- a/src/i18n/content/pt/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx +++ b/src/i18n/content/pt/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx @@ -251,7 +251,7 @@ Após a instalação, o agente automaticamente instrumento com nosso catálogo d **Nota**: A versão suportada mais recente pode não refletir a versão suportada mais recente. -| Nome do pacote | Versão mínima suportada | Última versão suportada | Introduzido em\* | | --- | --- | --- | --- | | `@apollo/gateway` | 2.3.0 | 2.9.3 | `@newrelic/apollo-server-plugin@1.0.0` | | `@apollo/server` | 4.0.0 | 4.11.2 | `@newrelic/apollo-server-plugin@2.1.0` | | `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.687.0 | 11.13.0 | | `@aws-sdk/client-dynamodb` | 3.0.0 | 3.687.0 | 8.7.1 | | `@aws-sdk/client-sns` | 3.0.0 | 3.687.0 | 8.7.1 | | `@aws-sdk/client-sqs` | 3.0.0 | 3.689.0 | 8.7.1 | | `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.689.0 | 8.7.1 | | `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 | | `@elastic/elasticsearch` | 7.16.0 | 8.15.2 | 11.9.0 | | `@grpc/grpc-js` | 1.4.0 | 1.12.2 | 8.17.0 | | `@hapi/hapi` | 20.1.2 | 21.3.12 | 9.0.0 | | `@koa/router` | 11.0.2 | 13.1.0 | 3.2.0 | | `@langchain/core` | 0.1.17 | 0.3.18 | 11.13.0 | | `@nestjs/cli` | 9.0.0 | 10.4.7 | 10.1.0 | | `@prisma/client` | 5.0.0 | 5.22.0 | 11.0.0 | | `@smithy/smithy-client` | 2.0.0 | 3.4.2 | 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.1692.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 | | `connect` | 3.0.0 | 3.7.0 | 2.6.0 | | `express` | 4.6.0 | 4.21.1 | 2.6.0 | | `fastify` | 2.0.0 | 5.1.0 | 8.5.0 | | `generic-pool` | 3.0.0 | 3.9.0 | 0.9.0 | | `ioredis` | 4.0.0 | 5.4.1 | 1.26.2 | | `kafkajs` | 2.0.0 | 2.2.4 | 11.19.0 | | `koa` | 2.0.0 | 2.15.3 | 3.2.0 | | `koa-route` | 3.0.0 | 4.0.1 | 3.2.0 | | `koa-router` | 11.0.2 | 13.0.1 | 3.2.0 | | `memcached` | 2.2.0 | 2.2.2 | 1.26.2 | | `mongodb` | 4.1.4 | 6.10.0 | 1.32.0 | | `mysql` | 2.2.0 | 2.18.1 | 1.32.0 | | `mysql2` | 2.0.0 | 3.11.4 | 1.32.0 | | `next` | 13.4.19 | 15.0.3 | 12.0.0 | | `openai` | 4.0.0 | 4.72.0 | 11.13.0 | | `pg` | 8.2.0 | 8.13.1 | 9.0.0 | | `pg-native` | 3.0.0 | 3.2.0 | 9.0.0 | | `pino` | 7.0.0 | 9.5.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.1.1 | 4.9.0 | | `undici` | 5.0.0 | 6.20.1 | 11.1.0 | | `when` | 3.7.0 | 3.7.8 | 1.26.2 | | `winston` | 3.0.0 | 3.17.0 | 8.11.0 | +| Nome do pacote | Versão mínima suportada | Última versão suportada | Introduzido em\* | | --- | --- | --- | --- | | `@apollo/gateway` | 2.3.0 | 2.9.3 | `@newrelic/apollo-server-plugin@1.0.0` | | `@apollo/server` | 4.0.0 | 4.11.2 | `@newrelic/apollo-server-plugin@2.1.0` | | `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.691.0 | 11.13.0 | | `@aws-sdk/client-dynamodb` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/client-sns` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/client-sqs` | 3.0.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.691.0 | 8.7.1 | | `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 | | `@elastic/elasticsearch` | 7.16.0 | 8.16.0 | 11.9.0 | | `@grpc/grpc-js` | 1.4.0 | 1.12.2 | 8.17.0 | | `@hapi/hapi` | 20.1.2 | 21.3.12 | 9.0.0 | | `@koa/router` | 11.0.2 | 13.1.0 | 3.2.0 | | `@langchain/core` | 0.1.17 | 0.3.18 | 11.13.0 | | `@nestjs/cli` | 9.0.0 | 10.4.7 | 10.1.0 | | `@prisma/client` | 5.0.0 | 5.22.0 | 11.0.0 | | `@smithy/smithy-client` | 2.0.0 | 3.4.3 | 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.1692.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 | | `connect` | 3.0.0 | 3.7.0 | 2.6.0 | | `express` | 4.6.0 | 4.21.1 | 2.6.0 | | `fastify` | 2.0.0 | 5.1.0 | 8.5.0 | | `generic-pool` | 3.0.0 | 3.9.0 | 0.9.0 | | `ioredis` | 4.0.0 | 5.4.1 | 1.26.2 | | `kafkajs` | 2.0.0 | 2.2.4 | 11.19.0 | | `koa` | 2.0.0 | 2.15.3 | 3.2.0 | | `koa-route` | 3.0.0 | 4.0.1 | 3.2.0 | | `koa-router` | 11.0.2 | 13.0.1 | 3.2.0 | | `memcached` | 2.2.0 | 2.2.2 | 1.26.2 | | `mongodb` | 4.1.4 | 6.10.0 | 1.32.0 | | `mysql` | 2.2.0 | 2.18.1 | 1.32.0 | | `mysql2` | 2.0.0 | 3.11.4 | 1.32.0 | | `next` | 13.4.19 | 15.0.3 | 12.0.0 | | `openai` | 4.0.0 | 4.72.0 | 11.13.0 | | `pg` | 8.2.0 | 8.13.1 | 9.0.0 | | `pg-native` | 3.0.0 | 3.2.0 | 9.0.0 | | `pino` | 7.0.0 | 9.5.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.1.1 | 4.9.0 | | `undici` | 5.0.0 | 6.21.0 | 11.1.0 | | `when` | 3.7.0 | 3.7.8 | 1.26.2 | | `winston` | 3.0.0 | 3.17.0 | 8.11.0 | \*Quando o pacote não é especificado, o suporte está dentro do pacote `newrelic` . diff --git a/src/i18n/content/pt/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx b/src/i18n/content/pt/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx index 19086e2dafe..86f69fedd55 100644 --- a/src/i18n/content/pt/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx +++ b/src/i18n/content/pt/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page.mdx @@ -123,5 +123,5 @@ Os seguintes atributos são necessários na entidade de serviço APM para exibir A página de resumo do Kubernetes não funcionará corretamente se houver uma mistura de diferentes provedores de instrumentação (New Relic e OpenTelemetry). Para que funcione corretamente, tanto Kubernetes quanto APM precisam ser monitorados exclusivamente pelo agente proprietário do New Relic ou inteiramente pelo OpenTelemetry. - Não oferecemos suporte a cenários híbridos. + **O suporte para a configuração de diferentes provedores de instrumentação é esperado para o primeiro trimestre de 2025.** \ No newline at end of file diff --git a/src/i18n/content/pt/docs/infrastructure/infrastructure-data/default-infra-data.mdx b/src/i18n/content/pt/docs/infrastructure/infrastructure-data/default-infra-data.mdx index 0628f384f8e..f0dc8b2a4b0 100644 --- a/src/i18n/content/pt/docs/infrastructure/infrastructure-data/default-infra-data.mdx +++ b/src/i18n/content/pt/docs/infrastructure/infrastructure-data/default-infra-data.mdx @@ -114,6 +114,25 @@ Selecione um nome de evento na tabela a seguir para ver seu atributo. `NetworkSample` captura as informações descritivas e de estado de cada dispositivo de rede associado a um servidor. Inclui a interface do dispositivo e informações de endereço, bem como dados de uso atuais. Tiramos um snapshot desses dados a cada 10 segundos para cada interface de rede conectada e os empacotamos em um evento `NetworkSample` , que é então enviado para a New Relic. Esses dados aparecem na [página de interface**Network** ](/docs/infrastructure/infrastructure-ui-pages/infra-hosts-ui-page#network). + + + Nem todos os dispositivos de rede serão incluídos por padrão. Os filtros na tabela a seguir não gerarão `NetworkSample` para as interfaces correspondentes, a menos que o atributo de configuração [network-inferface-filters](/docs/infrastructure/install-infrastructure-agent/configuration/infrastructure-agent-configuration-settings/#network-interface-filters) seja modificado. + + + + + Filtros de interface de rede padrão para Linux: + + * Interfaces de rede que começam com `dummy`, `lo`, `vmnet`, `sit`, `tun`, `tap` ou `veth` + * Interfaces de rede que contêm `tun` ou `tap` + + + + Filtros de interface de rede padrão para Windows: + + * Interfaces de rede que começam com `Loop`, `isatap` ou `Local` + + diff --git a/src/i18n/content/pt/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/i18n/content/pt/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index 685f2a3469a..362bbe01a2a 100644 --- a/src/i18n/content/pt/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/i18n/content/pt/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -12,7 +12,7 @@ translationType: machine O auto-attach Kubernetes APM , anteriormente conhecido como operador do agente Kubernetes , agiliza a observabilidade full-stack para ambientes Kubernetes , automatizando a instrumentação APM junto com a implantação do agente Kubernetes . Ao ativar a instrumentação automática, os desenvolvedores não precisam mais gerenciar manualmente [o agente APM](/docs/apm/new-relic-apm/getting-started/introduction-apm/). O Kubernetes APM auto-attach instalará, atualizará e removerá automaticamente o agente APM. -Atualmente [suporta](#k8s-supported-versions) Java, .NET, Node.js, Python e Ruby com linguagens adicionais (PHP e Go) a caminho. +Atualmente [ele suporta](#k8s-supported-versions) Java, .NET, Node.js, Python, Ruby e PHP. ## Como funciona [#how-it-works] @@ -255,6 +255,20 @@ Você precisa especificar o agente APM e sua versão no CR de instrumentação. [Ruby](https://hub.docker.com/repository/docker/newrelic/newrelic-ruby-init/general) + + + + php + + + + `newrelic-php-init:latest` + + + + [PHP](https://hub.docker.com/repository/docker/newrelic/newrelic-php-init/general) + + @@ -292,6 +306,7 @@ No exemplo acima, mostramos como você pode configurar as configurações do age * [Python](/docs/apm/agents/python-agent/configuration/python-agent-configuration/) * [.NET](/docs/apm/agents/net-agent/configuration/net-agent-configuration/) * [Ruby](/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/) +* [PHP](/docs/apm/agents/php-agent/configuration/php-agent-configuration/) Você pode injetar essas variáveis de ambiente no manifesto de implantação do aplicativo. @@ -373,7 +388,7 @@ Ao instalá-lo, um é criado e é a licença namespace: newrelic spec: agent: - language: java + language: ruby image: newrelic/newrelic-ruby-init:latest namespaceLabelSelector: matchExpressions: @@ -484,6 +499,7 @@ helm search repo k8s-agents-operator * [Python](/docs/apm/agents/python-agent/custom-instrumentation/python-custom-instrumentation/) * [.NET](/docs/apm/agents/net-agent/custom-instrumentation/introduction-net-custom-instrumentation/) * [Ruby](/docs/apm/agents/ruby-agent/api-guides/ruby-custom-instrumentation/) + * [PHP](/docs/apm/agents/php-agent/features/php-custom-instrumentation/) @@ -539,7 +555,7 @@ A partir da versão 0.14, as anotações no manifesto de implantação do aplica ## Apoiar [#support] -O Kubernetes APM auto-attach atualmente oferece suporte à versão mais recente destes agentes APM: Java, .NET, Node.js, Python e Ruby. +O Kubernetes APM auto-attach atualmente oferece suporte à versão mais recente destes agentes APM: Java, .NET, Node.js, Python, Ruby e PHP. Quando estiver disponível para o público em geral, as 3 versões mais recentes de cada um dos agentes APM serão suportadas. From 663354fe89925c198d7aa31a89b8b5d64666a608 Mon Sep 17 00:00:00 2001 From: Gaurab Manandhar Date: Tue, 19 Nov 2024 18:28:43 +0530 Subject: [PATCH 14/30] fix: Remove ~ symbol --- .../getting-started/compatibility-requirements-java-agent.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx b/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx index 8faf32aab08..606f679a401 100644 --- a/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx +++ b/src/i18n/content/kr/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent.mdx @@ -272,7 +272,7 @@ Java 에이전트를 설치하기 전에 시스템이 다음 요구 사항을 * [Kafka 클라이언트 지표](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.10.0.0부터 최신 버전까지(지수용) - * [Kafka 클라이언트 스팬](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 ~ 최신 (for future 추적) + * [Kafka 클라이언트 스팬](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 0.11.0.0 최신 (for future 추적) * [Kafka Connect](/docs/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues) 1.0.0 - 최신 버전(메트릭용) From 3a24da763a06bc741938f009d133a6f8ed63ed21 Mon Sep 17 00:00:00 2001 From: newrelic-ruby-agent-bot Date: Tue, 19 Nov 2024 22:41:12 +0000 Subject: [PATCH 15/30] chore(ruby agent): Update config docs --- .../ruby-agent-configuration.mdx | 302 ++++++++++++++++-- 1 file changed, 277 insertions(+), 25 deletions(-) diff --git a/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx b/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx index ce9ff1b75c9..8547a849e4d 100644 --- a/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx +++ b/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx @@ -196,7 +196,7 @@ These settings are available for agent configuration. Some settings depend on yo - Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic's data collection service. + Manual override for the path to your local CA bundle. This CA bundle validates the SSL certificate presented by New Relic's data collection service. @@ -953,6 +953,30 @@ Valid values (ordered lowest to highest): A hash with key/value pairs to add as custom attributes to all log events forwarded to New Relic. If sending using an environment variable, the value must be formatted like: "key1=value1,key2=value2" + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_ENABLED`
+ + If `true`, the agent attaches [labels](https://docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/#labels) to log records. +
+ + + + + + + + +
TypeArray
Default`[]`
Environ variable`NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_EXCLUDE`
+ + A case-insensitive array or comma-delimited string containing the labels to exclude from log records. +
+ @@ -2009,6 +2033,18 @@ Use these settings to toggle instrumentation types during agent startup. Controls auto-instrumentation of bunny at start-up. May be one of: `auto`, `prepend`, `chain`, `disabled`. + +
+ + + + + +
TypeString
Default`auto`
Environ variable`NEW_RELIC_INSTRUMENTATION_AWS_SDK_LAMBDA`
+ + Controls auto-instrumentation of the aws_sdk_lambda library at start-up. May be one of `auto`, `prepend`, `chain`, `disabled`. +
+ @@ -2686,7 +2722,7 @@ Use these settings to toggle instrumentation types during agent startup.
- If `true`, the security agent is loaded (a Ruby 'require' is performed) + If `true`, the security agent is loaded (the agent performs a Ruby 'require')
@@ -2725,64 +2761,280 @@ Use these settings to toggle instrumentation types during agent startup. Defines the endpoint URL for posting security-related data - + + + + + + + +
TypeInteger
Default`nil`
Environ variable`NEW_RELIC_SECURITY_APPLICATION_INFO_PORT`
+ + The port the application is listening on. This setting is mandatory for Passenger servers. The agent detects other servers by default. +
+ + + + + + + + +
TypeArray
Default`[]`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_API`
+ + Defines API paths the security agent should ignore in IAST scans. Accepts an array of regex patterns matching the URI to ignore. The regex pattern should find a complete match for the URL without the endpoint. For example, `[".*account.*"], [".*/\api\/v1\/.*?\/login"]` +
+ + + + + + + + +
TypeArray
Default`[]`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_HTTP_REQUEST_PARAMETERS_HEADER`
+ + An array of HTTP request headers the security agent should ignore in IAST scans. The array should specify a list of patterns matching the headers to ignore. +
+ + + + + + + + +
TypeArray
Default`[]`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_HTTP_REQUEST_PARAMETERS_QUERY`
+ + An array of HTTP request query parameters the security agent should ignore in IAST scans. The array should specify a list of patterns matching the HTTP request query parameters to ignore. +
+ + + + + + + + +
TypeArray
Default`[]`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_HTTP_REQUEST_PARAMETERS_BODY`
+ + An array of HTTP request body keys the security agent should ignore in IAST scans. +
+ + - - + +
TypeBoolean
Default`true`
Environ variable`NEW_RELIC_SECURITY_DETECTION_RCI_ENABLED`
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_INSECURE_SETTINGS`
- If `true`, enables RCI (remote code injection) detection + If `true`, disables the detection of low-severity insecure settings. For example, hash, crypto, cookie, random generators, trust boundary).
- + - - + +
TypeBoolean
Default`true`
Environ variable`NEW_RELIC_SECURITY_DETECTION_RXSS_ENABLED`
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_INVALID_FILE_ACCESS`
- If `true`, enables RXSS (reflected cross-site scripting) detection + If `true`, disables file operation-related IAST detections (File Access & Application integrity violation)
- + - - + +
TypeBoolean
Default`true`
Environ variable`NEW_RELIC_SECURITY_DETECTION_DESERIALIZATION_ENABLED`
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_SQL_INJECTION`
- If `true`, enables deserialization detection + If `true`, disables SQL injection detection in IAST scans.
- + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_NOSQL_INJECTION`
+ + If `true`, disables NOSQL injection detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_LDAP_INJECTION`
+ + If `true`, disables LDAP injection detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_JAVASCRIPT_INJECTION`
+ + If `true`, disables Javascript injection detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_COMMAND_INJECTION`
+ + If `true`, disables system command injection detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_XPATH_INJECTION`
+ + If `true`, disables XPATH injection detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_SSRF`
+ + If `true`, disables Sever-Side Request Forgery (SSRF) detection in IAST scans. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_EXCLUDE_FROM_IAST_SCAN_IAST_DETECTION_CATEGORY_RXSS`
+ + If `true`, disables Reflected Cross-Site Scripting (RXSS) detection in IAST scans. +
+ + - - + +
TypeInteger
Default`nil`
Environ variable`NEW_RELIC_SECURITY_APPLICATION_INFO_PORT`
Default`0`
Environ variable`NEW_RELIC_SECURITY_SCAN_SCHEDULE_DELAY`
- The port the application is listening on. This setting is mandatory for Passenger servers. Other servers should be detected by default. + Specifies the delay time (in minutes) before the IAST scan begins after the application starts.
- + - - + +
TypeInteger
Default`300`
Environ variable`NEW_RELIC_SECURITY_REQUEST_BODY_LIMIT`
Default`0`
Environ variable`NEW_RELIC_SECURITY_SCAN_SCHEDULE_DURATION`
- Defines the request body limit to process in security events (in KB). The default value is 300, for 300KB. + Specifies the length of time (in minutes) that the IAST scan will run. +
+ + + + + + + + +
TypeString
Default`""`
Environ variable`NEW_RELIC_SECURITY_SCAN_SCHEDULE_SCHEDULE`
+ + Specifies a cron expression that sets when the IAST scan should run. +
+ + + + + + + + +
TypeBoolean
Default`false`
Environ variable`NEW_RELIC_SECURITY_SCAN_SCHEDULE_ALWAYS_SAMPLE_TRACES`
+ + If `true`, allows IAST to continuously gather trace data in the background. Collected data will be used by the security agent to perform an IAST scan at the scheduled time. +
+ + + + + + + + +
TypeInteger
Default`3600`
Environ variable`NEW_RELIC_SECURITY_SCAN_CONTROLLERS_IAST_SCAN_REQUEST_RATE_LIMIT`
+ + Sets the maximum number of HTTP requests allowed for the IAST scan per minute. Any Integer between 12 and 3600 is valid. The default value is 3600. +
+ + + + + + + + +
TypeInteger
Default`0`
Environ variable`NEW_RELIC_SECURITY_SCAN_CONTROLLERS_SCAN_INSTANCE_COUNT`
+ + The number of application instances for a specific entity to perform IAST analysis on. +
+ + + + + + + + +
TypeBoolean
Default`true`
Environ variable`NEW_RELIC_SECURITY_SCAN_CONTROLLERS_REPORT_HTTP_RESPONSE_BODY`
+ + If `true`, enables the sending of HTTP responses bodies. Disabling this also disables Reflected Cross-Site Scripting (RXSS) vulnerability detection. +
+ + + + + + + + +
TypeString
Default`nil`
Environ variable`NEW_RELIC_SECURITY_IAST_TEST_IDENTIFIER`
+ + A unique test identifier when runnning IAST in a CI/CD environment to differentiate between different test runs. For example, a build number.
@@ -3018,8 +3270,8 @@ permit advanced matching. Setting the value to `["."]` will report all `user_dat An array of strings to specify which keys and/or values inside a Stripe event's `user_data` hash should not be reported to New Relic. Each string in this array will be turned into a regular expression via `Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the -pair will not be reported. By default, no `user_data` is reported, so this option should only be used if -the `stripe.user_data.include` option is being used. +pair will not be reported. By default, no `user_data` is reported. Use this option only if the +`stripe.user_data.include` option is also used.
@@ -3123,4 +3375,4 @@ the `stripe.user_data.include` option is being used. If `true`, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment.
- + \ No newline at end of file From fb499d09b57d5e232d4fbdc5f7c65efdf4728473 Mon Sep 17 00:00:00 2001 From: newrelic-ruby-agent-bot Date: Tue, 19 Nov 2024 23:49:06 +0000 Subject: [PATCH 16/30] chore(ruby agent): add release notes --- .../ruby-release-notes/ruby-agent-9-16-0.mdx | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx diff --git a/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx new file mode 100644 index 00000000000..de72da9c985 --- /dev/null +++ b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx @@ -0,0 +1,37 @@ +--- +subject: Ruby agent +releaseDate: '2024-11-19' +version: 9.16.0 +downloadLink: https://rubygems.org/downloads/newrelic_rpm-9.16.0.gem +features: ["Instrumentation for aws-sdk-lambda", "Add new configuration options to attach custom tags (labels) to logs", "Update View Component instrumentation+"] +bugs: ["Record explain plan traces on Rails 7.2+"] +security: [] +--- + + + We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about [keeping agents up to date](/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/). + + See the New Relic Ruby agent [EOL policy](https://docs.newrelic.com/docs/apm/agents/ruby-agent/getting-started/ruby-agent-eol-policy/) for information about agent releases and support dates. + + +## v9.16.0 + +Version 9.16.0 introduces instrumentation for the aws-sdk-lambda gem, allows users to opt-in to adding labels to logs, updates View Component instrumentation, and fixes a bug with explain plans on Rails 7.2+. + +- **Feature: Instrumentation for aws-sdk-lambda** + + If the aws-sdk-lambda gem is present and used to invoke remote AWS Lambda functions, timing and error details for the invocations will be reported to New Relic. [PR#2926](https://github.com/newrelic/newrelic-ruby-agent/pull/2926). + +- **Feature: Add new configuration options to attach custom tags (labels) to logs** + + The Ruby agent now allows you to opt-in to adding your custom tags (labels) to agent-forwarded logs. With custom tags on logs, platform engineers can easily filter, search, and correlate log data for faster and more efficient troubleshooting, improved performance, and optimized resource utilization. [PR#2925](https://github.com/newrelic/newrelic-ruby-agent/pull/2925) + +- **Feature: Update View Component instrumentation+** + + The `.identifier` method will be formally exposed as part of the View Component public API. The agent will now use this method for building metric names when available, ensuring ongoing compatibility with all View Component versions. [PR#2956](https://github.com/newrelic/newrelic-ruby-agent/pull/2956) + +- **Bugfix: Record explain plan traces on Rails 7.2+** + + Rails 7.2 removed adapter-specific connection methods (ex. `ActiveRecord::Base.postgresql_connection`) and replaced them with `ActiveRecord::Base.with_connection`. Our explain plan feature relies on making a connection to the database to create an explain plan trace. Due to a bug in our tests, we missed this regression. Now, the agent uses the new method to fetch explain plans on Rails 7.2+. Thank you, [@gsar](https://github.com/gsar) and [@gstark](https://github.com/gstark) for bringing this to our attention! [Issue#2922](https://github.com/newrelic/newrelic-ruby-agent/issues/2922) [PR#2940](https://github.com/newrelic/newrelic-ruby-agent/pull/2940) + + From 61a54f9c2a23c74fc06690c9f8bc60592f87f6a2 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 08:27:58 +0530 Subject: [PATCH 17/30] Cloned the PR from https://github.com/newrelic/docs-website/pull/19239 --- .../postgresql/postgresql-integration.mdx | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/content/docs/infrastructure/host-integrations/host-integrations-list/postgresql/postgresql-integration.mdx b/src/content/docs/infrastructure/host-integrations/host-integrations-list/postgresql/postgresql-integration.mdx index b4e47c7779c..20979dc8cc7 100644 --- a/src/content/docs/infrastructure/host-integrations/host-integrations-list/postgresql/postgresql-integration.mdx +++ b/src/content/docs/infrastructure/host-integrations/host-integrations-list/postgresql/postgresql-integration.mdx @@ -32,7 +32,7 @@ To install the PostgreSQL monitoring integration, you must run through the follo ### PostgreSQL versions [#postgresql-versions] -Our integration is compatible with PostgreSQL until version 16. +Our integration is compatible with PostgreSQL v17 and lower. ### Supported managed services [#supported-ms] @@ -724,6 +724,10 @@ The PostgreSQL integration collects the following metrics. Some metric names are id="instanceSample" title="PostgresqlInstanceSample metrics" > + + + With PostgreSQL v17, we renamed some metrics to better reflect their source tables. You can see the updated names indented below their earlier versions. + @@ -740,7 +744,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.checkpointsScheduledPerSecond` + `bgwriter.checkpointsScheduledPerSecond`
+ ↳ `checkpointer.checkpointsScheduledPerSecond`
@@ -750,7 +755,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.checkpointsRequestedPerSecond` + `bgwriter.checkpointsRequestedPerSecond`
+ ↳ `checkpointer.checkpointsRequestedPerSecond`
@@ -760,7 +766,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.buffersWrittenForCheckpointsPerSecond` + `bgwriter.buffersWrittenForCheckpointsPerSecond`
+ ↳ `checkpointer.buffersWrittenForCheckpointsPerSecond`
@@ -790,7 +797,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.buffersWrittenByBackendPerSecond` + `bgwriter.buffersWrittenByBackendPerSecond`
+ ↳ `io.buffersWrittenByBackendPerSecond`
@@ -810,7 +818,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.backendFsyncCallsPerSecond` + `bgwriter.backendFsyncCallsPerSecond`
+ ↳ `io.backendFsyncCallsPerSecond`
@@ -820,7 +829,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.checkpointWriteTimeInMillisecondsPerSecond` + `bgwriter.checkpointWriteTimeInMillisecondsPerSecond`
+ ↳ `checkpointer.checkpointWriteTimeInMillisecondsPerSecond`
@@ -830,7 +840,8 @@ The PostgreSQL integration collects the following metrics. Some metric names are
- `bgwriter.checkpointSyncTimeInMillisecondsPerSecond` + `bgwriter.checkpointSyncTimeInMillisecondsPerSecond`
+ ↳ `checkpointer.checkpointSyncTimeInMillisecondsPerSecond`
From 10a9ced04127cfaa045970ecb991c584bbfbed51 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 09:06:50 +0530 Subject: [PATCH 18/30] Updated the documents --- .../docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx | 2 +- src/nav/logs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx b/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx index 061ce88bda4..7bcc520c738 100644 --- a/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx +++ b/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx @@ -25,7 +25,7 @@ When enabled, New Relic language agents add all custom tags (labels) to agent-fo Supported languages: * [.NET](/docs/apm/agents/net-agent/configuration/net-agent-configuration) agent versions 10.4.0 or higher. -* [Ruby](/docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/#application-logging)agent versions 9.16.0 or higher. +* [Ruby](/docs.newrelic.com/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration/) agent versions 9.16.0 or higher. * Go: coming soon * Java: coming soon * Node.js: coming soon \ No newline at end of file diff --git a/src/nav/logs.yml b/src/nav/logs.yml index c35775cb6ac..ff44a133533 100644 --- a/src/nav/logs.yml +++ b/src/nav/logs.yml @@ -64,7 +64,7 @@ pages: path: /docs/logs/logs-context/logs-in-context - title: APM logs in context path: /docs/logs/logs-context/get-started-logs-context - - title: Custom tags to application logs + - title: Custom tags for application logs path: /docs/logs/logs-context/custom-tags-agent-forwarder-logs - title: Manage or disable APM logs path: /docs/logs/logs-context/disable-automatic-logging From 28771e01a01a5de170a81023f47dba9f0d9edd60 Mon Sep 17 00:00:00 2001 From: WriteMayur Date: Wed, 20 Nov 2024 09:19:41 +0530 Subject: [PATCH 19/30] Revert "docs-website for github integration" --- .../github-integration.mdx | 74 ------------------ src/nav/infrastructure.yml | 2 - .../images/github-integration-progress.webp | Bin 28220 -> 0 bytes .../images/github-integration-screenshot.webp | Bin 63686 -> 0 bytes static/images/github-integration-success.webp | Bin 48958 -> 0 bytes 5 files changed, 76 deletions(-) delete mode 100644 src/content/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx delete mode 100644 static/images/github-integration-progress.webp delete mode 100644 static/images/github-integration-screenshot.webp delete mode 100644 static/images/github-integration-success.webp diff --git a/src/content/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx b/src/content/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx deleted file mode 100644 index b02336bd4cb..00000000000 --- a/src/content/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Seamlessly adopt New Relic Service catalog with the GitHub integration -tags: - - New Relic integrations - - GitHub integration -metaDescription: Set up automatic ingestion of your GitHub Dependabot events by using webhook for ongoing ingestion. -freshnessValidatedDate: 2024-10-29 ---- - - -Implementing a New Relic Service Catalog can unlock considerable benefits, but it requires considerable time and resources. You have to take care of team orchestration, user provisioning, role assignments, and entity ownership delineation. These create a significant threshold for entry. To ease this challenge, consider an automation solution that capitalizes on existing team configurations and relationships maintained in external systems such as GitHub. This simplifies the initial configuration and accelerates the adoption of the New Relic Service Catalog. - -GitHub Integration dashboard - -
-After setting up our GitHub integration, see your data of teams, repos and users right out of the box. -
- -## Prerequisites [#prerequisites] - -Users need to ensure that they're logged in to their GitHub accounts. This needs to be the same GitHub account in which they want to install the GitHub app that New Relic will be providing during installation step. - - -## Set up the GitHub integration [#set-up-github] - -Vist **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > + Integrations & Agents** > GitHub integration tile and follow the below steps to complete the GitHub integration. - - - - -## Service Catalog Details [#service-catalog-details] - -In this step, you have to enable or disable the Power Service catalog option. This option provides users the ability to import all data related to teams, repositories, pull requests, pull request reviews, and deployments. - -Users can enable it for importing all the items mentioned in the Power Service Catalog. Disabling it, users will only be able to import basic information about the teams and repositories. - - - - -## GitHub Integration [#github-integration] - -GitHub Integration dashboard - -Next, click Install. The GitHub App installation page loads. New Relic provides this app to fetch the GitHub account information of a user. - -Once the installation is complete, we will see the result page which will dynamically list down the retrieved GitHub data related to teams, repos, pull requests and deployments. It will take some time to fetch the complete inforamtion, hence the page will keep refreshing after every 10 seconds till we've the power service catalog ready. - -The result obtained will look like the below: - -| Category | Content | -| --- | --- | -| Teams | List of teams within the GitHub organization | -| Repositories | List of repositories owned by the GitHub account | -| Pull Requests | List of open and closed pull requests | -| Deployments | List of deployment events | - -These list items will be clickable links that will open up new tabs with more information like this below: -GitHub Integration dashboard - - - -To learn more about installing GitHub apps to your account, you can visit this site https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations \ No newline at end of file diff --git a/src/nav/infrastructure.yml b/src/nav/infrastructure.yml index 79ac64c321d..5d6151b0f28 100644 --- a/src/nav/infrastructure.yml +++ b/src/nav/infrastructure.yml @@ -167,8 +167,6 @@ pages: path: /docs/infrastructure/host-integrations/host-integrations-list/envoy-integration - title: F5 integration path: /install/f5 - - title: GitHub Integration - path: /docs/infrastructure/host-integrations/host-integrations-list - title: HAProxy integration path: /install/haproxy - title: HashiCorp Consul integration diff --git a/static/images/github-integration-progress.webp b/static/images/github-integration-progress.webp deleted file mode 100644 index e0c7444918e6b9b41a513adfb6692b79a40e5721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28220 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 diff --git a/static/images/github-integration-screenshot.webp b/static/images/github-integration-screenshot.webp deleted file mode 100644 index 3cf0d5b6b5367dd9d2facd1a292f590e988b5aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63686 zcmd?Q^Ot1X6FpeAZQEv-)n(guRhMlWUAAr8wr$(y^n354nKj=vf57C*%#}BPI44#_ zoQS=5+^ZliD%$k|0H7)&D5oOFp#}v20D$o4a}Nq&0t_G^CHK<<5C8zsMK9L+U<1E* zaYu=lXzzz~J&do?`dZ!L9vx_fue8?{=Fc7?KvIHXe85ag(BpERu zbY3}SooyX?ZDMCvdw98(yN8SlEMm*pYu}^IdEKdB+cdc&0sM&y0nRf3zzhjUCLq-V zs3|aS+|O*u!UCead}d7k8YD*L#t%rDt4pU-I(-I{K%FTn0VcdCcZFQJ+2tLsX>0@*vC z?@qt(PIp0{+wVWGUE=5Rm4K<3@8NpBH~P=7-t3m`@9z%}U!U)%jW59O?<(EW?_ItD z?@1q>m-X%8jqhIXGoP@}tEZUT>*R0n&;Ae7&+Myiyl#^3>@VP<>`L$Z@0gF6Qv3<; zOYish>euPjX|wNzZ}Sh62eEs;`R^5<$d8m)(2w@l?sxp_?e6Vo9<`^`Grmi{`|t8^ z!YjnH8B@8M7IqwhxBneMsomv8eM^pE%V=ZoiKzG?h# z+xKr^ACK=#pOqJ%&z|o$TE)`U3U^csGgbfmCFHjGz6BY~8#<9Yt%!qG^ig~I_yb+i zkuJ$N&t#(4|Ht3U%Ax&UzRGe!>ckA=<7oYm4x}PXz_uW#k3xo7>*|2o-Hnmzo&Aw$ z(?0<@5cQ$bqed{>N%2g3{=XLfYrpy6W~ILPG15(}b1+Zn|F`Y`?^d;oEdTcGNs%7; zuvOMgIRfdk5!-h!`xs^*L$>F`UQ|8e^kYbmd)X@MW}JWw+=v-^RDO-tlOj9tX8)

6v%5=F_YR8s7@ScCg`6ce>I zP+K|+7;@Qky<|knWl!%=U{iTrhy`qfvB`H3f+mgS+K4Oa|JgsA*!`x=WVg-Shm5V} z$3URTn3vf})iu<80$+eeZYc_>ak4&;(cnifL7X0+N%)!q$lRd5n<`92a)jd<)$0{4%%%Bm+Efb`jk zZ#$K}4O5UITk)gL%I|UhcD>EPfGZv_D$FKfeK;6h%=akQ5fh^6m^31Rd&Vphc_}IrjToTJ%%?_T02#dsy-n z@K9$_olg0DaIuJi*nR#nfENis47k9CqE6z=pK(ZdJMax3=-@omLn$m6G6hbEwEMb0 zWkQVZWLb^(+|g0jXdki(I`KbF`IC>y6FH}e0gCY4C32*UE!?#Q%|Zpi`KP2ucb_nzQ$vr3L}z`f8)Dt?XUPZ@Ias{}22rAbc*RE3`$XQRYy^5wJ$Ee;|B3RplV zqE}3q7ass?UI=ulEKQYMDon4=He*#=zOaNy^wiLk5;7&I`Ye#5OInn%*q*uU_lOaY z8iO#s9eyBzg5|}3v&>0Q#HUY01uIs;-6L0WKdA@>1OOIuiv&I~XkfVsH>0Ip%8hr{ z86mQ-2O|5+6f6}+wY;f>OTm*S%AXQvc$60I3t%%R%

    X@M9Spa$T##6Us9?D|@T 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%0A}yv-XZuh?_v+1yHQz%k>Vx& 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 _)SZx1#LYK4l8#r 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 R{MWPjdsOX8n0o-g{{n`lb?*QG diff --git a/static/images/github-integration-success.webp b/static/images/github-integration-success.webp deleted file mode 100644 index fde6b34780b3db3831390fccf4d54bc8505c3265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48958 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≫hlBA2kq(){?0>ZdDSmsU4aMSeaIt+;CHrWA0IM@?tEiS(q}( z6h*ydR9sEhhKakoyEYnJgS%S@+PDUHx8M-m-7TRB?h+tCaCZqV!QJOP@3&^=7mG#H zr@VIU`?~9hrz+FcyJjjcqd$LJb#!(X*B)Q{6*|fhh@sREa;{H(iYb@wA`^Ed6_i5B z`T%O#PO}|psu&QJ7^%wG-K9Ai{FbL}cW)4AqpAiKoQEenp@mhBveeJmt<@WUQsaPFb%MbaKfbe$ea$5&_9 z>}#LR2zswlTWMmKlK;>RwvGaoNX6MrSj;z2EH;`NwOfJwBl@q-5#8sS3GEs zgyMQceusRWSUYU)y@!`ayMulx8sxpw+vw_n0luV6twBba8_@AIYtfU;>2t5V;6W`< zeYRUh)$~FC#JP^r*<|d9qk~%Y7J|GM0m3)zk_tOL6K4xo`li`78h;OO#f7eDC7Eik z=26awfIeRNM`6&AML`EP+B&3c4SPZK-Hs1$|5_v7Xg8&`|9jiOX-{7e)we9=p5rEdVTx%x!Dmf; zMIYlpG93$xYVfUo`)rcnLE85>$-(EVd-9f`dlj2UT(pJ|(x9Ry(&<>s+Tx)OQk_x4 zI<$??_?s|(k=L?wDsK2)mEKH{K92%>XQi5VmuM|>8`w7`;Kn+!LteZJHiW;_Q7sEk zq%Hc+iTHtfDD#7a@~S@Dt*IkV~;Q2D*0P#Miq48j@RphXt}H&?`F>*KCmaRB^B)6L9FKAJCmXcD8lVfZu&?w<^MM29q&wxot#o zJ?{tmmWP)Aw2rE8rv{foihUgJa(8NM>C{U!&9lq8 z#%8Rzxb5BHL>C{B zMNXvv;B+(tSQ9vbmJE~Yg>mBkF3M_M*gbai{rEmfG_#yJZ zE7iZE!Jf-s>ole@C2d$Ai~cUo5A1LB^i8Ba+nATKnyk0S+ zw^S)k=sd8HvrWe@TRE<5Y|LIgb z508?OuB>Kgf)@6K)i)N`XMk_x7h-B9fo!S53J9u}zIa)y#n(_GsFF?*dmHLQ zj%t_)uXMDZu)To9^jt@y5LiYj4pOX5G8lkAuB~V(o;76oTmP#MaWdiV1B_JE{PON! zAvTMIhUVR5rj`M7G&2tAXaw&|V(g}Bskz2)dK%rctua?uKra6rXdwusIImff5IBf{ z;LU-?2hyWJ;@S4aM1)QALs1rWcg)AoezhkE9F(jWaPFM|Wz%8);PdRR{h@nL5@2cPMa?CLrfnaaIRYJoZQ%<)(za7e4omRXh!1M*Rmz_BGo ze9~(*aJk|XMmC0E`j{yADR-9Uwp=1daTHj!q`)%aA$zG>BxgWGE14jHd&*3mo!o72 z=m>=FsNA?ACv?tj@2M|qQC#SqQ5cRr9SFXK(zCjzzI2wJ7o(qP$(fQhajJ4BPs@L% znMDj4Tb1>{SSGSbTX~DqPTVl!N7^DHr5G(+|6FCIba}Aa0g;5nr+y)Enx!iRmhusFWsjb{1JgxR95`uF39jDbCS?18kkmLlnhHS zK~K^Wr@{+qYwK!hP|}BwWpnNIj2GPexumxN_-x%i#U2D9-7)O&^Xs1%L}%(SOB;Yg zfg1DTIME;h&V^26A_;I-0wjQ1xczLyP4DiQyF&C5O>`{pQl~wRGjoGPUOw64r$|}m zV&d1Ga>HV~^shrVlD}R!iuDd#nc0k(7^k!4W#<~Cw<&OxPd)$Ubk=K+FgPBEEg-lY z#GEM7~d)m zE>z%rBG{*0lX%jsY)uBj$L~8ao;ij$`gmG%?LMxy@4^8&t~uoByEbM&sj-3Y-h`ii)#SX%aL&#!wO7_y{sNz8cFXRicnef@e{Zd(5Oyd3A_*H>S#_5WQ112sq`dm)^8 zC5?;iIprq1d+z=^FWvPzieJRaj@v|9xae;Z?O3799Bw-0^!s3Ahv55M`$QB*WBE z`xmErUD46}z9K9zctBVt{o=&M=hOMIZvOYNXzFBNT{zh6J4EoAy!h;y+sBaL%JqY_ zm%H2gxRBvsKXsVVjTA=2#f%nZ^*= z-+@~KnhUxCM)+9+8{pofVgsBl4)XxsbM&_FLPMl-S~1PhIPx5H!HFAVsqp!(W6 z82^bWvQ0owu@rB~s_6)4=kpj~+u^9t`!?%Uoufy=Hq<&ujrx6`TPQ_7OtknNo|8!I zH3yN!9X(lB4==bmmQjF@vCsnrHdc*R)@ghrY8c8nTP$8{{)tny8&qXg2F1R?^_hkZ zn?Bf18V*Nq0NH&xM4r?Zy%94tO(ONTxC1}J(C>|yUlnj#&luHmD9L%jbQmdXb+1L7 zhYiIthA>UJL^&zbpY#%_@U!& zc&fwh5y0w9wsw1q*cfHFiE>YJ;NzaMEQoEehf73BV1#dgPv@!Kl_t!8f6*6fTcHLZMW}I6-1XQo*hoJKBN-sAqw`{)cyhhq9UbIC@%PU*NjN`Idh=wP?cC*I8H~W0fU4M!CN9?W0xxz4GJ@&d zhM0sS=+(gf^)HHN_fA8nx2r+Fg8nzJ`~LgEs45?@&MfsYVI>GK4nC`=9Y^S0DZYgXx9@3r;>3)^!$jg9UyIv+6QQl_^z zG`Xzo=oL8Q?EK8|soQ5%_tag4ig#OadK)bwh#&}`tgz;DqXa+}2jY5g@KAn%AtRCc zI1L4UR2WPO!p8gr@HH|1m)154-{tcqC~RrJjo=JB`Uaevnh^Q|FMAga-s<8XTia6< z=OJVG$w%}Du67QEDMHX^Sa`q3*~ea<(bI&SAG49YbYh0z)c3Byzy=F0dl!k zHNhXs2(K@on&_$7*n3tm?PjT;brF#( zL1D-B%lx5ve=GFeCY++LBl$ylrc8Bh(deNzFn_>BwZVx<|ARi>;uBr#jC{WEaJ6T` z9eauT2l*~hHAa|uwsxC+ko%(!CW_VYN^YXf`}yhxU)^OiCwGw7L{BeJka!2l?=|?@ zGrvE`GK=E#!-@`T>UHSBI${2$3<#3mv*i%8Mb$z z$rL^r^{!JXdyK%>QYrdOw6__SG3&!npr%3v=PYuq)D)_q*o*IkEX}!Rj-|fv}43n=EHA!`);KAZ74F#cGu$rFU zCoh#VJv+!cd?DpOmk^Oxquke2#pqoel+4jOqk#)N2gMu1P*CAy!nc5gZ*aDLic(=X zzMvFZPr#u#|7V*TT=fHQJ{Kc16yocI2Jfu30i)p8snzZi3>`;9?i%1^L6dv9#--Hz zIX=?wF)vA3c@@u~oP)da{O@PCqd{UavNn}>WLevFDPG*ciK=*1b}BMrWKT`-M&lsUI!{GPB%wt z7`eDA@&JqB5VA{Lg0D8*pG$}O8*f}g8GG+h_FfGpqO4NvyKm>EUEA&yt!n6fzSIUd zE-G~A>Y7{%4FNZEaJQ<--?$65^<`#6`G*vHe82jD^HFu~D#?H;^O)#^AfNyBF=seE z)Z16?h08agp}XLqXXgwNS$B7Yi$YlQ8UM?{*Dc%34Y0&EFOvpfZ|ooYVQ*uc9--iZ#y@B(HTuVf0N=?tCPT3;mFAJ-gMYAr zh^hMI9dQ+fFWhp!+5^?yCg1`tvkFn{8-4|)jN|6Mkn8fzS-Ra0imIso>Av*~xI2Pa z&Wz(CI8IE3gXe15Aswv#aKJ~dacvnyS`_~G38i6`vUmpwe{c>&rmeY|CXoNv0^ z*a13Q-l*bz`_4-E7}EwRu%!m zrTL0w4IP;(FIiP^Pe|^+*VK5C7z9((Hx8(Htv+|ML=*z|tl105*zAtlETpytg{=ZRNC(4U^ODM@P5!}z80B2|G zp=&5&`p8@CH3-sa{=p5tx(M!^Ih=jzuJ$^-?PqIdJQ&GF~k&W)3$nN+8=oll?!YzA6|j2 zG3Z(Ce|J61Ss=fI9g8mS_6XYja%v9S%`hKMiS^pkl9qExkWI|)X5N9%HPU)48NuhmB3RK3fn;z+ncDTigO z#wTfM+RLRru(tS3AP*T{PbaKO-rq06Awi6UP8(Y(*iv5nMyh22nOo5`fg}Gs+%8s zX6e=|Y^KgLOoaHcT98k<=nm`bGpG$pmM&_XGN@}1kJ0hA$~etd1X_;f_=Z)j9qmn^ zkNYvkO@&dbj+Lxb#N9RQeW;01u%RUl{l97GmK?GDJy4ynRmKB}r<5z`7U ztj465s-L+m$baWoevfO^Q5AEXdR2ZltPM#nk5Vrnk)tcDYW)JXW0Cl#GXH&#^$koX zDEnKhdF&&O1hM56b;TQ@xJOyi%`{NDond=XPDX>$fWTxr)nQI0gn<4REQ;G;anEk9 z!i`?c{z@-+4wfSgvg~HsACZ~p5$D)Di{TPe6OuS`OYBlOCqOlkwJmHysF9UN_NtkU zIv#cFYz2gpqt~n&g0ne_p7Tw)IHm=qHs}Zf=-zqg=z?mZ?|vqX!tYFX>=5Ut$k80r zdhnO({df&k@A*C-A6oh|Z3Hb0xtl|(wo_1=*MNUa)F#1Jg>t^6yHb?fS|{2Y9HC9_ z3p}^-Lzs==5pGPKQ3RZ=Tziptdz0DuXrhKcpBD%QXza|Dl|ASw>&Uq~#Q6P=ffos-+&m3ns{rDw!&f(#W5+-9R$ETDxc>r(XZ*B6zv>hRgNPox(e%Q0 z#1iiT=^mUDQT5mYQH)wgY^*(D)?L#H=Vcy8jsK+CGJGH##DBV$N0@&QNqD+rk- z_7hQYS16(2RhIQHrE0Qdm_2H-oOh!UKggd(IVoHVTq_RNhg4w7_w=#p27x13AD+4B zQfj}DX|9?tvZLLN5ChegT8Q-cRI6(lPx-pt1!0`vdg?}7R`h-L)<52s>rdRYT+q>S zMv;h66hjaXSejq896nI}=}DY?OF+tHmv%wcJet^MSNWwRD+x|<&S2fk=Tdjiq3^$W z3XJ9Kl*t9(@m+rR%_75_ywaG=m8ne<@fM4WDN>2?WnW~Lio?vl#!ao?@2(?0`yxQE z)d&Cim-PMW^O0;1htzSwx(ZxQvRhnwZ*BdlNkq~AxiQ3pP|_EBO@BllxTik?O+&KClUP&9R=i>C zB7m6dL0%+=EWlD+S{0V?VM4d1l%6#~Wq+NIDsteJD2Qwbe)L#2MjsU&nZ#zejfr=; z&?GIHMtfICy`(w6ZCHytAvQT~Us#%)^qcP#&8H0Z{M_KUKR#Kx%|G{iJIUOIA8(Zl zez+WMBYxrmM%x#87&g32j&M3sxTEwhfp(v+MBouyd1|=A=nS9de@FU!`5ZkCiAzkW zDDy4^uCApW&7$l(4cN4cdnL%l-2c94g}@$p;H$R<%!YmDLrjfF@=Vaz#V&WKP8qO> zcR0jCZ)LITCI4(R@yYF~6aE~s;=A-Y>AYo&Mrv8O$JmQ0@~#-u+4sQiVMxAlG*Ra< z@L(<2_I{NkVRIP2y!eQ+nk43MGCHZ5xs+?u$vdYRB*}WP*k8Q!QNjFC62lz0Q0a30 zKSVC}|Mt#*ieKNi#KzmT1~98cx9h@}4Sq9oT!^kDjQ%TdTnY>njtBniJMrJ;T75yo z>9e}iLfl3-WV{9Yri*~CQpKU=O=8 zhy6hKN6#|=&_s3AIU`_cV`zX3DR_fzY#TSk)3Oc`62?1RtV@CP0qJ7^_jUP?jsn0B zo%kD_)B!h*#-~D5bwvhJfDDNVg%k&FwIo7{bzu7@!^;pPI*o`5>rUOPi^M?fJyGHO z*KUjz1Klyn4NmAbK}+yv)c_Pl>X(cx5a}5+k&1(m?0m^~{+N^=gbtRGSadR#Ir-fq zSX2WbQ6CaxseB<&1E;1QqCPedu!w3u6IG~^fxl6E&UsBG)2wKGQv>*Rf?`R?T1n%d7$j^CkdE zymH!#=iHo?dna1QF>z|_Yv9j`_-TG`R-Wg^Xsk&8qHOUI-}daMi@Fy5JL&+Sm&6H6 zPw7tE{^n8`_>v|5JIPQgsd@*wWO#+O1}TabZEDtC^(}+yjk1U`v{60}w_adI;$GcA ze=QIYR9Lwt{qZcJyJLhx&%~;*R5ajNvZUvL-$~{zKuc-k_q8LY_v970Hvme*S+?{7sw7bxnx(zj4WMi-4IJpNdrX_76A~Pj=7;H z(8_lr1wf?sEoRzKg6LEE=AhRE*Ue4vN$q`T_8*RmTUuWP-~5})r|5Z$f&PSD=K-n#0^WCR=P-Z}32G(M5xyg_mQEBxJ0ny;(23%>D z{Ic{6LdiWJ|Jfb0Kn5revou769+Q?w;)=5wu|W=ND*3EJfr?`hD*`tkfP3ojt=_Uc;MwtKf2^Yp z4Wfnfsbc193ZB(KfSw*q?v6R0w;e*O{QT#sEd{p26{yZoEeW7Pz#v(#MAIe90R92o z1fXSxP5?q5!4^SAHc?%ruEg{cA1WX64A2oQpO|rWY7X7wfM&W@s6>+Q<9@&IBr=xo zs%skHQCP<^JhB={?cG0Xe1!4G4=|1fu(;329Ds85zrC#wnqs@g24IlZL)woX6`~(i zAG^p14>#EbbpaVP`@IVKE8g?w`9xRZ_Jh%ODf4WPrkU|ZUP`KjHJd-0VatxR zYwha#4`I(*il1kpU0jl(1mGL-Qg<(U1_|-kB()aS$9qnzEFPEXt{_n|4#OQauLBxU z2Md6A9)HbbL|G^P&ki#0k3VS9(eXwDAY5gYV}|RMu~km_OkaslMybFuDSRhyB!d!x z_<#n(+ea%17%4V*BOXBdgaFEAym`LE?DP6^wTU*Et=PXklo@I160TY$;lrH%-Q1f*t5&4F}e`*zllJFV6OqNDgOR96mDy=+qS5V+({7o zq71NJD_WvFNofZn64rz*c4?RTnpJ@pmyZ&J1>JW5#kwOIQtTDSwn%TW(xDY%VJ)i< zYK;7EEpLAY6gToj3o4n8jXSll1*^p%*!YXuz zyLvM{gjdIbJlZ$mQqb7AiYUBWe$M&&KheZm3+cVj;Kr}E__DwG&dH5@#&MAcm_+~Y zl?iuP|EVBBQKN*2vb$=dM9urkXCnO*z=9p0_3)xZ0Jc5w+uZCRBp))AVR63Fi(zve zktU4P8c*7qpQ*Zm|omkgf`m%UsGSv;cD05d48Ek;Ap02h~pCd1k-Jn-7w*?r@%{Em(nPrI_ zTZ>V&PsV<8{{ZldMbM~XIyus`S6>7akQeX&wK26fF_zED+`N3my};IIk3kacNnM5j zEb2U5p3qs1gPz`LuC4X3bG#kj4K4kxxrF>Hl`&KHOdqazH~V`0EJTJHEVB$OBf`AQ zIQ;woBwJDL4iJU^j4Lsqv@?$59zZc3KeT5)!2_15XZXHFsaO_(MHnw#@0#_;ZzBCy zb9jjY7^wzjrSSgNR2Fu}prn$+d^hq(nxNv_R3^Crh6Msx23^ocdrDV>`M9RC2IsKg z{RgNcgV$Hpa|R^|uF6)OZ)S--Cwe9n6<@l4>tCU$KoP_IXuu4CT}i9~zzE@)(g#Zq z9CgRQ$h1R>CxCs6c#?G5=<*-lEwnUWrjw5=>*noPuC(hsL!F;Czzrs(0Q;~oJ4&@_ z4NI1p`$iPs39+VrHvWx{`+6l5$)wm6*RKF0TnT_Nl?G-B2gM;uz<8EIa#R!PdeVym@DLdxZ}O+;-MPmbH*#1YX1DYuOuff>=dL2IDhG9K8aly|X#nLxA02oy<`%RzMtnA3icXAnumAA3!s z+`k`w(GBTNmwND4BONZxyA8dcz}5Y2M%i&4)Ip6sE5=2CsGyzBv__TvgDRZlP(ntW zjHeUO3Mkk#0UJ@x3Mo|WWafYw3+PP3AveJ1^c?-yNAd8B7k`ad8DLKw13WFv@)GHQ zu&o1(F2G}Ws4kgk7p!V@?I&^9`h41a(q*4P5$}NRS@K%|w?Cnu&?eY|Y{n+XFu48b z)>%GbSO9cl_RmsX|097EeK(>c57H^O z|F81=G9w(?$i*D&uU7$+8bDb;)QuA&u9_Tq3j)FQUy%wtI`t^mdSj1S%AK0kJz2V|%T*3i87c39T4`}W&<$7 zR~7-IAX25*i`%hd1y9cAiA)N+s+=dWZLb(9V@azvEOsKchH>jhejIV(WqAZLQbMgF z(g!!%_NeyI&p;bY7`myadH|v6>|E+uCw5+P-MkJHWYJ4*8E@x4}#XV?A9YVPZ`hv7j>WgdSq>W@GbeW=l%~LX4U`;-7J@B zy(nf$@%uv1y7R|iVJB$^?x*CR_{C4>f&E?^X(>+}r=1V~XDEL!kvwX_r1YwPnEb)v zu{L&G;(m2>{f(gc=9;D4L*wb@u`HCcHhSjfdKCWeI7L*pj`)QV!seZrw49E(zyFBI z%2JEE47Q&U*&^-5|0iCyr3}81a2vMtaW+fmV|WS-I3aA_0S3F7QKx$b2g4FwkQ{Hos_{GH)c;?25=?LSObA@!18pR(wOUcV4g zf%oqM0)6M|GpRQ!s*K#IqopTzTZyZwKwO- zi7F%O8SE*kTpjIK0TzWDClO7_SA^@WOOKExUU`9JDf9zX7L$_>&)fh>!hsv!;BL>% zzzY@^O-xnTdqQy@!97?U9iF?mLM%^7m{4g}ld_%w9GA;ebbFL!ftRkz2MNl$P% zc~wNEwC&nt#eF@K=E>x~`g`Uog%Wi*J9y(&o|0Um+6b$xat#Cun8iHq@j{`gvU8EG zv}kkqvgFg0@&n14!~d#mOc_;fc}^@f9eW;1-uXvCZXl~P)palUN8*~`-t745d1@NV z2rW=y++>H-G1K(aoS^!ZKZu;g6RG;*8^?cbN!c!5E8m>P-l z(l_E_#*G{t-a#T6bmnFw$-i%R4_3H)HwTlrq4HT@91 zNViSwm&R!?ob1+bTp?6pfJoIO8Eo@;Y3gH0N;N|{Ze{x|8VN^sdelb+TQhx;ODfBe zRGf#&UU}ZzP2$qQlTa=~pEyFUn6Yu*X|w|G_{(&6f*4*A6Da9C{FZNRVrpt%0%-e9 zQN7C?=<-#!y(>kcM9^`X)DRo857|BgUjV~!)XVp%o$olkEzA>D-GmukR*=KaKrTTe z^%}icC?@}JyOg$UeimjJBj?E06PqDaSJoPbLV?*cktxF|m zeNHgk6J(k)lq#h^%EJPo_)j8p`*xEE+y@go-}6KI46U0#Z(YzvmyQ|L*qSl2F)n7SK<`95bCoJ!B z`eVHY+VJ*|0CFR2+G!LbfJeU(@2d z(Uwq_1euZ8+z);)pNeVdzxyPDpH&MPC)MHL&>|yw{%$g{yE%A)&2P5&9|3hxPMpT^ zZdw5m+FYb;cqQ)1LlEF$^|`4!+IEXrR+aqCGlHVYQh{;1mt*#Ya@*C0(rh@jfGf`C zoJ_9hb076juHSDtl4eMvY<`fZpF(AB?VBHdzI>>G;IP*U@e%BjrAD9N6ulaud@Zae zV1W7tqZR@eVK9RcF%aySkBpR2bZjBfRX2NvZ(kLa=pCiZAl?}9^lVJ9B&+-MU~H}O zk={LWLGbf@Xo!ZyQ_U*;v2r69wU3n$-mxu-DuJ}ci8Q??W9ch-#6PU5fJ*WJ2Gxf` zP}5#2{M-<1qHj|Fu7+P3RNaWgFz|kKGYT#D!G9ra&o1tBpON!^+qnlG!=RbLK$%*k z(`#Mr=2=;$jU{vB%i+;PG;BPoAZtbkZA%iK59Br=} z#GaU7mw+|Vgwu3G5|2Tk3mKs)f1+ZV;r<#jV&_ePuAm$CH?g01g$J*U(F|WveZjyH$p8wV8&G4?o z9{No`OHr&evRR!h7e2%z@_Uc-i$kxnOxMrv;SHBFj;Mz6rXkugvZ4!&{<-nNa|NAc z1?Dh`pDbnv3pacP7-AWq(}P!8`3fgG&2I36KOoJo+LfZpr)?koS#Wjv#g0ne)FN0( z_Pfu>W(QskuY7jnLK|we$T8wembbi(CEb-p=3bSwv_^swgS!%*6(fk^NkAT}xJA?w zJD`ujYD6I(ja<5}oz{xY47+@Sona#UzV@fE@I}g31yUD^G&@%ei{VBDq+djH22G5S zUwFh%cAG5RGNlNXpkzek{I44CvoLP)Hj?~vJiw|q#cMO1dW?l~!ZlTDq(%59-$T?j zF!dd_smVZ{Cv+aujM+QJo=(1>ag+E(mgwJw1ZuA_Z<)W%yRBXmxDQ6Z2XW+kss1^B zW%wW`v<+5Bh$lZ6D9IxQKf_*)8;`zZ4y^}@NC-3;QMJRC+7D**E||uacorR^%a1(f zRxyfoc`9L4vUYw5U&QJ*@X269FYpMj<)`F4E3JMoSs|$$GL+Go*S&X;@iZ`!Zc}ID?&==M9@Wu7*8r+!4c^Jr`NW%Q(wF+ z0TbkTUCMlIa=t@cO3vP0L$|1V_5(GBjS-@=?T$cQ4g1VTZ-L;5469GF424Hh5|ktI z``uqL{ML1IR`@uUm_4~kckXI4YwkCK)%1V;<%uIUr1CO&8iQuOWj^UeT!|dgzA^s< z8)n0Cs|MpBR*_9!5x2-imhF@U&#zA`H29G{(>-r?RQYJl#+EjGFOxCMYqx~I)n-vA z>i0tvY;`tQpDmKOFnc(3wsIkdc*iT9vtT06SR7{I%lcH_HLYbIk*DoG>t61^tnIlC zhuc8^W`wS0NDUn&O(F_Z#m9#+r}klShifZVK+1`N{8X^Bp@|Fejv#h$jMJq7d zWgUg$C*t4tw9kKhdss)5m~k^`yvH!2gGh*=NisI8OfHy(wK>EU;}1;|@w*1;*xHj& zvdeh>sXQVi`A461gK~(3J`b;Lz=sCn!k)`)yk9<_X(PZkQsWwK;@1=)bwYj1Pt`aS zFXmv;Ia!Y?v$>8$k~rKs z#CmRMZ#<2n3a^=~N!Z&WMjPmh!9prhBxILXxba-7182#+KS1qh!0pPCJ*FTfZ zZ6xeWNhN)+0fLT-uMEVq)a6OJDv3AZIOJU3xQ7mYL_rjXqRD>_JIl$SJd=H6IEHh? zk->zl%>xHF7OfeMM-qCYQ<>%0w|ucVj_e&mLstPy=Mz!)gdS<9XTjV3;x4-(B2=TyCB->5b_RTR1Td+9`YJ~YeCboox3C5;e@QvJ^ z&ox}JHm&DvzqCz=p$~)w|LQIL9KvXG!>IoIbt3Q76M~Y(_vP_&oqjIs-oRNjF~Q8pO`UgZuYCr`FPjgmV(V6VB@D3M4zxIdW{|M^>HQ%k(vIMwpX(3Uy{Yq>P+serS3WOBPX5(A+2z}$z`m0ET#)0t)06eR^@%iV{C725v;s-raDM3=9=6Lk z^X?bKqql4Dd#+fs7@12*MxZe4{O(*Tb_H^jVVt7uXtgrqg+5OAHoeb*HqaGNQydgREoFPmIS8q#bnUJ*b5{i3dzlGbnym1?L@SkB0IQrJe>x%#eIF2 zrLN*M*PX%9K=I!P`VCx{A(ge6Tb7CEX5Lz;>}|o*UeUq*m!_k<$#wNF@tmttxG||N zZ`nBSLnu$^+lB|84BwLLkp-A{MPLG+V(ii5Jm^A8HG=T}%C3KCju+Z@1La-A9h0gv z{I*|#Udx6g@|Xz;&! zY~l?~A+`KMH#8-TM`d+m>pyOa22ebT1BzdY?-vmnZVIfvUL1%my$zwbIZn7KLd4^= zlIhFcasNd-rq|Qo>7|O$W4Nj@X^w*h2Q~z-TOI$wQ08Lcs)4Q`Hwj;HsSiU-Ppe|# ze!F*@MK4N!9bPm*9>5DApig-!|6<;&T?JQ;mHR|z(bzXAg{l7>cHCGIboKrQiP5H( zI(`9dW)gvc?)_C2IB$%dY1){!6%czt2~?j6TKnfG6rM zcTTud~L?A|p1;e69;iy)tJ48whmF+e=%+3Ei$ QX%RKlAK%WW*tnqnA4ijsdjJ3c From 827ccdd67c3a49c5016b4aa4b2115fea16840c8f Mon Sep 17 00:00:00 2001 From: WriteMayur Date: Wed, 20 Nov 2024 10:59:23 +0530 Subject: [PATCH 20/30] Deleted the translation file to fix the error conflict Deleted the translation file to fix the error conflict --- .../github-integration.mdx | 55 ------------------- .../github-integration.mdx | 55 ------------------- .../github-integration.mdx | 55 ------------------- .../github-integration.mdx | 55 ------------------- 4 files changed, 220 deletions(-) delete mode 100644 src/i18n/content/es/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx delete mode 100644 src/i18n/content/jp/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx delete mode 100644 src/i18n/content/kr/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx delete mode 100644 src/i18n/content/pt/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx diff --git a/src/i18n/content/es/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx b/src/i18n/content/es/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx deleted file mode 100644 index e091df5d1d4..00000000000 --- a/src/i18n/content/es/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Adopte sin problemas el New Relic Service Catalog con la integración de GitHub -tags: - - New Relic integrations - - GitHub integration -metaDescription: Set up automatic ingestion of your GitHub Dependabot events by using webhook for ongoing ingestion. -freshnessValidatedDate: '2024-10-29T00:00:00.000Z' -translationType: machine ---- - -La implementación de un New Relic Service Catalog puede generar beneficios considerables, pero requiere mucho tiempo y recursos. Debes encargarte de la orquestación del equipo, el aprovisionamiento de usuarios, las asignaciones de roles y la delimitación de la propiedad de las entidades. Estos crean un umbral de entrada significativo. Para facilitar este desafío, considere una solución de automatización que aproveche la configuración del equipo existente y las relaciones mantenidas en sistemas externos como GitHub. Esto simplifica la configuración inicial y acelera la adopción del New Relic Service Catalog. - -GitHub Integration dashboard - -
    - Luego de configurar nuestra integración con GitHub, vea sus datos de equipos, repositorio y usuario de inmediato. -
    - -## Requisitos previos [#prerequisites] - -El usuario debe cerciorar de iniciar sesión en su cuenta de GitHub. Esta debe ser la misma cuenta de GitHub en la que desean instalar la aplicación de GitHub que New Relic proporcionará durante el paso de instalación. - -## Configurar la integración de GitHub [#set-up-github] - -Visita el mosaico **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) &gt; + Integrations &amp; Agents** &gt; GitHub integration y sigue los pasos a continuación para completar la integración de GitHub. - - - - ## Detalles del catálogo de servicios [#service-catalog-details] - - En este paso debes habilitar o deshabilitar la opción de catálogo de Power Service. Esta opción proporciona al usuario la capacidad de importar todos los datos relacionados con los equipos, el repositorio, la solicitud de extracción, las revisiones de la solicitud de extracción y el despliegue. - - El usuario puede habilitarlo para importar todos los elementos mencionados en el Catálogo de servicios de energía. Al deshabilitarlo, el usuario solo podrá importar información básica sobre los equipos y el repositorio. - - - - ## Integración con GitHub [#github-integration] - - GitHub Integration dashboard - - A continuación, haga clic en Instalar. Se carga la página de instalación de la aplicación GitHub. New Relic proporciona esta aplicación para obtener la información de la cuenta de GitHub de un usuario. - - Una vez completada la instalación, veremos la página de resultados que enumerará dinámicamente los datos de GitHub recuperados relacionados con los equipos, el repositorio, la solicitud de extracción y el despliegue. Tomará algún tiempo obtener la información completa, por lo tanto, la página se seguirá actualizando cada 10 segundos hasta que tengamos listo el catálogo de servicios de energía. - - El resultado obtenido será como el siguiente: - - | Categoría | Contenido | | --- | --- | | Equipos | Listado de equipos dentro de la organización de GitHub | | repositorio | Listado de repositorios propiedad de la cuenta de GitHub | | \[la] pull request | Listado de \[la] pull request abiertas y cerradas | | despliegue | Listado de eventos de despliegue | - - Estos elementos de la lista serán enlaces en los que se puede hacer clic y que abrirán nuevas pestañas con más información como la que aparece a continuación: - - GitHub Integration dashboard - - - -Para obtener más información sobre cómo instalar aplicaciones de GitHub en su cuenta, puede visitar este sitio https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations \ No newline at end of file diff --git a/src/i18n/content/jp/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx b/src/i18n/content/jp/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx deleted file mode 100644 index 1087fbb6c41..00000000000 --- a/src/i18n/content/jp/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: GitHub 統合によりNew Relicサービス カタログをシームレスに採用 -tags: - - New Relic integrations - - GitHub integration -metaDescription: Set up automatic ingestion of your GitHub Dependabot events by using webhook for ongoing ingestion. -freshnessValidatedDate: '2024-10-29T00:00:00.000Z' -translationType: machine ---- - -New Relic Service Catalog を実装すると大きなメリットが得られますが、かなりの時間とリソースが必要になります。 チームのオーケストレーション、ユーザーのプロビジョニング、ロールの割り当て、エンティティの所有権の区分などを管理する必要があります。 これらはエントリーに重大な閾値をもたらします。 この課題を軽減するには、GitHub などの外部システムで管理されている既存のチーム設定と関係を活用する自動化ソリューションを検討してください。 これにより、初期設定が簡素化され、New Relic Service Catalog の導入が加速します。 - -GitHub Integration dashboard - -
    - GitHub インテグレーションを設定したら、すぐにチーム、リポジトリ、ユーザーのデータを確認できます。 -
    - -## 前提条件 [#prerequisites] - -ユーザーは GitHub アカウントにログインしていることを確認する必要があります。 これは、インストレーション ステップ中にNew Relicが提供する GitHub アプリをインストールする GitHub アカウントと同じである必要があります。 - -## GitHub 統合のセットアップ [#set-up-github] - -**[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) &gt; + Integrations &amp; Agents** &gt; GitHub integrationタイルにアクセスし、以下の手順に従って GitHub 統合を完了します。 - - - - ## サービスカタログの詳細 [#service-catalog-details] - - この手順では、電源サービス カタログ オプションを有効または無効にする必要があります。 このオプションを使用すると、チーム、リポジトリ、プルリクエスト、プルリクエストのレビュー、およびデプロイメントに関連するすべてのデータをインポートする機能がユーザーに提供されます。 - - ユーザーはこれを有効にして、電力サービス カタログに記載されているすべての項目をインポートできます。 これを無効にすると、ユーザーはチームとリポジトリに関する基本情報のみをインポートできるようになります。 - - - - ## GitHub の統合 [#github-integration] - - GitHub Integration dashboard - - 次に、「インストール」をクリックします。 GitHub アプリのインストレーション ページが読み込まれます。 New Relic は、ユーザーの GitHub アカウント情報を取得するためのこのアプリを提供します。 - - インストレーションが完了すると、チーム、リポジトリ、プルリクエスト、デプロイメントに関連する取得された GitHub データが動的に一覧表示される結果ページが表示されます。 完全な情報を取得するにはしばらく時間がかかるため、電力サービス カタログの準備ができるまで、ページは 10 秒ごとに更新され続けます。 - - 得られた結果は次のようになります。 - - |カテゴリー |コンテンツ | | --- | --- | |チーム | GitHub 組織内のチームのリスト | | リポジトリ | GitHubアカウントが所有するリポジトリ一覧 | | プルリクエスト |オープンとクローズのプルリクエストのリスト | | デプロイメント |デプロイメントイベント一覧 | - - これらのリスト項目はクリック可能なリンクとなり、以下のように詳細情報を含む新しいタブが開きます。 - - GitHub Integration dashboard - - - -GitHub アプリをアカウントにインストールする方法の詳細については、次のサイトをご覧ください: https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations \ No newline at end of file diff --git a/src/i18n/content/kr/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx b/src/i18n/content/kr/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx deleted file mode 100644 index 868cbfd3a2a..00000000000 --- a/src/i18n/content/kr/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: GitHub 통합으로 뉴렐릭 서비스 카탈로그를 원활하게 채택하세요 -tags: - - New Relic integrations - - GitHub integration -metaDescription: Set up automatic ingestion of your GitHub Dependabot events by using webhook for ongoing ingestion. -freshnessValidatedDate: '2024-10-29T00:00:00.000Z' -translationType: machine ---- - -뉴렐릭 서비스 카탈로그를 구현하면 상당한 이점을 얻을 수 있지만, 상당한 시간과 리소스가 필요합니다. 팀 오케스트레이션, 사용자 프로비저닝, 역할 할당 및 엔터티 소유권 구분을 처리해야 합니다. 이는 진입을 위한 중요한 레버값을 생성합니다. 이런 과제를 완화하려면 GitHub과 같은 외부 시스템에서 유지 관리되는 기존 팀 설정과 관계를 활용하는 자동화 솔루션을 고려하세요. 이를 통해 초기 설정이 간소화되고 뉴렐릭 서비스 카탈로그 채택이 가속화됩니다. - -GitHub Integration dashboard - -
    - GitHub 통합을 설정한 후 팀, 리포지터리 및 사용자의 데이터를 즉시 확인하세요. -
    - -## 전제 조건 [#prerequisites] - -사용자는 GitHub 계정에 로그인했는지 확인해야 합니다. 이는 뉴렐릭이 설치 단계에서 제공할 GitHub 앱을 설치하려는 GitHub 계정과 동일해야 합니다. - -## GitHub 통합 설정 [#set-up-github] - -**[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) &gt; + Integrations &amp; Agents** &gt; GitHub integration 타일을 방문하고 아래 단계에 따라 GitHub 통합을 완료하세요. - - - - ## 서비스 카탈로그 세부 정보 [#service-catalog-details] - - 이 단계에서는 Power Service 카탈로그 옵션을 활성화하거나 비활성화해야 합니다. 이 옵션은 사용자에게 팀, 푸시, 풀 요청, 리뷰 풀 및 배포와 관련된 모든 데이터를 가져오는 기능을 제공합니다. - - 사용자는 이를 통해 전력 서비스 카탈로그에 언급된 모든 항목을 가져올 수 있습니다. 이 기능을 비활성화하면 사용자는 팀과 저장소에 대한 기본 정보만 가져올 수 있습니다. - - - - ## GitHub 통합 [#github-integration] - - GitHub Integration dashboard - - 다음으로, 설치를 클릭합니다. GitHub 앱 설치 페이지가 로드됩니다. 뉴렐릭은 사용자의 GitHub 계정 정보를 가져오는 이 앱을 제공합니다. - - 설치가 완료되면 팀, 리포지터리, 풀 요청 및 배포와 관련된 검색된 GitHub 데이터가 동적으로 나열되는 결과 페이지가 표시됩니다. 전체 정보를 가져오려면 시간이 걸리므로 전력 서비스 카탈로그가 준비될 때까지 10초마다 페이지가 새로 고쳐집니다. - - 얻은 결과는 아래와 같습니다. - - | 카테고리 | 내용 | | --- | --- | | 팀 | GitHub 조직 내의 팀 목록 | | 표면 | GitHub 계정이 소유한 클립 목록 | | 당겨주세요 | 풀 풀과 닫힘 목록 목록 요청 | | 배포 | 배포이벤트 목록 | - - 이러한 목록 항목은 아래와 같이 더 자세한 정보가 있는 새 탭을 여는 클릭 가능한 링크입니다. - - GitHub Integration dashboard - - - -계정에 GitHub 앱을 설치하는 방법에 대해 자세히 알아보려면 https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations 사이트를 방문하세요. \ No newline at end of file diff --git a/src/i18n/content/pt/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx b/src/i18n/content/pt/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx deleted file mode 100644 index c968965728e..00000000000 --- a/src/i18n/content/pt/docs/infrastructure/host-integrations/host-integrations-list/github-integration.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Adote perfeitamente o New Relic Service Catalog com a integração do GitHub -tags: - - New Relic integrations - - GitHub integration -metaDescription: Set up automatic ingestion of your GitHub Dependabot events by using webhook for ongoing ingestion. -freshnessValidatedDate: '2024-10-29T00:00:00.000Z' -translationType: machine ---- - -Implementar um New Relic Service Catalog pode gerar benefícios consideráveis, mas exige tempo e recursos consideráveis. Você precisa cuidar da orquestração da equipe, do provisionamento de usuários, das atribuições de funções e da delimitação da propriedade da entidade. Elas criam um limite significativo para entrada. Para facilitar esse desafio, considere uma solução de automação que aproveite a configuração de equipe existente e os relacionamentos mantidos em sistemas externos, como o GitHub. Isso simplifica a configuração inicial e acelera a adoção do New Relic Service Catalog. - -GitHub Integration dashboard - -
    - Após configurar nossa integração GitHub, veja seus dados de equipes, repositório e usuário imediatamente. -
    - -## Pré-requisitos [#prerequisites] - -Os usuários precisam garantir que estejam logados em suas contas do GitHub. Essa precisa ser a mesma conta do GitHub na qual eles desejam instalar o aplicativo GitHub que a New Relic fornecerá durante a etapa de instalação. - -## Configurar a integração do GitHub [#set-up-github] - -Visite o bloco **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) &gt; + Integrations &amp; Agents** &gt; GitHub integration e siga as etapas abaixo para concluir a integração do GitHub. - - - - ## Detalhes do catálogo de serviços [#service-catalog-details] - - Nesta etapa, você deve habilitar ou desabilitar a opção de catálogo do Power Service. Esta opção fornece ao usuário a capacidade de importar todos os dados relacionados a equipes, repositório, solicitação de pull, revisões pull request e implantação. - - O usuário pode habilitá-lo para importar todos os itens mencionados no Power Service Catalog. Desabilitando-o, o usuário só poderá importar informações básicas sobre os times e o repositório. - - - - ## Integração GitHub [#github-integration] - - GitHub Integration dashboard - - Em seguida, clique em Instalar. A página de instalação do aplicativo GitHub é carregada. A New Relic fornece este aplicativo para buscar informações da conta do GitHub de um usuário. - - Quando a instalação estiver concluída, veremos a página de resultados que listará dinamicamente os dados recuperados do GitHub relacionados a equipes, repositório, pull request e implantação. Levará algum tempo para obter as informações completas, portanto a página continuará sendo atualizada a cada 10 segundos até que o catálogo de serviços de energia esteja pronto. - - O resultado obtido será semelhante ao abaixo: - - | Categoria | Conteúdo | | --- | --- | | Equipes | Lista de equipes da organização GitHub | | repositório | Lista de repositórios pertencentes à conta GitHub | | solicitação pull | Lista de solicitações pull abertas e fechadas | | implantação | Lista de eventos de implantação | - - Esses itens da lista serão links clicáveis que abrirão novas abas com mais informações como esta abaixo: - - GitHub Integration dashboard - - - -Para saber mais sobre como instalar aplicativos do GitHub em sua conta, visite este site https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations \ No newline at end of file From 77375c09e7c8741a5c13ee63582c3468dc800fc9 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 14:13:37 +0530 Subject: [PATCH 21/30] Minor changes --- .../ruby-agent/configuration/ruby-agent-configuration.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx b/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx index 8547a849e4d..96f814a134f 100644 --- a/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx +++ b/src/content/docs/apm/agents/ruby-agent/configuration/ruby-agent-configuration.mdx @@ -3269,8 +3269,7 @@ permit advanced matching. Setting the value to `["."]` will report all `user_dat An array of strings to specify which keys and/or values inside a Stripe event's `user_data` hash should not be reported to New Relic. Each string in this array will be turned into a regular expression via -`Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the -pair will not be reported. By default, no `user_data` is reported. Use this option only if the +`Regexp.new` to permit advanced matching. For each hash pair, if either the key or value is matched the pair is not reported. By default, no `user_data` is reported. Use this option only if the `stripe.user_data.include` option is also used. From 0090e9a374d2f249bd0f13f991e8800864bff3b3 Mon Sep 17 00:00:00 2001 From: WriteMayur Date: Wed, 20 Nov 2024 14:20:46 +0530 Subject: [PATCH 22/30] minor-grammatical-updates --- .../ruby-release-notes/ruby-agent-9-16-0.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx index de72da9c985..0662afe016e 100644 --- a/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx +++ b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-9-16-0.mdx @@ -16,11 +16,11 @@ security: [] ## v9.16.0 -Version 9.16.0 introduces instrumentation for the aws-sdk-lambda gem, allows users to opt-in to adding labels to logs, updates View Component instrumentation, and fixes a bug with explain plans on Rails 7.2+. +Version 9.16.0 introduces the following features and bug fixes: - **Feature: Instrumentation for aws-sdk-lambda** - If the aws-sdk-lambda gem is present and used to invoke remote AWS Lambda functions, timing and error details for the invocations will be reported to New Relic. [PR#2926](https://github.com/newrelic/newrelic-ruby-agent/pull/2926). + When the aws-sdk-lambda gem is available and used to invoke remote AWS Lambda functions, the timing and error details of the invocations will be reported to New Relic. [PR#2926](https://github.com/newrelic/newrelic-ruby-agent/pull/2926). - **Feature: Add new configuration options to attach custom tags (labels) to logs** From c5edcd90cf82951c2fd18c74e1b32d982cf58b89 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 14:45:19 +0530 Subject: [PATCH 23/30] Updated the redirect link --- .../linux-installation/azure-extensions-infrastructure.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/docs/infrastructure/infrastructure-agent/linux-installation/azure-extensions-infrastructure.mdx b/src/content/docs/infrastructure/infrastructure-agent/linux-installation/azure-extensions-infrastructure.mdx index 59ae9e5a9c4..90510759f1a 100644 --- a/src/content/docs/infrastructure/infrastructure-agent/linux-installation/azure-extensions-infrastructure.mdx +++ b/src/content/docs/infrastructure/infrastructure-agent/linux-installation/azure-extensions-infrastructure.mdx @@ -6,6 +6,8 @@ tags: - Linux installation - Windows installation metaDescription: New Relic's infrastructure agent automatically instruments Docker to collect container metrics and metadata. +redirects: + - /docs/infrastructure/install-infrastructure-agent/linux-installation/azure-extensions-infrastructure/ freshnessValidatedDate: never --- From affe516d3a2483a54ffb27d1c70702fd5b17d6f8 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 15:05:20 +0530 Subject: [PATCH 24/30] Minor changes made --- .../docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx index 18a8c5b4059..91e58b56179 100644 --- a/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx +++ b/src/content/docs/apm/agents/net-agent/net-agent-api/net-agent-api.mdx @@ -2334,7 +2334,7 @@ The following list contains the different calls you can make with the API, inclu ### Description - Sets a custom transaction name, to be appended after an initial prefix (`WebTransaction` or `OtherTransaction`) based on the type of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). + Set a custom transaction name, to be appended after an initial prefix (`WebTransaction` or `OtherTransaction`) based on the type of the current transaction. Before you use this call, ensure you understand the implications of [metric grouping issues](/docs/agents/manage-apm-agents/troubleshooting/metric-grouping-issues). If you use this call multiple times within the same transaction, each call overwrites the previous call and the last call sets the name. @@ -2483,7 +2483,7 @@ The following list contains the different calls you can make with the API, inclu ### Description - Sets the URI of the current transaction. The URI appears in the `request.uri` attribute of [transaction traces](/docs/apm/transactions/transaction-traces/transaction-traces) and [transaction events](/docs/using-new-relic/metrics/analyze-your-metrics/data-collection-metric-timeslice-event-data), and it also can affect transaction naming. + Set the URI of the current transaction. The URI appears in the `request.uri` attribute of [transaction traces](/docs/apm/transactions/transaction-traces/transaction-traces) and [transaction events](/docs/using-new-relic/metrics/analyze-your-metrics/data-collection-metric-timeslice-event-data), and it also can affect transaction naming. If you use this call multiple times within the same transaction, each call overwrites the previous call. The last call sets the URI. From 098f291a3a19acedb403c77c294e06ced75fd671 Mon Sep 17 00:00:00 2001 From: mangulonr Date: Wed, 20 Nov 2024 05:40:12 -0500 Subject: [PATCH 25/30] Update k8s-agent-operator.mdx Added specific versions supported per APM Agent --- .../installation/k8s-agent-operator.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index 6504cb4e7bc..cda71a9a192 100644 --- a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -574,7 +574,14 @@ It's advised to uninstall any versions preceding 0.14 and proceed with the insta ## Support [#support] -The Kubernetes APM auto-attach currently supports the latest 3 versions of these APM agents: Java, .NET, Node.js, Python, Ruby and PHP. +The Kubernetes APM auto-attach supports Java, .NET, Node.js, Python, Ruby, and PHP agents according to our standard APM agent support policy starting with the following minimum versions: + +* Java: 8.12 +* .NET: 10.25 +* Ruby: 9.10 +* Node: 11.9 +* Python: 9.10 +* PHP: 11.12 For any issues: From 025ed785e1ae3b7c181583d032211368344a69f4 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 16:29:22 +0530 Subject: [PATCH 26/30] Updates --- .../browser-monitoring/browser-pro-features/session-replay.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx index 8ba3dc0ccfd..4175d43a9d7 100644 --- a/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx +++ b/src/content/docs/browser/browser-monitoring/browser-pro-features/session-replay.mdx @@ -270,7 +270,7 @@ For more details on session replay, see the following sections: * If you place the browser agent in the top-level window, session replay only captures what's in the window. The iframe will appear blank in session replay. * If you place the browser agent in the top-level iframe, session replay only captures what's in the iframe. - Session replay is **not** compatible with elements. + Session replay is **not** compatible with `` elements. From 3f73dbbc9bb12f1204a7e5ffca049d7d3f5290fa Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 17:25:26 +0530 Subject: [PATCH 27/30] Updated the document --- .../configuration/net-agent-configuration.mdx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/content/docs/apm/agents/net-agent/configuration/net-agent-configuration.mdx b/src/content/docs/apm/agents/net-agent/configuration/net-agent-configuration.mdx index c3e721e825f..4751601ea1c 100644 --- a/src/content/docs/apm/agents/net-agent/configuration/net-agent-configuration.mdx +++ b/src/content/docs/apm/agents/net-agent/configuration/net-agent-configuration.mdx @@ -3554,6 +3554,7 @@ There are three main sub-features: 2. Log forwarding: When enabled, the agent will capture log data and send it to New Relic. * Context data (via [`AddCustomAttribute`](/docs/apm/agents/net-agent/net-agent-api/itransaction/#addcustomattribute)): When enabled, the agent will capture and forward any custom log attributes. The `include` and `exclude` elements are comma-separated lists of attribute names to include or exclude, following the [same rules](/docs/apm/agents/net-agent/attributes/enable-disable-attributes-net/#attruls) as other agent attribute configuration. They're both empty by default, which results in all log context data being captured and forwarded. * Log-level filtering: When configured with one or more log levels in a comma-separated list, the agent will prevent messages at those levels from being captured and forwarded. + * Labels: When enabled, the agent adds custom labels to agent-forwarded logs. You can use the `exclude` attribute, which is a case-insensitive, comma-separated list of label names. By default, the agent adds custom labels when the `exclude` attribute is empty. 3. Local log decoration: When enabled, your existing logs will be decorated with metadata which links logs with other New Relic data, such as errors. For more details, see [our docs on using .NET agent logs in context](/docs/logs/logs-context/net-configure-logs-context-all). @@ -3563,6 +3564,7 @@ For more details, see [our docs on using .NET agent logs in context](/docs/logs/ + @@ -3579,6 +3581,8 @@ NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_INCLUDE="myCustomAttribute NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_EXCLUDE="myCustomAttribute2, myOtherCustomAttributeMoreSpecificName" NEW_RELIC_APPLICATION_LOGGING_FORWARDING_MAX_SAMPLES_STORED=10000 NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LOG_LEVEL_DENYLIST="debug, warn" +NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_ENABLED=true +NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_EXCLUDE="label1, label2" NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED=true ``` @@ -3661,6 +3665,17 @@ The `applicationLogging` element supports the following attributes and sub-eleme The include and exclude lists follow the [same precedence rules as other agent attributes configuration](/docs/apm/agents/net-agent/attributes/enable-disable-attributes-net/#attruls). + + Use this sub-element, which is a child of the `forwarding` element, to configure adding your [labels (tags)](/docs/apm/agents/net-agent/configuration/net-agent-configuration/#labels-tags) to agent-forwarded logs, in agent versions 10.34.0 and higher. + + Set the `enabled` attribute to `true` to enable adding your labels to agent-forwarded logs. You can also use the environment variable `NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_ENABLED`. The default value is `false`. + + The `exclude` attribute is a case-insensitive, comma-separated list of label names to exclude when you enable labels. You can also use the environment variable `NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_EXCLUDE`. The default value is an empty string, which means "exclude nothing". This attribute does not support wildcards or regex. + + For [ASP.NET Core apps](https://asp.net/), the .NET Agent will read from `appsettings.{environment}.json` if you set the `ASPNETCORE_ENVIRONMENT` variable. - + \ No newline at end of file From f9c76acdd6438df508d695b47c84a66db3d2ee14 Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 19:32:32 +0530 Subject: [PATCH 28/30] updates --- .../docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx b/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx index 7bcc520c738..446591b0682 100644 --- a/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx +++ b/src/content/docs/logs/logs-context/custom-tags-agent-forwarder-logs.mdx @@ -15,7 +15,7 @@ redirects: freshnessValidatedDate: 2024-11-17 --- -New Relic APM language agents now allow you to opt-in to adding your custom tags (labels) to agent-forwarded logs. +New Relic APM language agents now allow you to opt-in to add your custom tags (labels) to agent-forwarded logs. With custom tags on logs, DevOps and platform engineers can filter, search, and correlate log data for faster and more efficient troubleshooting, improved performance, and optimized resource utilization. ## Enable custom tags (labels) on application logs From 1f0cb6e9fc41ac41efd6fa300a7f3ea690def99e Mon Sep 17 00:00:00 2001 From: adutta-newrelic Date: Wed, 20 Nov 2024 20:00:59 +0530 Subject: [PATCH 29/30] Updated the alignment --- src/install/microsoft-sql/whatsNext.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/install/microsoft-sql/whatsNext.mdx b/src/install/microsoft-sql/whatsNext.mdx index de8b37019b5..7c3dde17b81 100644 --- a/src/install/microsoft-sql/whatsNext.mdx +++ b/src/install/microsoft-sql/whatsNext.mdx @@ -185,7 +185,8 @@ headingText: What's next? * If you enable `ENABLE_BUFFER_METRICS`, a query starts running involving the `sys.sysdatabases` and `sys.dm_os_buffer_descriptors` internal tables to obtain the buffer's pool size for each database. This query could cause overhead on some SQL Servers. If you disable `ENABLE_BUFFER_METRICS`, the metric `bufferpool.sizePerDatabaseInBytes` won't be reported in MssqlDatabaseSample and `buferpool.sizeInBytes` won't be reported in MssqlInstanceSample. * If you enable `ENABLE_DATABASE_RESERVE_METRICS`, the reserved size is queried for each database and may cause some load on your server, depending on its size and usage. When it's disabled, both `pageFileTotal` and `pageFileAvailable` metrics stop being reported in MssqlDatabaseSample. * If you enable `ENABLE_DISK_METRICS_IN_BYTES`, runs a query which fetchs the volume stats for each database and this query can be slow. If you disable `ENABLE_DISK_METRICS_IN_BYTES`, the metric `instance.diskInBytes` won't be reposted in MssqlDatabaseSample. - + + Date: Wed, 20 Nov 2024 20:20:54 +0530 Subject: [PATCH 30/30] Rewritten the sentence to make it more concise --- .../installation/k8s-agent-operator.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx index cda71a9a192..f03a0532b9c 100644 --- a/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx +++ b/src/content/docs/kubernetes-pixie/kubernetes-integration/installation/k8s-agent-operator.mdx @@ -574,14 +574,14 @@ It's advised to uninstall any versions preceding 0.14 and proceed with the insta ## Support [#support] -The Kubernetes APM auto-attach supports Java, .NET, Node.js, Python, Ruby, and PHP agents according to our standard APM agent support policy starting with the following minimum versions: - -* Java: 8.12 -* .NET: 10.25 -* Ruby: 9.10 -* Node: 11.9 -* Python: 9.10 -* PHP: 11.12 +Kubernetes APM auto-attach supports the following languages and their minimum supported versions according to our standard APM agent support policy: + +- **Java:** 8.12 +- **.NET:** 10.25 +- **Ruby:** 9.10 +- **Node.js:** 11.9 +- **Python:** 9.10 +- **PHP:** 11.12 For any issues: