diff --git a/codemods/utils/mdxast-esm.mjs b/codemods/utils/mdxast-esm.mjs new file mode 100644 index 00000000000..1789d5d610d --- /dev/null +++ b/codemods/utils/mdxast-esm.mjs @@ -0,0 +1,20 @@ +import { unified } from 'unified11'; +import remarkParse from 'remark-parse10'; +import remarkFrontmatter from 'remark-frontmatter5'; +import remarkMdx from 'remark-mdx2.3'; +import remarkStringify from 'remark-stringify10'; + +export const createAST = (mdxText) => { + const mdxAst = unified() + .use(remarkParse) + .use(remarkStringify, { + bullet: '*', + fences: true, + listItemIndent: '1', + }) + .use(remarkMdx) + .use(remarkFrontmatter, ['yaml']) + .parse(mdxText); + + return mdxAst; +}; diff --git a/codemods/utils/mdxast.js b/codemods/utils/mdxast.js index 4da641f8852..f36d4a07992 100644 --- a/codemods/utils/mdxast.js +++ b/codemods/utils/mdxast.js @@ -16,6 +16,9 @@ const isMdxElement = curry( (name, node) => isMdxBlockElement(name, node) || isMdxSpanElement(name, node) ); +const isEmptyParagraph = (el) => + el.type === 'paragraph' && el.children.length === 0; + const hasOnlyChild = curry( (name, node) => node.children.length === 1 && isType(name, node.children[0]) ); @@ -122,6 +125,12 @@ const containsImport = (tree, node) => { }); }; +const getNodeText = (node) => + node.children + .filter((child) => child.type === 'text') + .map((child) => child.value) + .join(); + module.exports = { addAttribute, containsImport, @@ -140,4 +149,6 @@ module.exports = { removeChild, isType, setAttribute, + getNodeText, + isEmptyParagraph, }; diff --git a/package.json b/package.json index 717e00d3512..70a37ab277c 100644 --- a/package.json +++ b/package.json @@ -226,7 +226,7 @@ "trigger-i18n-merge": "node scripts/actions/trigger-i18n-merge.js", "update-attribute-dictionary-json": "node scripts/actions/update-attribute-dictionary-json.mjs", "verify-install-page": "node scripts/verifyInstallPage.js", - "verify-mdx": "node scripts/verify_mdx.js", + "verify-mdx": "node scripts/verify-mdx/cli.mjs", "webdriver-desktop": "node scripts/actions/webdriver-desktop.mjs", "webdriver-mobile": "node scripts/actions/webdriver-mobile.mjs" }, diff --git a/scripts/utils/verify-mdx-utils.js b/scripts/utils/verify-mdx-utils.js deleted file mode 100644 index 1408ee0e0fb..00000000000 --- a/scripts/utils/verify-mdx-utils.js +++ /dev/null @@ -1,177 +0,0 @@ -/* eslint-disable no-console */ -const { - frontmatter, - validateFreshnessDate, - validateReleaseDate, -} = require('./frontmatter'); -const { verifyImageImports } = require('./image-import-utils.js'); -const mdx = require('@mdx-js/mdx'); -const fs = require('fs'); -const cliProgress = require('cli-progress'); -const colors = require('ansi-colors'); -const unified = require('unified'); -const visit = require('unist-util-visit'); -const remarkParse = require('remark-parse'); -const remarkMdx = require('remark-mdx'); -const remarkMdxjs = require('remark-mdxjs'); -const remarkStringify = require('remark-stringify'); -const remarkFrontmatter = require('remark-frontmatter'); - -const progressBar = new cliProgress.SingleBar( - { - format: - // eslint-disable-next-line prefer-template - 'MDX verification progress |' + - colors.cyan('{bar}') + - '| {percentage}% || {value} of {total} Files', - forceRedraw: true, - }, - cliProgress.Presets.rect -); - -const mdxErrors = []; - -const createAST = (mdxText) => { - const mdxAst = unified() - .use(remarkParse) - .use(remarkStringify, { - bullet: '*', - fences: true, - listItemIndent: '1', - }) - .use(remarkMdx) - .use(remarkMdxjs) - .use(remarkFrontmatter, ['yaml']) - .parse(mdxText); - - return mdxAst; -}; - -const verifyStepsChildren = (mdxAST) => { - let hasNonStepChild = false; - let nodeInfo; - visit(mdxAST, (node) => { - if (node.name !== 'Steps') { - return; - } - hasNonStepChild = node?.children?.some((el) => el.name !== 'Step'); - nodeInfo = node.position.start; - }); - return { hasNonStepChild, nodeInfo }; -}; - -const readFile = async (filePath) => { - let failed = false; - - const mdxText = fs.readFileSync(filePath, 'utf8'); - try { - const jsx = mdx.sync(mdxText); - const mdxAst = createAST(mdxText); - const { hasNonStepChild, nodeInfo } = verifyStepsChildren(mdxAst); - if (hasNonStepChild) { - const customError = { - reason: - ' component must only contain components as immediate children', - ...nodeInfo, - }; - throw customError; - } - } catch (exception) { - mdxErrors.push(`\x1b[35m MDX error:\x1b[0m ${filePath} \n - \x1b[31m${exception.reason}\x1b[0m - line: ${exception.line} - column: ${exception.column}`); - - failed = true; - } - const excludeFromFreshnessRegex = [ - 'src/content/docs/release-notes/', - 'src/content/eol/', - 'src/content/whats-new/', - 'src/content/docs/style-guide/', - 'src/content/docs/security/new-relic-security/security-bulletins/', - 'src/i18n/content/', - 'src/install/', - ]; - const shouldValidateFreshnessDate = !excludeFromFreshnessRegex.some( - (excludedPath) => filePath.includes(excludedPath) - ); - - const includeInReleaseDateRegex = /src\/(?!i18n).*(\/security-bulletins\/|\/release-notes\/|\/whats-new\/).*(? { - console.log( - `\n\n🔍\x1b[92mReading MDX files. This may take a few moments... \n\x1b[0m` - ); - progressBar.start(filePaths.length, 1); - - const allResults = await Promise.all( - filePaths.map((path, i) => { - progressBar.update(i + 1); - return readFile(path); - }) - ); - await progressBar.stop(); - - const results = allResults.filter(Boolean); - - console.log(`\n\n\x1b[35mFailed MDX file count:\x1b[0m ${results.length}`); - console.log(results); - - if (mdxErrors.length > 0) { - console.log(`\n\n❌ \x1b[33mFound ${mdxErrors.length} MDX errors\x1b[0m`); - mdxErrors.forEach((error, i) => - console.error(`\n\n\x1b[35mError ${i + 1}:\x1b[0m ${error}`) - ); - process.exitCode = 1; - } else { - console.log('\n\n🎉 No MDX issues found'); - } -}; - -const verifyImages = (filePaths) => { - const imageErrors = verifyImageImports(filePaths); - - if (imageErrors.length > 0) { - console.error( - `\n\n❌\x1b[33mFound ${imageErrors.length} image import errors\x1b[0m` - ); - imageErrors.forEach((error, i) => - console.error(`\n\n\x1b[35mError ${i + 1}:\x1b[0m ${error}`) - ); - console.error('\n\n-------------------------- '); - process.exitCode = 1; - } else { - console.log('\n\n🎉 No image import issues found'); - } -}; - -module.exports = { verifyImages, verifyMDX }; diff --git a/scripts/verify-mdx/cli.mjs b/scripts/verify-mdx/cli.mjs new file mode 100755 index 00000000000..108b201c46f --- /dev/null +++ b/scripts/verify-mdx/cli.mjs @@ -0,0 +1,120 @@ +#!/usr/bin/env node +import colors from 'ansi-colors'; +import { Command } from 'commander'; +import cliProgress from 'cli-progress'; +import { lstatSync } from 'fs'; +import { globSync } from 'glob10'; +import { join } from 'path'; + +import { ERROR_TYPES } from './error-types.mjs'; +import { verifyMDX } from './verify-mdx.mjs'; + +const __dirname = import.meta.dirname; + +const progressBar = new cliProgress.SingleBar( + { + format: + // eslint-disable-next-line prefer-template + 'MDX verification progress |' + + colors.cyan('{bar}') + + '| {percentage}% || {value} of {total} Files', + forceRedraw: true, + }, + cliProgress.Presets.rect +); + +const main = async (paths) => { + if (paths.length === 0) { + // if user did not supply paths, default to all + paths = globSync( + `${__dirname}/../../src{/content/**/*.mdx,/i18n/content/**/*.mdx}` + ); + } else { + // if any of the paths are directories, grab all their MDX files + paths = paths.flatMap((path) => + lstatSync(path).isDirectory() ? globSync(join(path, '**/*.mdx')) : path + ); + } + + console.log( + colors.greenBright( + '\n\n🔍Reading MDX files. This may take a few moments... \n' + ) + ); + progressBar.start(paths.length, 1); + + const allResults = await Promise.all( + paths.map(async (path, i) => { + const result = verifyMDX(path); + await progressBar.update(i + 1); + return result; + }) + ); + await progressBar.stop(); + + const resultsWithErrors = allResults.filter( + (result) => result.errors.length > 0 + ); + report(resultsWithErrors); + + if (resultsWithErrors.length > 0) { + process.exitCode = 1; + } +}; + +const program = new Command(); +program + .description('validate MDX content') + .argument( + '[paths...]', + 'a list of MDX files or directories to validate. if a directory is passed, check all MDX files inside it.' + ) + .action(main); +program.parse(); + +const report = (results) => { + console.log( + colors.magenta(`\n\nFailed MDX file count: `) + `${results.length}` + ); + + results.forEach((result) => { + result.errors.forEach((error) => { + if (error.type === ERROR_TYPES.FRONTMATTER_ERROR) { + console.log( + colors.magenta(` Frontmatter error: `) + + `${result.filePath} \n + ${colors.red(error.reason)} + ${error.mark.snippet}\n` + ); + } + + if (error.type === ERROR_TYPES.FRONTMATTER_FIELD_ERROR) { + console.log( + colors.magenta(` Frontmatter field error: `) + + `${result.filePath} \n + ${colors.red(error.reason)}\n` + ); + } + + if (error.type === ERROR_TYPES.MDX_ERROR) { + console.log( + colors.magenta(` MDX error: `) + + `${result.filePath} \n + ${colors.red(error.reason)} + line: ${error.line} + column: ${error.column}\n` + ); + } + + if (error.type === ERROR_TYPES.VALIDATION_ERROR) { + console.log( + colors.magenta(` MDX validation error: `) + + `${result.filePath} \n + ${colors.red(error.reason)} + line: ${error.line} + column: ${error.column}\n` + ); + } + }); + }); +}; diff --git a/scripts/verify-mdx/error-types.mjs b/scripts/verify-mdx/error-types.mjs new file mode 100644 index 00000000000..9b1ac788ea8 --- /dev/null +++ b/scripts/verify-mdx/error-types.mjs @@ -0,0 +1,6 @@ +export const ERROR_TYPES = { + MDX_ERROR: 'MDX_ERROR', + FRONTMATTER_ERROR: 'FRONTMATTER_ERROR', + FRONTMATTER_FIELD_ERROR: 'FRONTMATTER_FIELD_ERROR', + VALIDATION_ERROR: 'VALIDATION_ERROR', +}; diff --git a/scripts/verify-mdx/validators.mjs b/scripts/verify-mdx/validators.mjs new file mode 100644 index 00000000000..b59b5573fea --- /dev/null +++ b/scripts/verify-mdx/validators.mjs @@ -0,0 +1,203 @@ +import visit from 'unist-util-visit'; + +import { getNodeText, isEmptyParagraph } from '../../codemods/utils/mdxast.js'; +import { ERROR_TYPES } from './error-types.mjs'; + +export const validateSteps = (mdxAST) => { + const errors = []; + + visit( + mdxAST, + (node) => node.name === 'Steps', + (node) => { + const nonStepChildren = node?.children?.filter( + (child) => child.name !== 'Step' + ); + nonStepChildren.forEach((child) => { + const nodeInfo = child.position.start; + errors.push({ + ...nodeInfo, + reason: ` component must only contain components as immediate children but found ${nodeDescriptor( + child + )}`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + } + ); + + return errors; +}; + +export const validateTabs = (mdxAST) => { + const errors = []; + visit( + mdxAST, + (node) => node.name === 'Tabs', + (node) => { + const tabs = node; + const nonTabChildren = tabs?.children?.filter( + (child) => + child.name !== 'TabsBar' && + child.name !== 'TabsPages' && + !isEmptyParagraph(child) + ); + nonTabChildren.forEach((child) => { + const nodeInfo = child.position.start; + errors.push({ + ...nodeInfo, + reason: ` component must only contain and components as immediate children but found ${nodeDescriptor( + child + )}`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + + let tabsBar = node.children.filter((child) => child.name === 'TabsBar'); + let tabsPages = node.children.filter( + (child) => child.name === 'TabsPages' + ); + + if (tabsBar.length > 1) { + const nodeInfo = tabsBar.position.start; + errors.push({ + ...nodeInfo, + reason: ' can only have one child', + type: ERROR_TYPES.VALIDATION_ERROR, + }); + } + if (tabsPages.length > 1) { + const nodeInfo = tabsPages.position.start; + errors.push({ + ...nodeInfo, + message: ' can only have one child', + type: ERROR_TYPES.VALIDATION_ERROR, + }); + } + + tabsBar = tabsBar[0]; + tabsPages = tabsPages[0]; + + if (tabsBar == null) { + const nodeInfo = tabs.position.start; + errors.push({ + ...nodeInfo, + reason: + 'No found! component must contain as an immediate child', + type: ERROR_TYPES.VALIDATION_ERROR, + }); + } + if (tabsPages == null) { + const nodeInfo = tabs.position.start; + errors.push({ + ...nodeInfo, + reason: + 'No found! component must contain as an immediate child', + type: ERROR_TYPES.VALIDATION_ERROR, + }); + } + + if (tabsBar == null || tabsPages == null) { + return errors; + } + + const barItems = tabsBar.children.filter( + (node) => node.name === 'TabsBarItem' + ); + const pageItems = tabsPages.children.filter( + (node) => node.name === 'TabsPageItem' + ); + + const barItemIdAttrs = barItems + .flatMap((barItem) => barItem.attributes) + .filter((attribute) => attribute.name === 'id'); + + const barItemIdMap = new Map( + barItemIdAttrs.map((attribute) => [attribute.value, attribute]) + ); + + const pageItemIdAttrs = pageItems + .flatMap((pageItem) => pageItem.attributes) + .filter((attribute) => attribute.name === 'id'); + const pageItemIdMap = new Map( + pageItemIdAttrs.map((attribute) => [attribute.value, attribute]) + ); + + const barItemUniqIds = new Set(barItemIdMap.keys()); + const pageItemUniqIds = new Set(pageItemIdMap.keys()); + + const missingPageItemIds = barItemUniqIds.difference(pageItemUniqIds); + const missingBarItemIds = pageItemUniqIds.difference(barItemUniqIds); + + missingPageItemIds.forEach((id) => { + const nodeInfo = tabs.position?.start ?? {}; + errors.push({ + ...nodeInfo, + reason: `Found a with id "${id}" but no corresponding . Tabs components must come in pairs.`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + missingBarItemIds.forEach((id) => { + const nodeInfo = tabs.position?.start ?? {}; + errors.push({ + ...nodeInfo, + reason: `Found a with id "${id}" but no corresponding . Tabs components must come in pairs.`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + + const dupeBarItemIds = getDuplicateIdAttributes(barItemIdAttrs); + const dupePageItemIds = getDuplicateIdAttributes(pageItemIdAttrs); + + dupeBarItemIds.forEach((id) => { + const nodeInfo = tabs.position?.start ?? {}; + errors.push({ + ...nodeInfo, + reason: `Found a with a duplicate id "${id}". s must have unique ids.`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + dupePageItemIds.forEach((id) => { + const nodeInfo = tabs.position?.start ?? {}; + errors.push({ + ...nodeInfo, + reason: `Found a with a duplicate id "${id}". s must have unique ids.`, + type: ERROR_TYPES.VALIDATION_ERROR, + }); + }); + } + ); + + return errors; +}; + +const getDuplicateIdAttributes = (attributes) => { + const counts = new Map(); + attributes.forEach((attribute) => { + const id = attribute.value; + const currentCount = counts.get(id); + counts.set(id, (currentCount ?? 0) + 1); + }); + + return Array.from(counts.entries()) + .filter(([_id, count]) => count > 1) + .map(([id]) => id); +}; + +const nodeDescriptor = (node) => { + const isMdxElement = node.type === 'mdxBlockElement'; + if (isMdxElement) { + return `<${node.name}>`; + } + + if (node.type === 'paragraph') { + const text = getNodeText(node).replace('\n', ''); + let truncated = text.slice(0, 30); + if (truncated.length !== text.length) truncated += '...'; + return `"${truncated}"`; + } + + return node.type; +}; + +export const validators = [validateSteps, validateTabs]; diff --git a/scripts/verify-mdx/verify-mdx.mjs b/scripts/verify-mdx/verify-mdx.mjs new file mode 100644 index 00000000000..0942efaeebe --- /dev/null +++ b/scripts/verify-mdx/verify-mdx.mjs @@ -0,0 +1,93 @@ +import { readFileSync } from 'fs'; +import colors from 'ansi-colors'; + +import { createAST } from '../../codemods/utils/mdxast-esm.mjs'; +import { + frontmatter, + validateFreshnessDate, + validateReleaseDate, +} from '../utils/frontmatter.js'; +import { verifyImageImports } from '../utils/image-import-utils.js'; +import { ERROR_TYPES } from './error-types.mjs'; +import { validators } from './validators.mjs'; + +/** + * Given a file path, attempt to parse the MDX content to an AST + * and run our custom validators against it. + * + * @param {string[]} filePaths - the list of files to check + * @returns {object} an object containing the `filePath` and the list of errors + */ +const verifyMDX = (filePath) => { + const mdxText = readFileSync(filePath, 'utf8'); + let mdxAst; + let errors = []; + + try { + // we used to use `mdx.sync(mdxText)` from `@mdx-js/mdx` here too, + // but we get the same errors if trying to parse the AST fails, + // so this avoids duplicate work. + mdxAst = createAST(mdxText); + } catch (exception) { + errors.push({ + filePath: filePath, + reason: exception.reason, + line: exception.line, + column: exception.column, + type: ERROR_TYPES.MDX_ERROR, + }); + } + + if (mdxAst != null) { + errors = validators.flatMap((validator) => validator(mdxAst)); + } + + const shouldValidateFreshnessDate = !excludeFromFreshnessPaths.some( + (excludedPath) => filePath.includes(excludedPath) + ); + + const includeInReleaseDateRegex = /src\/(?!i18n).*(\/security-bulletins\/|\/release-notes\/|\/whats-new\/).*(? { - let filePaths = process.argv.slice(2); - - if (filePaths.length === 0) { - // if user did not supply paths, default to all - filePaths = glob.sync( - `${__dirname}/../src{/content/**/*.mdx,/i18n/content/**/*.mdx,/install/**/*.mdx}` - ); - // if user supplies a path that is a directory, get all files recursively - // assumes one path is supplied - } else if (!path.extname(filePaths[0])) { - // remove a possible trailing slash - const dirPath = filePaths[0].endsWith('/') - ? filePaths[0].slice(0, -1) - : filePaths[0]; - - filePaths = glob.sync(`${__dirname}/../${dirPath}/**/*.mdx`); - } - - await verifyMDX(filePaths); -}; - -main(); diff --git a/src/content/docs/accounts/accounts-billing/new-relic-one-pricing-billing/add-on-billing.mdx b/src/content/docs/accounts/accounts-billing/new-relic-one-pricing-billing/add-on-billing.mdx index 52405f6f578..119c71309d1 100644 --- a/src/content/docs/accounts/accounts-billing/new-relic-one-pricing-billing/add-on-billing.mdx +++ b/src/content/docs/accounts/accounts-billing/new-relic-one-pricing-billing/add-on-billing.mdx @@ -15,7 +15,7 @@ In addition to the primary billing factors of GB Ingested and billable users, yo Your use of CodeStream under Advanced Compute will incur CCU charges, regardless of user type. This means that free basic users can access Advanced Compute features and incur charges for Advanced CCUs. - + * **EU Data Center for Original Data or Data Plus**: This add-on applies to your data option (original Data or Data Plus) when you select the European Union as your data region, as available. * **Extended Retention for Original Data or Data Plus**: This add-on applies if you exceed the default length of time your data is retained. This applies to all your data—not just logs—and is a good option if you need to make a lot of small queries or make queries on large volumes of data. * **Live Archives**: Extend your log storage duration up to seven years. Live Archives also requires Advanced Compute. diff --git a/src/content/docs/agile-handbook/heroing/managing-the-github-boards.mdx b/src/content/docs/agile-handbook/heroing/managing-the-github-boards.mdx index 45ae936232d..4e89ef1c253 100644 --- a/src/content/docs/agile-handbook/heroing/managing-the-github-boards.mdx +++ b/src/content/docs/agile-handbook/heroing/managing-the-github-boards.mdx @@ -27,33 +27,42 @@ New issues and pull requests flow into this column automatically. As hero, you n 1. Determine if the pull request or issue is content-related. If it's an eng issue or pull request, you can just **Archive** it to remove it from the board. 2. Assign mandatory labels: - - - - - - - - - - - - - - - -
Label type - Required on - Description -
`content` - Issues and pull requests - Use this label to indicate an issue or pull request relates to content (versus the code of the site). -
`from_` - Issues and pull requests - Use this label to indicate who created the issue or pull request. Use `from_tw` when it's created by a docs writer, `from_internal` when it's created by a Relic, and `from_external` when it's from outside the company. -
`pg_` - Issues - Indicates which New Relic product group is associated with this issue.
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Label type + + Required on + + Description +
`content`Issues and pull requestsUse this label to indicate an issue or pull request relates to content (versus the code of the site).
`from_`Issues and pull requestsUse this label to indicate who created the issue or pull request. Use `from_tw` when it's created by a docs + writer, `from_internal` when it's created by a Relic, and `from_external` when it's from outside the + company.
`pg_`IssuesIndicates which New Relic product group is associated with this issue.
+ 3. Give the ticket an assignee (most likely you). 4. Move the ticket to the appropriate column. diff --git a/src/content/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx b/src/content/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx index 96aabf5b6da..5373f4c4ed7 100644 --- a/src/content/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx +++ b/src/content/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx @@ -99,10 +99,10 @@ This can be done through the Azure Portal or the Azure CLI. 4. Go to "Volume Mounts" tab and select the volume mount created in Step 2. The mount path should be `/mnt/instrumentation`. 5. Save your changes. -
- This should re-deploy the container app. Wait a few minutes for the init container to finish running. +
+
diff --git a/src/content/docs/browser/new-relic-browser/browser-pro-features/geography-webpage-metrics-location.mdx b/src/content/docs/browser/new-relic-browser/browser-pro-features/geography-webpage-metrics-location.mdx index 9e0e2f60ef1..112c9c557d8 100644 --- a/src/content/docs/browser/new-relic-browser/browser-pro-features/geography-webpage-metrics-location.mdx +++ b/src/content/docs/browser/new-relic-browser/browser-pro-features/geography-webpage-metrics-location.mdx @@ -39,7 +39,7 @@ Depending on the type of performance or usage data you select, the list next to To view or sort your browser monitoring performance data by location: -1. Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Browser > ** (select an app) **> Geography**. +1. Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Browser >** (select an app) **> Geography**. 2. Use the dropdown to select the type of performance or usage data you want to view, such as page load or unique session count, average time for various processes, largest contentful paint, interaction to next paint, cumulative layout shift, etc. 3. To drill down to a specific area, mouse over or select any area on the geographical map, or select any of the locations on the list. 4. To view specific performance data, [filter any attributes](#filter) below the funnel icon. diff --git a/src/content/docs/browser/new-relic-browser/lab/debug-errors.mdx b/src/content/docs/browser/new-relic-browser/lab/debug-errors.mdx index 5f7c951a3ee..08769d9cff0 100644 --- a/src/content/docs/browser/new-relic-browser/lab/debug-errors.mdx +++ b/src/content/docs/browser/new-relic-browser/lab/debug-errors.mdx @@ -52,11 +52,11 @@ The bad news is that you've confirmed there are some errors in your application. alt="Relicstaurants summary" src="/images/browser-lab-screenshot-relicstaurants-browser-app.webp" /> - - - Not seeing your data? Make sure you enabled browser monitoring and your load generator is running. - + + Not seeing your data? Make sure you enabled browser monitoring and your load generator is running. + + Notice **Page views with javascript errors**. diff --git a/src/content/docs/browser/new-relic-browser/page-load-timing-resources/instrumentation-browser-monitoring.mdx b/src/content/docs/browser/new-relic-browser/page-load-timing-resources/instrumentation-browser-monitoring.mdx index 738fc89e0c6..1e330772c93 100644 --- a/src/content/docs/browser/new-relic-browser/page-load-timing-resources/instrumentation-browser-monitoring.mdx +++ b/src/content/docs/browser/new-relic-browser/page-load-timing-resources/instrumentation-browser-monitoring.mdx @@ -69,7 +69,9 @@ We use these methods to collect the page load timing information: For browsers that do not implement the Navigation Timing Specification API, we rely on the [NREUM cookie](/docs/browser/new-relic-browser/miscellaneous/new-relic-cookies#nreum) and the browser agent to collect timing information. - For browser agent version 1220 and higher, [usage of session cookies has been deprecated](/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes/browser-agent-v1220/#removed-3rd-party-cookies), so this information is only relevant if you're using browser agent version 1216 and lower. + + + For browser agent version 1220 and higher, [usage of session cookies has been deprecated](/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes/browser-agent-v1220/#removed-3rd-party-cookies), so this information is only relevant if you're using browser agent version 1216 and lower. 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..3e43b66496e 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,9 @@ 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). diff --git a/src/content/docs/mdx-test-page.mdx b/src/content/docs/mdx-test-page.mdx index 1b48ed64798..b5063a06519 100644 --- a/src/content/docs/mdx-test-page.mdx +++ b/src/content/docs/mdx-test-page.mdx @@ -92,13 +92,13 @@ freshnessValidatedDate: 2023-08-02 - + Contents for tab one - + Contents for tab two - + Contents for tab three @@ -123,7 +123,7 @@ freshnessValidatedDate: 2023-08-02 - + This tab has an image. - + Contents for tab two - + This tab has a code block. ````python diff --git a/src/content/docs/mobile-monitoring/new-relic-mobile-flutter/monitor-your-flutter-application.mdx b/src/content/docs/mobile-monitoring/new-relic-mobile-flutter/monitor-your-flutter-application.mdx index e8d73abc8b2..d3c4e5e4cda 100644 --- a/src/content/docs/mobile-monitoring/new-relic-mobile-flutter/monitor-your-flutter-application.mdx +++ b/src/content/docs/mobile-monitoring/new-relic-mobile-flutter/monitor-your-flutter-application.mdx @@ -37,8 +37,9 @@ To install the Flutter agent, follow the guided install: * Flutter: For mobile apps deployed to both Android and iOS * Flutter iOS: For mobile apps deployed only to the iOS platform * Flutter Android: For mobile apps deployed to the Android platform - - Looking to monitor your web app? Check out [this page](/docs/browser/browser-integrations/flutter-web-integration). + + + Looking to monitor your web app? Check out [this page](/docs/browser/browser-integrations/flutter-web-integration). 3. Follow the instructions in the UI to complete installation. diff --git a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/configure-settings.mdx b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/configure-settings.mdx index 8344e988fd5..6c954f57918 100644 --- a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/configure-settings.mdx +++ b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/configure-settings.mdx @@ -339,7 +339,8 @@ FeatureFlag.DistributedTracing(false) - Enable or disable event persistence. + Enable or disable event persistence. + Event persistence is disabled by default. To enable it, add the following feature flag: diff --git a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx index 18f8da52642..3cdf688716e 100644 --- a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx +++ b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx @@ -875,81 +875,6 @@ RecordCustomEvent(string name, Dictionary attributes): bool; Dictionary dic = new Dictionary(); dic.Add("Unity Custom Attribute", "Data2"); -NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); -``` - - - - ## Syntax [#syntax] - -```csharp -RecordCustomEvent(string name, Dictionary attributes): bool; -``` - - ## Description [#description] - - Creates and records a [custom event](/docs/insights/new-relic-insights/adding-querying-data/custom-attributes-events-new-relic-mobile#What-are-events-in-New-Relic-Mobile), for use in NRQL. - - ## Parameters [#parameters] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parameter - - Type - - Description -
- `name` - - `string` - - Use this parameter to name the event. Using this parameter is equivalent to creating a `name` parameter. -
- `attributes` - - `Dictionary` - - Optional. A dictionary of key-value pairs that can be used to provide additional information about the custom event. -
- - ## Return values [#return-values] - - Returns `true` if the event is recorded successfully, or `false` if not. - - ## Example [#example] - -```csharp -Dictionary dic = new Dictionary(); -dic.Add("Unity Custom Attribute", "Data2"); - NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); ```
diff --git a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx index b64d9199e7f..bbc7349c430 100644 --- a/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx +++ b/src/content/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx @@ -545,7 +545,7 @@ NewRelicAgent.SetMaxEventPoolSize(1500); ```
- + ## Syntax [#syntax] ```cpp diff --git a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/AccountPicker.mdx b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/AccountPicker.mdx index 7e86f87c8f4..82b55467a49 100644 --- a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/AccountPicker.mdx +++ b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/AccountPicker.mdx @@ -168,7 +168,8 @@ class Example extends React.Component { Spacing property. Spacing is defined as a tuple of zero to four values, which follow the same conventions as CSS properties like `margin` or `padding`. To omit a value, use `SPACING_TYPE.OMIT`. - AccountPicker.SPACING_TYPE.EXTRA_LARGE, + + AccountPicker.SPACING_TYPE.EXTRA_LARGE, AccountPicker.SPACING_TYPE.LARGE, AccountPicker.SPACING_TYPE.MEDIUM, AccountPicker.SPACING_TYPE.NONE, diff --git a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Button.mdx b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Button.mdx index b4939b1ee49..f9a9390a295 100644 --- a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Button.mdx +++ b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Button.mdx @@ -633,7 +633,8 @@ Button.ICON_TYPE.DOCUMENTS__DOCUMENTS__FILE__A_ADD} We recommend you use the normal size button in almost all instances.Use the slim button sparingly as it diminishes the importance of the button. Do not use it solely to fit into a space, but consider increasing the space around a default button.The few cases to use a large button are in marketing-like material for your add-on: introducing it in a splash page or in a hero message. - Button.SIZE_TYPE.LARGE, + + Button.SIZE_TYPE.LARGE, Button.SIZE_TYPE.MEDIUM, Button.SIZE_TYPE.SMALL, @@ -647,7 +648,8 @@ Button.ICON_TYPE.DOCUMENTS__DOCUMENTS__FILE__A_ADD} Spacing property. Spacing is defined as a tuple of zero to four values, which follow the same conventions as CSS properties like `margin` or `padding`. To omit a value, use `SPACING_TYPE.OMIT`. - Button.SPACING_TYPE.EXTRA_LARGE, + + Button.SPACING_TYPE.EXTRA_LARGE, Button.SPACING_TYPE.LARGE, Button.SPACING_TYPE.MEDIUM, Button.SPACING_TYPE.NONE, diff --git a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Checkbox.mdx b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Checkbox.mdx index e53ec545945..4868815f1e0 100644 --- a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Checkbox.mdx +++ b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Checkbox.mdx @@ -205,7 +205,8 @@ class MyNerdlet extends React.PureComponent { Spacing property. Spacing is defined as a tuple of zero to four values, which follow the same conventions as CSS properties like `margin` or `padding`. To omit a value, use `SPACING_TYPE.OMIT`. - Checkbox.SPACING_TYPE.EXTRA_LARGE, + + Checkbox.SPACING_TYPE.EXTRA_LARGE, Checkbox.SPACING_TYPE.LARGE, Checkbox.SPACING_TYPE.MEDIUM, Checkbox.SPACING_TYPE.NONE, diff --git a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Dropdown.mdx b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Dropdown.mdx index 54284d276c8..8dd0e674282 100644 --- a/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Dropdown.mdx +++ b/src/content/docs/new-relic-solutions/build-nr-ui/sdk-component/controls/Dropdown.mdx @@ -619,7 +619,8 @@ class SearchDropdown extends React.Component { Dropdown.ICON_TYPE.PROFILES**USERS**USER, Dropdown.ICON_TYPE.PROFILES**USERS**USER**A_ADD, Dropdown.ICON_TYPE.PROFILES**USERS**USER**A_EDIT, - Dropdown.ICON_TYPE.PROFILES**USERS**USER\_\_A_REMOVE, + Dropdown.ICON_TYPE.PROFILES**USERS**USER\_\_A_REMOVE, + @@ -831,7 +832,8 @@ class SearchDropdown extends React.Component { Specifies the placement of the dropdown relative to the dropdown trigger. Default display is on the bottom start, but you can also choose to display it from the bottom end. - Dropdown.PLACEMENT_TYPE.BOTTOM_END, + + Dropdown.PLACEMENT_TYPE.BOTTOM_END, Dropdown.PLACEMENT_TYPE.BOTTOM_START @@ -884,7 +886,8 @@ class SearchDropdown extends React.Component { Spacing property. Spacing is defined as a tuple of zero to four values, which follow the same conventions as CSS properties like `margin` or `padding`. To omit a value, use `SPACING_TYPE.OMIT`. - Dropdown.SPACING_TYPE.EXTRA_LARGE, + + Dropdown.SPACING_TYPE.EXTRA_LARGE, Dropdown.SPACING_TYPE.LARGE, Dropdown.SPACING_TYPE.MEDIUM, Dropdown.SPACING_TYPE.NONE, diff --git a/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx b/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx index 490810bb69c..b8b145f9045 100644 --- a/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx +++ b/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx @@ -67,9 +67,11 @@ We think you'll find these features downright invaluable. Let's get started! alt="A screenshot showing the use of facet bucketing in queries" src="/images/queries-nrql_screenshot-crop-tutorial4-2.webp" /> + + With this, you've now learned all aggregation functions that curently exist in NRQL! You can slice and dice your data like a pro. If you think an aggregation ability is missing from NRQL, let your account team know: we're always looking for the next killer functionality that you might need. +
- With this, you've now learned all aggregation functions that curently exist in NRQL! You can slice and dice your data like a pro. If you think an aggregation ability is missing from NRQL, let your account team know: we're always looking for the next killer functionality that you might need. ### Use advanced math functions @@ -137,11 +139,13 @@ NRQL also supports more advanced mathematical functions for those who need to ge alt="A screenshot showing a query using the advaned math features pow, SQRT, and EXP" src="/images/queries-nrql_screenshot-crop-tutorial4-5.webp" /> + - In this lesson, you learned about smoothing out your event data. `round()`/`ceil()`/`floor()` let you round in whichever manner you like. Clamping lets you put bounds on the data, and the advanced mathematic tools for logarithm, square root, power and exponential all offer further control to manipulate data as you need to. Next, you'll learn about how to discover events and attributes. + In this lesson, you learned about smoothing out your event data. `round()`/`ceil()`/`floor()` let you round in whichever manner you like. Clamping lets you put bounds on the data, and the advanced mathematic tools for logarithm, square root, power and exponential all offer further control to manipulate data as you need to. Next, you'll learn about how to discover events and attributes. + ### Discover events and attributes Discovering events and attributes can help answer questions about your available data before querying it and assist with automation! Let's take a moment to explore this powerful utility. @@ -176,9 +180,11 @@ Discovering events and attributes can help answer questions about your available alt="A screenshot showing the result of a keyset query" src="/images/queries-nrql_screenshot-crop-tutorial4-7.webp" /> + + These features help you discover changes in event types and attributes. More DevOps engineers use these functionalities to wrap up jobs, or even quickly automate them. Next, you'll learn how to filter data with Regex. + - These features help you discover changes in event types and attributes. More DevOps engineers use these functionalities to wrap up jobs, or even quickly automate them. Next, you'll learn how to filter data with Regex. ### Filter with regex @@ -223,9 +229,11 @@ Discovering events and attributes can help answer questions about your available The regular expression engine uses RE2 syntax. If you need to delete characters, you may need to use the double backslashing escape sequences. (e.g. `\\`). Remember that `RLIKE` has inherently more complexity and less performance than `LIKE`. Only use it when `LIKE` and other filtering functionality fails to fit your needs. + + Regular expression support allows for near-infinite pattern matching possibilities. If you are already a regex guru, you know the power this adds to NRQL. But if you're not, don't worry! Regex has many resources available to reference online. Now that you've learned how to use regex with NRQL, next on the list is using nested aggregation. + - Regular expression support allows for near-infinite pattern matching possibilities. If you are already a regex guru, you know the power this adds to NRQL. But if you're not, don't worry! Regex has many resources available to reference online. Now that you've learned how to use regex with NRQL, next on the list is using nested aggregation. ### Use nested aggregation diff --git a/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx b/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx index 902bbcbebe8..3fc0de65952 100644 --- a/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx +++ b/src/content/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx @@ -221,11 +221,13 @@ In the next step, you'll learn how to use NRQL to label your attributes. AS 'Non-External Response Time' FROM Transaction ``` - - This may seem merely aesthetic, but when you build detailed dashboards, it's important to clearly label your data. This ensures zero ambiguity for anyone viewing your widgets, billboards, line charts or tables. + This may seem merely aesthetic, but when you build detailed dashboards, it's important to clearly label your data. This ensures zero ambiguity for anyone viewing your widgets, billboards, line charts or tables. + + We'll refer back to this in an upcoming lesson about grouping, to explore how `AS` can create clean result sets in more advanced scenarios too. Next, you'll learn how to compare data in different windows of time. + + - We'll refer back to this in an upcoming lesson about grouping, to explore how `AS` can create clean result sets in more advanced scenarios too. Next, you'll learn how to compare data in different windows of time. ### Compare time windows @@ -292,9 +294,11 @@ In the next step, you'll learn how to use NRQL to label your attributes. alt="A screenshot displaying a query using the compare with function using a relative time series" src="/images/queries-nrql_screenshot-crop-tutorial3-7.webp" /> + + Comparisons can quickly answer questions about what's happening in your applications. Are different sales, performance, MTTR, or error values up or down compared to last week? And, if you're investigating an issue, you'll find it useful to compare a period of problemantic performance to a period of normal performance. + - Comparisons can quickly answer questions about what's happening in your applications. Are different sales, performance, MTTR, or error values up or down compared to last week? And, if you're investigating an issue, you'll find it useful to compare a period of problemantic performance to a period of normal performance. ### Use wildcard filters diff --git a/src/content/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard.mdx b/src/content/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard.mdx index 2b7eaef6f06..7ce6c815dfb 100644 --- a/src/content/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard.mdx +++ b/src/content/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard.mdx @@ -61,9 +61,7 @@ Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-
Go to - **[one.newrelic.com > All - capabilities](https://one.newrelic.com/all-capabilities) > Dashboards** - + **[one.newrelic.com > Allcapabilities](https://one.newrelic.com/all-capabilities) > Dashboards** to open the Dashboard index.
diff --git a/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-870.mdx b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-870.mdx index 5caf59e9d58..c5836e987d6 100644 --- a/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-870.mdx +++ b/src/content/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-870.mdx @@ -18,25 +18,33 @@ security: [] Previously, the agent was not able to record events and metrics inside Threads created inside of an already running transaction. This release includes 2 new configuration options to support multithreaded applications to automatically instrument threads. A new configuration option,`instrumentation.thread.tracing` (disabled by default), has been introduced that, when enabled, will allow the agent to insert New Relic tracing inside of all Threads created by an application. To support applications that only want some threads instrumented by New Relic, a new class is available, `NewRelic::TracedThread`, that will create a thread that includes New Relic instrumentation, see our [API documentation](https://www.rubydoc.info/gems/newrelic_rpm/NewRelic) for more details. - New configuration options included in this release: - - - - +New configuration options included in this release: + +
Configuration nameDefaultBehavior
+ + + + + + - - - - - - - - -
Configuration nameDefaultBehavior
`instrumentation.thread``auto` (enabled)Allows the agent to correctly nest spans - inside of an asyncronous - transaction.
`instrumentation.thread.tracing``false` (disabled)Automatically add tracing to all Threads - created in the application. - This may be enabled by default in a future release.
+ + + `instrumentation.thread` + `auto` (enabled) + Allows the agent to correctly nest spans + inside of an asyncronous + transaction. + + + `instrumentation.thread.tracing` + `false` (disabled) + Automatically add tracing to all Threads + created in the application. + This may be enabled by default in a future release. + + + We'd like to thank @mikeantonelli for sharing a gist with us that provided our team with an entry point for this feature. @@ -46,87 +54,118 @@ security: [] * **Added updated configuration options for transaction events and deprecated previous configs** - This release deprecates the following instrumentation: - - - +This release deprecates the following instrumentation: + +
DeprecatedReplacement
+ + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DeprecatedReplacement
ActiveMerchant 1.64.0 or lowerActiveMerchant 1.65.0 or higher
ActiveRecord 3.2.22.5 or lowerActiveRecord 4.0.0 or higher
Acts As Solr (all versions)none
Authlogic (all versions)none
Bunny 2.6.7 or lowerBunny 2.7.0 or higher
Dalli 2.7.6 or lowerDalli 2.7.7 or higher
DataMapper (all versions)none
Delayed Job 4.1.2 or lowerDelayed Job 4.1.3 or higher
Excon 0.55.0 or lowerExcon 0.56.0 or higher
Grape 0.19.1 or lowerGrape 0.19.2 or higher
HTTPClient 2.8.2.4 or lowerHTTPClient 2.8.3
HTTP.rb 2.2.1 or lowerHTTP.rb 2.2.2 or higher
Mongo 2.4.0 or lowerMongo 2.4.1 or higher
Padrino 0.14.4 or lowerPadrino 0.15.0 or higher
Passenger 5.1.2 or lowerPassenger 5.1.3 or higher
Puma 3.8.2 or lowerPuma 3.9.0 or higher
Rack 1.6.7 or lowerRack 1.6.8 or higher
Rails 3.2.22.5 or lowerRails 4.0.0 or higher
Rainbows (all versions)none
Sequel 4.44.0 or lowerSequel 4.45.0 or higher
Sidekiq 4.2.10 or lowerSidekiq 5.0.0 or higher
Sinatra 1.4.8 or lowerSinatra 2.0.0 or higher
Sunspot (all versions)none
Typhoeus 1.1.2 or lowerTyphoeus 1.3.0 or higher
Unicorn 5.2.0 or lowerUnicorn 5.3.0 or higher
+ + + ActiveMerchant 1.64.0 or lower + ActiveMerchant 1.65.0 or higher + + + ActiveRecord 3.2.22.5 or lower + ActiveRecord 4.0.0 or higher + + + Acts As Solr (all versions) + none + + + Authlogic (all versions) + none + + + Bunny 2.6.7 or lower + Bunny 2.7.0 or higher + + + Dalli 2.7.6 or lower + Dalli 2.7.7 or higher + + + DataMapper (all versions) + none + + + Delayed Job 4.1.2 or lower + Delayed Job 4.1.3 or higher + + + Excon 0.55.0 or lower + Excon 0.56.0 or higher + + + Grape 0.19.1 or lower + Grape 0.19.2 or higher + + + HTTPClient 2.8.2.4 or lower + HTTPClient 2.8.3 + + + HTTP.rb 2.2.1 or lower + HTTP.rb 2.2.2 or higher + + + Mongo 2.4.0 or lower + Mongo 2.4.1 or higher + + + Padrino 0.14.4 or lower + Padrino 0.15.0 or higher + + + Passenger 5.1.2 or lower + Passenger 5.1.3 or higher + + + Puma 3.8.2 or lower + Puma 3.9.0 or higher + + + Rack 1.6.7 or lower + Rack 1.6.8 or higher + + + Rails 3.2.22.5 or lower + Rails 4.0.0 or higher + + + Rainbows (all versions) + none + + + Sequel 4.44.0 or lower + Sequel 4.45.0 or higher + + + Sidekiq 4.2.10 or lower + Sidekiq 5.0.0 or higher + + + Sinatra 1.4.8 or lower + Sinatra 2.0.0 or higher + + + Sunspot (all versions) + none + + + Typhoeus 1.1.2 or lower + Typhoeus 1.3.0 or higher + + + Unicorn 5.2.0 or lower + Unicorn 5.3.0 or higher + + + For the gems with deprecated versions, we will no longer test those versions in our multiverse suite. They may, however, still be compatible with the agent. We will no longer fix bug reports for issues with these versions of the gem. diff --git a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx b/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx index 17b66948fe8..04c54dba2b7 100644 --- a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx +++ b/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx @@ -126,7 +126,7 @@ Here's a guide to adding our pre-built layer to your code. Try out [working example](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/containerized-lambda/nodejs-sam-example) of a Node.js containerized Lambda function using SAM. - + ```dockerfile # Define the New Relic pre-built image FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer diff --git a/src/i18n/content/es/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx b/src/i18n/content/es/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx index 9c55665224b..d4f89915d92 100644 --- a/src/i18n/content/es/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx +++ b/src/i18n/content/es/docs/apm/agents/nodejs-agent/getting-started/compatibility-requirements-nodejs-agent.mdx @@ -733,64 +733,98 @@ Para marcos o bibliotecas no compatibles, deberá instrumentar el agente usted m id="messages" title="Cola de mensajes" > - [La instrumentación de la cola de mensajes](/docs/agents/nodejs-agent/troubleshooting/troubleshoot-message-consumers) solo está disponible con el [agente New Relic Node.js v2 o superior](/docs/release-notes/agent-release-notes/nodejs-release-notes). Instrumentación de cola de mensajes actualmente soportada: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cola de mensajes - `npm` - Nombre del módulo - Versión mínima del módulo - Versión mínima del agente -
[Amqplib](https://www.npmjs.com/package/amqplib) - `amqplib` - 0.5.0 - 2.0.0 -
[Amazon SQS - Amazon SDK V2](https://www.npmjs.com/package/aws-sdk) - `@aws-sdk/client-sqs` - @aws-sdk 2.2.48 - 6.2.0 -
[Amazon SQS - Amazon SDK V3](https://github.com/aws/aws-sdk-js-v3) - `@aws-sdk/client-sqs` - @aws-sdk v3.0.0 - 8.7.1 -
[Amazon SNS - Amazon SDK V2](https://www.npmjs.com/package/aws-sdk) - `@aws-sdk/client-sns` - @aws-sdk 2.2.48 - 6.2.0 -
[Amazon SNS - Amazon SDK V3](https://github.com/aws/aws-sdk-js-v3) - `@aws-sdk/client-sns` - @aws-sdk v3.0.0 - 8.7.1 -
+ [La instrumentación de la cola de mensajes](/docs/agents/nodejs-agent/troubleshooting/troubleshoot-message-consumers) solo está disponible con el [agente New Relic Node.js v2 o superior](/docs/release-notes/agent-release-notes/nodejs-release-notes). Instrumentación de cola de mensajes actualmente soportada: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Cola de mensajes + + `npm` + Nombre del módulo + + Versión mínima del módulo + + Versión mínima del agente +
+ [Amqplib](https://www.npmjs.com/package/amqplib) + + `amqplib` + + 0.5.0 + + 2.0.0 +
+ [Amazon SQS - Amazon SDK V2](https://www.npmjs.com/package/aws-sdk) + + `@aws-sdk/client-sqs` + + @aws-sdk 2.2.48 + + 6.2.0 +
+ [Amazon SQS - Amazon SDK V3](https://github.com/aws/aws-sdk-js-v3) + + `@aws-sdk/client-sqs` + + @aws-sdk v3.0.0 + + 8.7.1 +
+ [Amazon SNS - Amazon SDK V2](https://www.npmjs.com/package/aws-sdk) + + `@aws-sdk/client-sns` + + @aws-sdk 2.2.48 + + 6.2.0 +
+ [Amazon SNS - Amazon SDK V3](https://github.com/aws/aws-sdk-js-v3) + + `@aws-sdk/client-sns` + + @aws-sdk v3.0.0 + + 8.7.1 +
Para otras bibliotecas de cola de mensajes, utilice [instrumentación personalizada](/docs/agents/nodejs-agent/supported-features/nodejs-custom-instrumentation#message-client). diff --git a/src/i18n/content/es/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx b/src/i18n/content/es/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx index 4235987ccf3..c8654f312a1 100644 --- a/src/i18n/content/es/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx +++ b/src/i18n/content/es/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx @@ -100,9 +100,9 @@ Esto se puede hacer a través del Portal de Azure o la CLI de Azure. 4. Vaya a la pestaña "Montajes de volumen" y seleccione el montaje de volumen creado en el Paso 2. La ruta de montaje debe ser `/mnt/instrumentation`. 5. Guarde sus cambios. - - Esto debería volver a desplegar la aplicación contenedor. Espere unos minutos hasta que el contenedor de inicio termine de ejecutar. + Esto debería volver a desplegar la aplicación contenedor. Espere unos minutos hasta que el contenedor de inicio termine de ejecutar. + diff --git a/src/i18n/content/es/docs/browser/new-relic-browser/lab/debug-errors.mdx b/src/i18n/content/es/docs/browser/new-relic-browser/lab/debug-errors.mdx index 36f0e0e356a..f4406bc2abe 100644 --- a/src/i18n/content/es/docs/browser/new-relic-browser/lab/debug-errors.mdx +++ b/src/i18n/content/es/docs/browser/new-relic-browser/lab/debug-errors.mdx @@ -53,11 +53,11 @@ La mala noticia es que ha confirmado que hay algunos errores en su aplicación. alt="Relicstaurants summary" src="/images/browser-lab-screenshot-relicstaurants-browser-app.webp" /> - - - ¿No ves tus datos? Asegúrese de haber habilitado el monitoreo del navegador y de que su generador de carga esté ejecutándose. - + + ¿No ves tus datos? Asegúrese de haber habilitado el monitoreo del navegador y de que su generador de carga esté ejecutándose. + + Aviso **Page views with javascript errors**. diff --git a/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx b/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx index 01ffac3d955..790b5f54d78 100644 --- a/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx +++ b/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx @@ -873,81 +873,6 @@ translationType: machine ```
- - ## Sintaxis [#syntax] - - ```csharp - RecordCustomEvent(string name, Dictionary attributes): bool; - ``` - - ## Descripción [#description] - - Crea y registra un [evento personalizado](/docs/insights/new-relic-insights/adding-querying-data/custom-attributes-events-new-relic-mobile#What-are-events-in-New-Relic-Mobile), para usar en NRQL. - - ## Parámetros [#parameters] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parámetro - - Tipo - - Descripción -
- `name` - - `string` - - Utilice este parámetro para nombrar el evento. Usar este parámetro equivale a crear un parámetro `name` . -
- `attributes` - - `Dictionary` - - Opcional. Un diccionario de pares de valores principales que se puede utilizar para proporcionar información adicional sobre el evento personalizado. -
- - ## Valores de retorno [#return-values] - - Devuelve `true` si el evento se registra correctamente, o `false` en caso contrario. - - ## Ejemplo [#example] - - ```csharp - Dictionary dic = new Dictionary(); - dic.Add("Unity Custom Attribute", "Data2"); - - NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); - ``` -
- ## Sintaxis [#syntax] diff --git a/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx b/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx index a0590a30eb8..4478b93de72 100644 --- a/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx +++ b/src/i18n/content/es/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx @@ -537,7 +537,7 @@ translationType: machine ``` - + ## Sintaxis [#syntax] ```cpp diff --git a/src/i18n/content/es/docs/nrql/nrql-syntax-clauses-functions.mdx b/src/i18n/content/es/docs/nrql/nrql-syntax-clauses-functions.mdx index 7ea25458820..da99aad99de 100644 --- a/src/i18n/content/es/docs/nrql/nrql-syntax-clauses-functions.mdx +++ b/src/i18n/content/es/docs/nrql/nrql-syntax-clauses-functions.mdx @@ -3313,7 +3313,8 @@ Utilice funciones no agregadoras para datos no numéricos en la consulta NRQL .
lower(str) - ejemplo + + ejemplo
@@ -3520,7 +3521,8 @@ Utilice funciones no agregadoras para datos no numéricos en la consulta NRQL .
position(str, substr \[, occurrence]) - ejemplo + + ejemplo
@@ -3633,7 +3635,8 @@ Utilice funciones no agregadoras para datos no numéricos en la consulta NRQL .
substring(str, start \[, length]) - ejemplo + + ejemplo
@@ -4092,7 +4095,8 @@ Utilice funciones no agregadoras para datos no numéricos en la consulta NRQL .
upper(str) - ejemplo + + ejemplo
diff --git a/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx b/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx index 56cce0aae6c..921a5a27f78 100644 --- a/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx +++ b/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx @@ -66,9 +66,9 @@ Creemos que estas características le resultarán absolutamente invaluables. ¡E alt="A screenshot showing the use of facet bucketing in queries" src="/images/queries-nrql_screenshot-crop-tutorial4-2.webp" /> - - ¡Con esto, ya ha aprendido todas las funciones de agregación que existen actualmente en NRQL! Puede dividir y desmenuzar sus datos como un profesional. Si cree que falta una capacidad de agregación en NRQL, infórmeselo a su equipo de cuentas: siempre estamos buscando la próxima funcionalidad excelente que pueda necesitar. + ¡Con esto, ya ha aprendido todas las funciones de agregación que existen actualmente en NRQL! Puede dividir y desmenuzar sus datos como un profesional. Si cree que falta una capacidad de agregación en NRQL, infórmeselo a su equipo de cuentas: siempre estamos buscando la próxima funcionalidad excelente que pueda necesitar. + ### Utilice funciones matemáticas avanzadas @@ -136,9 +136,9 @@ NRQL también admite funciones matemáticas más avanzadas para aquellos que nec alt="A screenshot showing a query using the advaned math features pow, SQRT, and EXP" src="/images/queries-nrql_screenshot-crop-tutorial4-5.webp" /> - - En esta lección, aprendió a suavizar los datos de su evento. `round()`/`ceil()`/`floor()` te permiten redondear como quieras. La sujeción le permite poner límites a los datos, y las herramientas matemáticas avanzadas para logaritmo, raíz cuadrada, potencia y exponencial ofrecen mayor control para manipular los datos según sea necesario. A continuación, aprenderá cómo descubrir eventos y atributos. + En esta lección, aprendió a suavizar los datos de su evento. `round()`/`ceil()`/`floor()` te permiten redondear como quieras. La sujeción le permite poner límites a los datos, y las herramientas matemáticas avanzadas para logaritmo, raíz cuadrada, potencia y exponencial ofrecen mayor control para manipular los datos según sea necesario. A continuación, aprenderá cómo descubrir eventos y atributos. + ### Descubra evento y atributo @@ -175,9 +175,9 @@ NRQL también admite funciones matemáticas más avanzadas para aquellos que nec alt="A screenshot showing the result of a keyset query" src="/images/queries-nrql_screenshot-crop-tutorial4-7.webp" /> - - Estas características lo ayudan a descubrir cambios en los tipos de eventos y atributos. Más ingenieros de DevOps utilizan estas funcionalidades para finalizar trabajos o incluso automatizarlos rápidamente. A continuación, aprenderá cómo filtrar datos con Regex. + Estas características lo ayudan a descubrir cambios en los tipos de eventos y atributos. Más ingenieros de DevOps utilizan estas funcionalidades para finalizar trabajos o incluso automatizarlos rápidamente. A continuación, aprenderá cómo filtrar datos con Regex. + ### Filtrar con expresiones regulares @@ -222,9 +222,9 @@ NRQL también admite funciones matemáticas más avanzadas para aquellos que nec El motor de expresiones regulares utiliza la sintaxis RE2. Si necesita eliminar caracteres, es posible que necesite utilizar secuencias de escape de doble barra invertida. (p.ej \\). Recuerde que `RLIKE` tiene inherentemente más complejidad y menos rendimiento que `LIKE`. Úselo únicamente cuando `LIKE` y otras funciones de filtrado no se ajusten a sus necesidades. - - El soporte de expresiones regulares permite posibilidades de coincidencia de patrones casi infinitas. Si ya eres un gurú de las expresiones regulares, sabes el poder que esto añade a NRQL. Pero si no es así, ¡no te preocupes! Regex tiene muchos recursos disponibles para consultar en línea. Ahora que ha aprendido a usar expresiones regulares con NRQL, el siguiente en la lista es usar agregación anidada. + El soporte de expresiones regulares permite posibilidades de coincidencia de patrones casi infinitas. Si ya eres un gurú de las expresiones regulares, sabes el poder que esto añade a NRQL. Pero si no es así, ¡no te preocupes! Regex tiene muchos recursos disponibles para consultar en línea. Ahora que ha aprendido a usar expresiones regulares con NRQL, el siguiente en la lista es usar agregación anidada. + ### Usar agregación anidada diff --git a/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx b/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx index e3608f62a96..a56342f2ca6 100644 --- a/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx +++ b/src/i18n/content/es/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx @@ -200,11 +200,11 @@ En el siguiente paso, aprenderá cómo usar NRQL para etiquetar su atributo. AS 'Non-External Response Time' FROM Transaction ``` - - Esto puede parecer meramente estético, pero cuando creas un panel detallado, es importante etiquetar claramente tus datos. Esto garantiza cero ambigüedad para cualquiera que vea su widget, vallas publicitarias, gráficos de líneas o tablas. + Esto puede parecer meramente estético, pero cuando creas un panel detallado, es importante etiquetar claramente tus datos. Esto garantiza cero ambigüedad para cualquiera que vea su widget, vallas publicitarias, gráficos de líneas o tablas. - Volveremos a consultar esto en una próxima lección sobre agrupación para explorar cómo `AS` puede crear conjuntos de resultados limpios también en escenarios más avanzados. A continuación, aprenderá a comparar datos en diferentes períodos de tiempo. + Volveremos a consultar esto en una próxima lección sobre agrupación para explorar cómo `AS` puede crear conjuntos de resultados limpios también en escenarios más avanzados. A continuación, aprenderá a comparar datos en diferentes períodos de tiempo. + ### Comparar ventanas de tiempo @@ -259,9 +259,9 @@ En el siguiente paso, aprenderá cómo usar NRQL para etiquetar su atributo. ``` A screenshot displaying a query using the compare with function using a relative time series - Las comparaciones pueden responder rápidamente preguntas sobre lo que sucede en su aplicación. ¿Los diferentes valores de ventas, rendimiento, MTTR o error aumentaron o disminuyeron en comparación con la semana pasada? Y, si está investigando un problema, le resultará útil comparar un período de rendimiento problemático con un período de rendimiento normal. + ### Usar filtros comodín diff --git a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx b/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx index 228e8229a98..c7d242da734 100644 --- a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx +++ b/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx @@ -125,7 +125,7 @@ Aquí hay una guía para agregar nuestra capa prediseñada a su código. Pruebe [un ejemplo práctico](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/containerized-lambda/nodejs-sam-example) de una función Lambda en contenedor de Node.js usando SAM.
- + ```dockerfile # Define the New Relic pre-built image FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer diff --git a/src/i18n/content/jp/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx b/src/i18n/content/jp/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx index ae2254f7376..fac0d4f0513 100644 --- a/src/i18n/content/jp/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx +++ b/src/i18n/content/jp/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx @@ -101,9 +101,9 @@ translationType: machine 5. 変更を保存します。 - - これにより、コンテナ アプリが再デプロイされます。 初期化コンテナの実行が完了するまで数分間待ちます。 + + これにより、コンテナ アプリが再デプロイされます。 初期化コンテナの実行が完了するまで数分間待ちます。 diff --git a/src/i18n/content/jp/docs/browser/new-relic-browser/lab/debug-errors.mdx b/src/i18n/content/jp/docs/browser/new-relic-browser/lab/debug-errors.mdx index d1d79ab4850..664ff52c8b5 100644 --- a/src/i18n/content/jp/docs/browser/new-relic-browser/lab/debug-errors.mdx +++ b/src/i18n/content/jp/docs/browser/new-relic-browser/lab/debug-errors.mdx @@ -55,11 +55,11 @@ translationType: machine /> - - データが表示されませんか?ブラウザーの監視が有効になっており、Load Generator が実行されていることを確認してください。 - - + + データが表示されませんか?ブラウザーの監視が有効になっており、Load Generator が実行されていることを確認してください。 + + **Page views with javascript errors**通知します。 - - ## 構文 [#syntax] - - ```csharp - RecordCustomEvent(string name, Dictionary attributes): bool; - ``` - - ## 説明 [#description] - - NRQL で使用する [カスタム イベント](/docs/insights/new-relic-insights/adding-querying-data/custom-attributes-events-new-relic-mobile#What-are-events-in-New-Relic-Mobile)を作成して記録します。 - - ## パラメーター [#parameters] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- パラメータ - - タイプ - - 説明 -
- `name` - - `string` - - このパラメータを使用してイベントに名前を付けます。このパラメータを使用することは、 `name`パラメータを作成することと同じです。 -
- `attributes` - - `Dictionary` - - オプション。カスタム イベントに関する追加情報を提供するために使用できるキーと値のペアの辞書。 -
- - ## 戻り値 [#return-values] - - イベントが正常に記録された場合は`true`を返し、そうでない場合は`false`を返します。 - - ## 例 [#example] - - ```csharp - Dictionary dic = new Dictionary(); - dic.Add("Unity Custom Attribute", "Data2"); - - NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); - ``` -
- ## 構文 [#syntax] diff --git a/src/i18n/content/jp/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx b/src/i18n/content/jp/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx index d3831bd1011..1b7929bfc87 100644 --- a/src/i18n/content/jp/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx +++ b/src/i18n/content/jp/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx @@ -537,7 +537,7 @@ translationType: machine ``` - + ## 構文 [#syntax] ```cpp diff --git a/src/i18n/content/jp/docs/nrql/nrql-syntax-clauses-functions.mdx b/src/i18n/content/jp/docs/nrql/nrql-syntax-clauses-functions.mdx index 128f1b40531..b4095d596b0 100644 --- a/src/i18n/content/jp/docs/nrql/nrql-syntax-clauses-functions.mdx +++ b/src/i18n/content/jp/docs/nrql/nrql-syntax-clauses-functions.mdx @@ -3317,7 +3317,8 @@ NRQLクエリ内の非数値データには非集計関数を使用します。
lower(str) - 例 + + 例
@@ -3524,7 +3525,8 @@ NRQLクエリ内の非数値データには非集計関数を使用します。
position(str, substr \[, occurrence]) - 例 + + 例
@@ -3637,7 +3639,8 @@ NRQLクエリ内の非数値データには非集計関数を使用します。
substring(str, start \[, length]) - 例 + + 例
@@ -4096,7 +4099,8 @@ NRQLクエリ内の非数値データには非集計関数を使用します。
upper(str) - 例 + + 例
diff --git a/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx b/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx index 78d551e4df2..30c8767dce1 100644 --- a/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx +++ b/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx @@ -59,10 +59,10 @@ translationType: machine A screenshot showing the use of facet bucketing in queries - - これで、NRQL に現在存在するすべての集計関数を学習したことになります。プロのようにデータを細かく分割できます。NRQL に集約機能が欠けていると思われる場合は、アカウント チームに知らせてください。私たちは、お客様が必要とする可能性のある次のキラー機能を常に探しています。 +これで、NRQL に現在存在するすべての集計関数を学習したことになります。プロのようにデータを細かく分割できます。NRQL に集約機能が欠けていると思われる場合は、アカウント チームに知らせてください。私たちは、お客様が必要とする可能性のある次のキラー機能を常に探しています。 + ### 高度な数学関数を使用する NRQL は、データを深く理解する必要がある人のために、より高度な数学関数もサポートしています。 これらの関数は、値を X 乗に外挿したり、平方根を見つけたり、クランプを適用して上限と下限を課したり、Y 軸の値を正の値に維持したりすることさえできます。 @@ -117,10 +117,10 @@ NRQL は、データを深く理解する必要がある人のために、より A screenshot showing a query using the advaned math features pow, SQRT, and EXP - - このレッスンでは、イベント データの平滑化について学びました。`round()` / `ceil()` / `floor()`を使用すると、好きな方法で丸められます。クランプを使用すると、データに境界を設けることができ、対数、平方根、べき乗、指数関数などの高度な数学ツールはすべて、必要に応じてデータを操作するためのさらなる制御を提供します。次に、イベントと属性を検出する方法について学びます。 +このレッスンでは、イベント データの平滑化について学びました。`round()` / `ceil()` / `floor()`を使用すると、好きな方法で丸められます。クランプを使用すると、データに境界を設けることができ、対数、平方根、べき乗、指数関数などの高度な数学ツールはすべて、必要に応じてデータを操作するためのさらなる制御を提供します。次に、イベントと属性を検出する方法について学びます。 + ### イベントと属性を検出する イベントと属性を検出すると、利用可能なデータをクエリする前に質問に答え、自動化を支援できます。この強力なユーティリティを少し見てみましょう。 @@ -148,10 +148,10 @@ NRQL は、データを深く理解する必要がある人のために、より A screenshot showing the result of a keyset query - - これらの機能は、イベントのタイプと属性の変更を検出するのに役立ちます。より多くの DevOps エンジニアがこれらの機能を使用してジョブを完了したり、ジョブを迅速に自動化したりしています。次に、正規表現を使用してデータをフィルターする方法を学習します。 +これらの機能は、イベントのタイプと属性の変更を検出するのに役立ちます。より多くの DevOps エンジニアがこれらの機能を使用してジョブを完了したり、ジョブを迅速に自動化したりしています。次に、正規表現を使用してデータをフィルターする方法を学習します。 + ### 正規表現でフィルタリングする @@ -191,10 +191,10 @@ NRQL は、データを深く理解する必要がある人のために、より `RLIKE`本質的に`LIKE`よりも複雑でパフォーマンスが低いことに注意してください。 `LIKE`やその他のフィルタリング機能がニーズに合わない場合にのみ使用してください。 - - 正規表現のサポートにより、ほぼ無限のパターン マッチングが可能になります。 すでに正規表現の専門家であれば、これが NRQL にどれほどの力を加えるかを知っているでしょう。 しかし、そうでない場合でも、心配しないでください。 Regex には、オンラインで参照できるリソースが多数あります。 NRQL で正規表現を使用する方法を学習したので、次はネストされた集計の使用です。 +正規表現のサポートにより、ほぼ無限のパターン マッチングが可能になります。 すでに正規表現の専門家であれば、これが NRQL にどれほどの力を加えるかを知っているでしょう。 しかし、そうでない場合でも、心配しないでください。 Regex には、オンラインで参照できるリソースが多数あります。 NRQL で正規表現を使用する方法を学習したので、次はネストされた集計の使用です。 + ### ネストされた集計を使用する NRQL を使用して、クエリを親クエリの`FROM`として使用するネストされた集計クエリを作成できます。これにより、次のような質問に答えることができます。 diff --git a/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx b/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx index 25dea8184dc..b33baf7c658 100644 --- a/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx +++ b/src/i18n/content/jp/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx @@ -201,11 +201,11 @@ New Relic はイベントの一部としてタイミングをレポートする FROM Transaction ``` + - これは単なる見た目の美しさのように思えるかもしれませんが、詳細なダッシュボードを構築するときは、データに明確にラベルを付けることが重要です。 これにより、ウィジェット、看板、折れ線グラフ、または表を閲覧する人にとって曖昧さがなくなります。 +これは単なる見た目の美しさのように思えるかもしれませんが、詳細なダッシュボードを構築するときは、データに明確にラベルを付けることが重要です。 これにより、ウィジェット、看板、折れ線グラフ、または表を閲覧する人にとって曖昧さがなくなります。 - これについては、今後のグループ化に関するレッスンで再度参照し、より高度なシナリオでも`AS`クリーンな結果セットを作成する方法を検討します。次に、さまざまな時間枠でデータを比較する方法を学びます。 - +これについては、今後のグループ化に関するレッスンで再度参照し、より高度なシナリオでも`AS`クリーンな結果セットを作成する方法を検討します。次に、さまざまな時間枠でデータを比較する方法を学びます。 ### 時間枠を比較する @@ -260,10 +260,10 @@ New Relic はイベントの一部としてタイミングをレポートする A screenshot displaying a query using the compare with function using a relative time series - - 比較すると、アプリケーションで何が起こっているかに関する質問にすぐに答えることができます。さまざまな売上、パフォーマンス、MTTR、エラー値は先週と比較して増加していますか?また、問題を調査している場合は、問題のあるパフォーマンスの期間と通常のパフォーマンスの期間を比較すると便利です。 +比較すると、アプリケーションで何が起こっているかに関する質問にすぐに答えることができます。さまざまな売上、パフォーマンス、MTTR、エラー値は先週と比較して増加していますか?また、問題を調査している場合は、問題のあるパフォーマンスの期間と通常のパフォーマンスの期間を比較すると便利です。 + ### ワイルドカードフィルターを使用する diff --git a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx b/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx index 0f9afd4bf8d..f78bfcb4109 100644 --- a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx +++ b/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx @@ -125,7 +125,7 @@ Lambda関数のコンテナ化されたイメージを使用していて、ア SAM を使用して Node.js コンテナ化された Lambda 関数の[実例](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/containerized-lambda/nodejs-sam-example)を試してみましょう。
- + ```dockerfile # Define the New Relic pre-built image FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer diff --git a/src/i18n/content/kr/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx b/src/i18n/content/kr/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx index fcaba13a6d9..5c0e2273c80 100644 --- a/src/i18n/content/kr/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx +++ b/src/i18n/content/kr/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx @@ -101,9 +101,9 @@ translationType: machine 5. 변경 사항을 저장합니다. - - 이는 컨테이너 앱을 다시 구현하다, 배포해야 합니다. init 컨테이너 실행이 완료될 때까지 몇 분간 기다리세요. + + 이는 컨테이너 앱을 다시 구현하다, 배포해야 합니다. init 컨테이너 실행이 완료될 때까지 몇 분간 기다리세요. diff --git a/src/i18n/content/kr/docs/browser/new-relic-browser/lab/debug-errors.mdx b/src/i18n/content/kr/docs/browser/new-relic-browser/lab/debug-errors.mdx index 3b08e87e600..f2dc1067d4f 100644 --- a/src/i18n/content/kr/docs/browser/new-relic-browser/lab/debug-errors.mdx +++ b/src/i18n/content/kr/docs/browser/new-relic-browser/lab/debug-errors.mdx @@ -55,11 +55,11 @@ translationType: machine /> - - 데이터가 보이지 않습니까? 브라우저 모니터링을 활성화했고 부하 생성기가 실행 중인지 확인하십시오. - - + + 데이터가 보이지 않습니까? 브라우저 모니터링을 활성화했고 부하 생성기가 실행 중인지 확인하십시오. + + **Page views with javascript errors** 주목하세요. - - ## 통사론 [#syntax] - - ```csharp - RecordCustomEvent(string name, Dictionary attributes): bool; - ``` - - ## 설명 [#description] - - NRQL에서 사용할 [사용자 지정 이벤트를](/docs/insights/new-relic-insights/adding-querying-data/custom-attributes-events-new-relic-mobile#What-are-events-in-New-Relic-Mobile) 생성하고 기록합니다. - - ## 매개변수 [#parameters] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 매개변수 - - 유형 - - 설명 -
- `name` - - `string` - - 이 매개변수를 사용하여 이벤트 이름을 지정합니다. 이 매개변수를 사용하는 것은 `name` 매개변수를 만드는 것과 같습니다. -
- `attributes` - - `Dictionary` - - 선택 과목. 맞춤 이벤트에 대한 추가 정보를 제공하는 데 사용할 수 있는 키-값 쌍의 사전입니다. -
- - ## 반환 값 [#return-values] - - 이벤트가 성공적으로 기록되면 `true` 을 반환하고 그렇지 않으면 `false` 을 반환합니다. - - ## 예시 [#example] - - ```csharp - Dictionary dic = new Dictionary(); - dic.Add("Unity Custom Attribute", "Data2"); - - NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); - ``` -
- ## 통사론 [#syntax] diff --git a/src/i18n/content/kr/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx b/src/i18n/content/kr/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx index 657852eaef4..c64e3926da6 100644 --- a/src/i18n/content/kr/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx +++ b/src/i18n/content/kr/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx @@ -537,7 +537,7 @@ translationType: machine ``` - + ## 통사론 [#syntax] ```cpp diff --git a/src/i18n/content/kr/docs/nrql/nrql-syntax-clauses-functions.mdx b/src/i18n/content/kr/docs/nrql/nrql-syntax-clauses-functions.mdx index 2dbbd6954b0..58f057562f4 100644 --- a/src/i18n/content/kr/docs/nrql/nrql-syntax-clauses-functions.mdx +++ b/src/i18n/content/kr/docs/nrql/nrql-syntax-clauses-functions.mdx @@ -3313,7 +3313,8 @@ NRQL 쿼리에서 숫자가 아닌 데이터에 대해 비 집계 함수를 사
lower(str) - 예 + + 예
@@ -3520,7 +3521,8 @@ NRQL 쿼리에서 숫자가 아닌 데이터에 대해 비 집계 함수를 사
position(str, substr \[, occurrence]) - 예 + + 예
@@ -3633,7 +3635,8 @@ NRQL 쿼리에서 숫자가 아닌 데이터에 대해 비 집계 함수를 사
substring(str, start \[, length]) - 예 + + 예
@@ -4092,7 +4095,8 @@ NRQL 쿼리에서 숫자가 아닌 데이터에 대해 비 집계 함수를 사
upper(str) - 예 + + 예
diff --git a/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx b/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx index 912072c7c31..c91374d16fc 100644 --- a/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx +++ b/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx @@ -59,10 +59,10 @@ translationType: machine A screenshot showing the use of facet bucketing in queries - - 이를 통해 현재 NRQL에 존재하는 모든 집계 함수를 배웠습니다! 전문가처럼 데이터를 분석할 수 있습니다. NRQL에 집계 기능이 없다고 생각되면 계정 팀에 알려주십시오. 우리는 항상 필요할 수 있는 다음 킬러 기능을 찾고 있습니다. +이를 통해 현재 NRQL에 존재하는 모든 집계 함수를 배웠습니다! 전문가처럼 데이터를 분석할 수 있습니다. NRQL에 집계 기능이 없다고 생각되면 계정 팀에 알려주십시오. 우리는 항상 필요할 수 있는 다음 킬러 기능을 찾고 있습니다. + ### 고급 수학 기능 사용 NRQL은 또한 데이터에 대해 깊이 있게 분석해야 하는 사람들을 위해 고급 수학 함수를 지원합니다. 이러한 함수는 값을 X 거듭제곱으로 추정하고, 제곱근을 찾고, 클램핑을 적용하여 상한 및 하한을 적용하거나 Y축에서 값을 양수로 유지할 수도 있습니다. @@ -117,10 +117,10 @@ NRQL은 또한 데이터에 대해 깊이 있게 분석해야 하는 사람들 A screenshot showing a query using the advaned math features pow, SQRT, and EXP - - 이번 강의에서는 이벤트 데이터를 평활화하는 방법을 배웠습니다. `round()`/`ceil()`/`floor()` 사용하면 원하는 방식으로 반올림할 수 있습니다. 클램핑을 사용하면 데이터에 경계를 설정할 수 있으며 로그, 제곱근, 거듭제곱 및 지수에 대한 고급 수학 도구는 모두 필요에 따라 데이터를 조작할 수 있는 추가 제어 기능을 제공합니다. 다음으로 이벤트와 속성을 검색하는 방법에 대해 알아봅니다. +이번 강의에서는 이벤트 데이터를 평활화하는 방법을 배웠습니다. `round()`/`ceil()`/`floor()` 사용하면 원하는 방식으로 반올림할 수 있습니다. 클램핑을 사용하면 데이터에 경계를 설정할 수 있으며 로그, 제곱근, 거듭제곱 및 지수에 대한 고급 수학 도구는 모두 필요에 따라 데이터를 조작할 수 있는 추가 제어 기능을 제공합니다. 다음으로 이벤트와 속성을 검색하는 방법에 대해 알아봅니다. + ### 이벤트 및 속성 검색 이벤트 및 속성을 검색하면 사용 가능한 데이터를 쿼리하기 전에 이에 대한 질문에 답하고 자동화하는 데 도움이 될 수 있습니다! 잠시 시간을 내어 이 강력한 유틸리티를 살펴보겠습니다. @@ -148,10 +148,10 @@ NRQL은 또한 데이터에 대해 깊이 있게 분석해야 하는 사람들 A screenshot showing the result of a keyset query - - 이러한 기능은 이벤트 유형 및 속성의 변경 사항을 검색하는 데 도움이 됩니다. 더 많은 DevOps 엔지니어가 이러한 기능을 사용하여 작업을 마무리하거나 신속하게 자동화합니다. 다음으로 Regex를 사용하여 데이터를 필터링하는 방법을 알아봅니다. +이러한 기능은 이벤트 유형 및 속성의 변경 사항을 검색하는 데 도움이 됩니다. 더 많은 DevOps 엔지니어가 이러한 기능을 사용하여 작업을 마무리하거나 신속하게 자동화합니다. 다음으로 Regex를 사용하여 데이터를 필터링하는 방법을 알아봅니다. + ### 정규식으로 필터링 @@ -191,10 +191,10 @@ NRQL은 또한 데이터에 대해 깊이 있게 분석해야 하는 사람들 `RLIKE` 은 본질적으로 `LIKE` 보다 더 복잡하고 성능이 떨어집니다. `LIKE` 및 기타 필터링 기능이 필요에 맞지 않는 경우에만 사용하십시오. - - 정규식 지원을 통해 거의 무한한 패턴 일치 가능성이 가능합니다. 이미 정규식 전문가라면 이것이 NRQL에 추가되는 힘을 알고 있을 것입니다. 하지만 그렇지 않더라도 걱정하지 마세요! Regex에는 온라인에서 참조할 수 있는 많은 리소스가 있습니다. NRQL에서 정규식을 사용하는 방법을 배웠으므로 이제 목록의 다음은 중첩 집계를 사용하는 것입니다. +정규식 지원을 통해 거의 무한한 패턴 일치 가능성이 가능합니다. 이미 정규식 전문가라면 이것이 NRQL에 추가되는 힘을 알고 있을 것입니다. 하지만 그렇지 않더라도 걱정하지 마세요! Regex에는 온라인에서 참조할 수 있는 많은 리소스가 있습니다. NRQL에서 정규식을 사용하는 방법을 배웠으므로 이제 목록의 다음은 중첩 집계를 사용하는 것입니다. + ### 중첩 집계 사용 쿼리를 상위 쿼리의 `FROM` 로 사용하는 NRQL을 사용하여 중첩 집계 쿼리를 작성할 수 있습니다. 이를 통해 다음과 같은 질문에 답할 수 있습니다. diff --git a/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx b/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx index 7c52de51722..aa515789b6b 100644 --- a/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx +++ b/src/i18n/content/kr/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx @@ -201,11 +201,11 @@ New Relic은 이벤트의 일부로 타이밍을 보고하므로 이를 사용 FROM Transaction ``` + - 이는 단순히 미학적으로 보일 수도 있지만 세부적인 대시보드를 구축할 때 데이터에 명확하게 레이블을 지정하는 것이 중요합니다. 이를 통해 위젯, 빌보드, 꺾은선형 차트 또는 표를 보는 모든 사람에게 모호함이 전혀 없습니다. +이는 단순히 미학적으로 보일 수도 있지만 세부적인 대시보드를 구축할 때 데이터에 명확하게 레이블을 지정하는 것이 중요합니다. 이를 통해 위젯, 빌보드, 꺾은선형 차트 또는 표를 보는 모든 사람에게 모호함이 전혀 없습니다. - 그룹화에 대한 다음 강의에서 이를 다시 참조하여 `AS` 고급 시나리오에서도 깔끔한 결과 집합을 생성할 수 있는 방법을 살펴보겠습니다. 다음으로 다양한 기간의 데이터를 비교하는 방법을 알아봅니다. - +그룹화에 대한 다음 강의에서 이를 다시 참조하여 `AS` 고급 시나리오에서도 깔끔한 결과 집합을 생성할 수 있는 방법을 살펴보겠습니다. 다음으로 다양한 기간의 데이터를 비교하는 방법을 알아봅니다. ### 기간 비교 @@ -260,10 +260,10 @@ New Relic은 이벤트의 일부로 타이밍을 보고하므로 이를 사용 A screenshot displaying a query using the compare with function using a relative time series - - 비교를 통해 애플리케이션에서 발생하는 상황에 대한 질문에 신속하게 답할 수 있습니다. 지난주에 비해 판매량, 실적, MTTR 또는 오류 값이 증가했거나 감소했습니까? 그리고 문제를 조사하는 경우 문제가 있는 성능 기간과 정상적인 성능 기간을 비교하는 것이 유용하다는 것을 알게 될 것입니다. +비교를 통해 애플리케이션에서 발생하는 상황에 대한 질문에 신속하게 답할 수 있습니다. 지난주에 비해 판매량, 실적, MTTR 또는 오류 값이 증가했거나 감소했습니까? 그리고 문제를 조사하는 경우 문제가 있는 성능 기간과 정상적인 성능 기간을 비교하는 것이 유용하다는 것을 알게 될 것입니다. + ### 와일드카드 필터 사용 diff --git a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx b/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx index 2c36aac5228..f7676f05554 100644 --- a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx +++ b/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx @@ -125,7 +125,7 @@ Lambda 함수에 컨테이너화된 이미지를 사용하고 런타임을 모 SAM을 사용하여 Node.js 컨테이너화된 Lambda 함수의 [동작 예제를](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/containerized-lambda/nodejs-sam-example) 시험해보세요.
- + ```dockerfile # Define the New Relic pre-built image FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer @@ -200,4 +200,4 @@ Lambda 함수에 컨테이너화된 이미지를 사용하고 런타임을 모 * [Lambda 콘솔 UI 구성](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#console) * [레이어 없는 측정, Lambda 모니터링을 위한 로그](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-layerless) - \ No newline at end of file + diff --git a/src/i18n/content/pt/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx b/src/i18n/content/pt/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx index 2cd52b2e1d0..465b37e3426 100644 --- a/src/i18n/content/pt/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx +++ b/src/i18n/content/pt/docs/apm/agents/python-agent/hosting-services/python-azure-touchless-integration.mdx @@ -100,9 +100,11 @@ Isso pode ser feito por meio do Portal do Azure ou da CLI do Azure. 4. Vá para a aba "Montagens de volume" e selecione a montagem de volume criada na Etapa 2. O caminho de montagem deve ser `/mnt/instrumentation`. 5. Salve suas alterações. + + Isso deverá reimplantar o aplicativo contêiner. Aguarde alguns minutos para que o contêiner init termine de ser executado. + - Isso deverá reimplantar o aplicativo contêiner. Aguarde alguns minutos para que o contêiner init termine de ser executado. @@ -300,4 +302,4 @@ gunicorn app:app Em alguns casos, a telemetria pode não estar disponível ou o script `prebuild.sh` pode fazer com que o aplicativo existente falhe na reimplantação. Para remediar isso, habilite estas variáveis de ambiente: * `SCM_DO_BUILD_DURING_DEVELOPMENT`: `True` -* `ENABLE_ORYX_BUILD`: `True` \ No newline at end of file +* `ENABLE_ORYX_BUILD`: `True` diff --git a/src/i18n/content/pt/docs/browser/new-relic-browser/lab/debug-errors.mdx b/src/i18n/content/pt/docs/browser/new-relic-browser/lab/debug-errors.mdx index d5256bb23f2..afff51f88fd 100644 --- a/src/i18n/content/pt/docs/browser/new-relic-browser/lab/debug-errors.mdx +++ b/src/i18n/content/pt/docs/browser/new-relic-browser/lab/debug-errors.mdx @@ -53,11 +53,12 @@ A má notícia é que você confirmou que há alguns erros no seu aplicativo. A alt="Relicstaurants summary" src="/images/browser-lab-screenshot-relicstaurants-browser-app.webp" /> - Não está vendo seus dados? Certifique-se de ativar o monitoramento do browser e de que seu gerador de carga esteja funcionando. + + Observe **Page views with javascript errors**. diff --git a/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx b/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx index 30af3bd74cc..78dd0f40295 100644 --- a/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx +++ b/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/record-custom-events.mdx @@ -873,81 +873,6 @@ translationType: machine ``` - - ## Sintaxe [#syntax] - - ```csharp - RecordCustomEvent(string name, Dictionary attributes): bool; - ``` - - ## Descrição [#description] - - Cria e registra um [evento personalizado](/docs/insights/new-relic-insights/adding-querying-data/custom-attributes-events-new-relic-mobile#What-are-events-in-New-Relic-Mobile), para uso em NRQL. - - ## Parâmetro [#parameters] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parâmetro - - Tipo - - Descrição -
- `name` - - `string` - - Use este parâmetro para nomear o evento. Usar esse parâmetro equivale a criar um parâmetro `name` . -
- `attributes` - - `Dictionary` - - Opcional. Um dicionário de pares de valores principais que podem ser usados para fornecer informações adicionais sobre o evento customizado. -
- - ## Valores de retorno [#return-values] - - Retornará `true` se o evento for registrado com sucesso ou `false` se não. - - ## Exemplo [#example] - - ```csharp - Dictionary dic = new Dictionary(); - dic.Add("Unity Custom Attribute", "Data2"); - - NewRelicAgent.RecordCustomEvent("Unity Custom Event Example", dic); - ``` -
- ## Sintaxe [#syntax] @@ -1131,4 +1056,4 @@ translationType: machine ``` - \ No newline at end of file + diff --git a/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx b/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx index 4e855bf2542..aec3cf0257f 100644 --- a/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx +++ b/src/i18n/content/pt/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/set-max-event-pool-size.mdx @@ -537,7 +537,7 @@ translationType: machine ```
- + ## Sintaxe [#syntax] ```cpp @@ -647,4 +647,4 @@ translationType: machine ``` - \ No newline at end of file + diff --git a/src/i18n/content/pt/docs/nrql/nrql-syntax-clauses-functions.mdx b/src/i18n/content/pt/docs/nrql/nrql-syntax-clauses-functions.mdx index c8a68ea6b13..9b25f067c17 100644 --- a/src/i18n/content/pt/docs/nrql/nrql-syntax-clauses-functions.mdx +++ b/src/i18n/content/pt/docs/nrql/nrql-syntax-clauses-functions.mdx @@ -3313,7 +3313,8 @@ Utilize funções não agregadoras para dados não numéricos na consulta NRQL .
lower(str) - exemplo + + exemplo
@@ -3520,7 +3521,8 @@ Utilize funções não agregadoras para dados não numéricos na consulta NRQL .
position(str, substr \[, occurrence]) - exemplo + + exemplo
@@ -3633,7 +3635,8 @@ Utilize funções não agregadoras para dados não numéricos na consulta NRQL .
substring(str, start \[, length]) - exemplo + + exemplo
@@ -4092,7 +4095,8 @@ Utilize funções não agregadoras para dados não numéricos na consulta NRQL .
upper(str) - exemplo + + exemplo
diff --git a/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx b/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx index 01d93876238..1b765209a6b 100644 --- a/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx +++ b/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-advanced-functions.mdx @@ -57,10 +57,16 @@ Achamos que você achará esses recursos absolutamente inestimáveis. Vamos come FACET buckets(databaseCallCount, 400, 10) ``` - A screenshot showing the use of facet bucketing in queries - + A screenshot showing the use of facet bucketing in queries Com isso, você aprendeu todas as funções de agregação que existem atualmente no NRQL! Você pode dividir seus dados como um profissional. Se você acha que falta uma capacidade de agregação no NRQL, informe sua equipe de conta: estamos sempre procurando a próxima funcionalidade matadora que você possa precisar. + + + ### Use funções matemáticas avançadas @@ -109,16 +115,22 @@ NRQL também oferece suporte a funções matemáticas mais avançadas para aquel * `log10(n)` calcule o logaritmo na base 10. * `log(n, b)` permite calcular logaritmos com uma base arbitrária b. - ```sql - SELECT pow(duration, 2), sqrt(duration), exp(duration), ln(duration), log2(duration) - FROM Transaction - SINCE 1 day ago - ``` + ```sql + SELECT pow(duration, 2), sqrt(duration), exp(duration), ln(duration), log2(duration) + FROM Transaction + SINCE 1 day ago + ``` + + A screenshot showing a query using the advaned math features pow, SQRT, and EXP + + Nesta lição, você aprendeu como suavizar os dados do evento. `round()`/`ceil()`/`floor()` permitem arredondar da maneira que desejar. A fixação permite definir limites nos dados, e as ferramentas matemáticas avançadas para logaritmo, raiz quadrada, potência e exponencial oferecem controle adicional para manipular os dados conforme necessário. A seguir, você aprenderá como descobrir evento e atributo. - A screenshot showing a query using the advaned math features pow, SQRT, and EXP - Nesta lição, você aprendeu como suavizar os dados do evento. `round()`/`ceil()`/`floor()` permitem arredondar da maneira que desejar. A fixação permite definir limites nos dados, e as ferramentas matemáticas avançadas para logaritmo, raiz quadrada, potência e exponencial oferecem controle adicional para manipular os dados conforme necessário. A seguir, você aprenderá como descobrir evento e atributo. ### Descubra evento e atributo @@ -146,10 +158,16 @@ Descobrir evento e atributo pode ajudar a tirar dúvidas sobre seus dados dispon SINCE 1 week ago ``` - A screenshot showing the result of a keyset query - + A screenshot showing the result of a keyset query Esses recursos ajudam você a descobrir mudanças nos tipos de eventos e atributos. Mais engenheiros de DevOps utilizam essas funcionalidades para finalizar jobs, ou até mesmo automatizá-los rapidamente. A seguir, você aprenderá como filtrar dados com Regex. + + + ### Filtrar com regex @@ -190,9 +208,11 @@ Descobrir evento e atributo pode ajudar a tirar dúvidas sobre seus dados dispon O mecanismo de expressão regular usa a sintaxe RE2. Se você precisar excluir caracteres, talvez seja necessário usar sequências de escape com barras invertidas duplas. (por exemplo `\\`). Lembre-se de que `RLIKE` tem inerentemente mais complexidade e menos desempenho que `LIKE`. Use-o apenas quando `LIKE` e outras funcionalidades de filtragem não atenderem às suas necessidades. + + O suporte a expressões regulares permite possibilidades quase infinitas de correspondência de padrões. Se você já é um guru de regex, conhece o poder que isso agrega ao NRQL. Mas se não estiver, não se preocupe! Regex tem muitos recursos disponíveis para referência online. Agora que você aprendeu como usar regex com NRQL, o próximo item da lista é usar agregação aninhada. + - O suporte a expressões regulares permite possibilidades quase infinitas de correspondência de padrões. Se você já é um guru de regex, conhece o poder que isso agrega ao NRQL. Mas se não estiver, não se preocupe! Regex tem muitos recursos disponíveis para referência online. Agora que você aprendeu como usar regex com NRQL, o próximo item da lista é usar agregação aninhada. ### Usar agregação aninhada diff --git a/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx b/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx index 660113fa044..9fadc1ee520 100644 --- a/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx +++ b/src/i18n/content/pt/docs/nrql/nrql-tutorials/nrql-tutorial-process-your-data.mdx @@ -200,11 +200,13 @@ Na próxima etapa, você aprenderá como usar o NRQL para rotular seu atributo. AS 'Non-External Response Time' FROM Transaction ``` - - Isso pode parecer meramente estético, mas ao criar um painel detalhado, é importante rotular claramente seus dados. Isso garante zero ambigüidade para qualquer pessoa que visualize seu widget, outdoors, gráficos de linhas ou tabelas. + Isso pode parecer meramente estético, mas ao criar um painel detalhado, é importante rotular claramente seus dados. Isso garante zero ambigüidade para qualquer pessoa que visualize seu widget, outdoors, gráficos de linhas ou tabelas. + + Voltaremos a isso em uma próxima lição sobre agrupamento, para explorar como `AS` também pode criar conjuntos de resultados limpos em cenários mais avançados. A seguir, você aprenderá como comparar dados em diferentes janelas de tempo. + + - Voltaremos a isso em uma próxima lição sobre agrupamento, para explorar como `AS` também pode criar conjuntos de resultados limpos em cenários mais avançados. A seguir, você aprenderá como comparar dados em diferentes janelas de tempo. ### Comparar janelas de tempo @@ -259,9 +261,11 @@ Na próxima etapa, você aprenderá como usar o NRQL para rotular seu atributo. ``` A screenshot displaying a query using the compare with function using a relative time series + + As comparações podem responder rapidamente a perguntas sobre o que está acontecendo no seu aplicativo. Os diferentes valores de vendas, desempenho, MTTR ou erro aumentaram ou diminuíram em comparação com a semana passada? E, se estiver investigando um problema, será útil comparar um período de desempenho problemático com um período de desempenho normal. + - As comparações podem responder rapidamente a perguntas sobre o que está acontecendo no seu aplicativo. Os diferentes valores de vendas, desempenho, MTTR ou erro aumentaram ou diminuíram em comparação com a semana passada? E, se estiver investigando um problema, será útil comparar um período de desempenho problemático com um período de desempenho normal. ### Use filtros curinga @@ -481,4 +485,4 @@ Existem também muitas outras opções disponíveis para agrupamento, incluindo ### Qual é o próximo? -Com o conhecimento que você adquiriu aqui, você pode criar visualizações dashboard e controlar os aspectos dos seus dados que mais lhe interessam. Você pode usar essas técnicas poderosas para restringir o foco, obter alertas mais granulares e específicos e produzir visualizações muito mais interessantes. Quando estiver pronto, você pode avançar para nosso [terceiro tutorial](src/content/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-tutorial-advanced-dashboarding.mdx), onde aprenderá habilidades NRQL mais interessantes, incluindo filtros, casos de facetas, histograma, apdex, filtragem para eventTypes, substituição de valores e extrapolação. \ No newline at end of file +Com o conhecimento que você adquiriu aqui, você pode criar visualizações dashboard e controlar os aspectos dos seus dados que mais lhe interessam. Você pode usar essas técnicas poderosas para restringir o foco, obter alertas mais granulares e específicos e produzir visualizações muito mais interessantes. Quando estiver pronto, você pode avançar para nosso [terceiro tutorial](src/content/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-tutorial-advanced-dashboarding.mdx), onde aprenderá habilidades NRQL mais interessantes, incluindo filtros, casos de facetas, histograma, apdex, filtragem para eventTypes, substituição de valores e extrapolação. diff --git a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx b/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx index f99aaf22b21..4a0571e66ac 100644 --- a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx +++ b/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/containerized-images.mdx @@ -125,7 +125,7 @@ Aqui está um guia para adicionar nossa camada pré-construída ao seu código. Experimente [um exemplo prático](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/containerized-lambda/nodejs-sam-example) de uma função do Lambda em contêiner Node.js usando SAM.
- + ```dockerfile # Define the New Relic pre-built image FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer @@ -200,4 +200,4 @@ Aqui está um guia para adicionar nossa camada pré-construída ao seu código. * [Configuração da interface do console Lambda](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#console) * [Instrumentação sem camadas para monitoramento Lambda](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-layerless) - \ No newline at end of file +