[APM] Update "customize-app" route path (#121032)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Muneeb Sajjad 2021-12-15 04:37:46 +05:00 committed by GitHub
parent 9b15697390
commit 2c6ef2047f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 243 additions and 299 deletions

View file

@ -305,7 +305,7 @@ type MapRoutes<TRoutes, TParents extends Route[] = []> = TRoutes extends [Route]
// element,
// },
// {
// path: '/settings/customize-ui',
// path: '/settings/custom-links',
// element,
// },
// {

View file

@ -8,7 +8,7 @@
import { i18n } from '@kbn/i18n';
export const INVALID_LICENSE = i18n.translate(
'xpack.apm.settings.customizeUI.customLink.license.text',
'xpack.apm.settings.customLink.license.text',
{
defaultMessage:
"To create custom links, you must be subscribed to an Elastic Gold license or above. With it, you'll have the ability to create custom links to improve your workflow when analyzing your services.",
@ -16,7 +16,7 @@ export const INVALID_LICENSE = i18n.translate(
);
export const NO_PERMISSION_LABEL = i18n.translate(
'xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel',
'xpack.apm.settings.customLink.noPermissionTooltipLabel',
{
defaultMessage:
"Your user role doesn't have permissions to create custom links",

View file

@ -5,7 +5,7 @@
* 2.0.
*/
const basePath = '/app/apm/settings/customize-ui';
const basePath = '/app/apm/settings/custom-links';
describe('Custom links', () => {
beforeEach(() => {

View file

@ -8,8 +8,8 @@
import { EuiButton, EuiToolTip } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { NO_PERMISSION_LABEL } from '../../../../../../common/custom_link';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
import { NO_PERMISSION_LABEL } from '../../../../../common/custom_link';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
export function CreateCustomLinkButton({ onClick }: { onClick: () => void }) {
const { core } = useApmPluginContext();
@ -24,10 +24,9 @@ export function CreateCustomLinkButton({ onClick }: { onClick: () => void }) {
isDisabled={!canSave}
data-test-subj="createButton"
>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.createCustomLink',
{ defaultMessage: 'Create custom link' }
)}
{i18n.translate('xpack.apm.settings.customLink.createCustomLink', {
defaultMessage: 'Create custom link',
})}
</EuiButton>
</EuiToolTip>
);

View file

@ -22,24 +22,18 @@ export function EmptyPrompt({
iconColor=""
title={
<h2>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.emptyPromptTitle',
{
defaultMessage: 'No links found.',
}
)}
{i18n.translate('xpack.apm.settings.customLink.emptyPromptTitle', {
defaultMessage: 'No links found.',
})}
</h2>
}
body={
<>
<p>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.emptyPromptText',
{
defaultMessage:
"Let's change that! You can add custom links to the Actions context menu by the transaction details for each service. Create a helpful link to your company's support portal or open a new bug report. Learn more about it in our docs.",
}
)}
{i18n.translate('xpack.apm.settings.customLink.emptyPromptText', {
defaultMessage:
"Let's change that! You can add custom links to the Actions context menu by the transaction details for each service. Create a helpful link to your company's support portal or open a new bug report. Learn more about it in our docs.",
})}
</p>
</>
}

View file

@ -8,9 +8,9 @@
import { fireEvent, render } from '@testing-library/react';
import React, { ReactNode } from 'react';
import { act } from 'react-dom/test-utils';
import { EuiThemeProvider } from '../../../../../../../../../../src/plugins/kibana_react/common';
import { MockApmPluginContextWrapper } from '../../../../../../context/apm_plugin/mock_apm_plugin_context';
import * as apmApi from '../../../../../../services/rest/createCallApmApi';
import { EuiThemeProvider } from '../../../../../../../../../src/plugins/kibana_react/common';
import { MockApmPluginContextWrapper } from '../../../../../context/apm_plugin/mock_apm_plugin_context';
import * as apmApi from '../../../../../services/rest/createCallApmApi';
import { DeleteButton } from './DeleteButton';
function Wrapper({ children }: { children?: ReactNode }) {

View file

@ -9,9 +9,9 @@ import { EuiButtonEmpty } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { NotificationsStart } from 'kibana/public';
import React, { useState } from 'react';
import { callApmApi } from '../../../../../../services/rest/createCallApmApi';
import { useApmPluginContext } from '../../../../../../context/apm_plugin/use_apm_plugin_context';
import { useTheme } from '../../../../../../hooks/use_theme';
import { callApmApi } from '../../../../../services/rest/createCallApmApi';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
import { useTheme } from '../../../../../hooks/use_theme';
interface Props {
onDelete: () => void;
@ -36,7 +36,7 @@ export function DeleteButton({ onDelete, customLinkId }: Props) {
}}
style={{ marginRight: theme.eui.euiSize }}
>
{i18n.translate('xpack.apm.settings.customizeUI.customLink.delete', {
{i18n.translate('xpack.apm.settings.customLink.delete', {
defaultMessage: 'Delete',
})}
</EuiButtonEmpty>
@ -57,18 +57,16 @@ async function deleteConfig(
});
toasts.addSuccess({
iconType: 'trash',
title: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.delete.successed',
{ defaultMessage: 'Deleted custom link.' }
),
title: i18n.translate('xpack.apm.settings.customLink.delete.successed', {
defaultMessage: 'Deleted custom link.',
}),
});
} catch (error) {
toasts.addDanger({
iconType: 'cross',
title: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.delete.failed',
{ defaultMessage: 'Custom link could not be deleted' }
),
title: i18n.translate('xpack.apm.settings.customLink.delete.failed', {
defaultMessage: 'Custom link could not be deleted',
}),
});
}
}

View file

@ -7,7 +7,7 @@
import React from 'react';
import { EuiLink } from '@elastic/eui';
import { useApmPluginContext } from '../../../../../../context/apm_plugin/use_apm_plugin_context';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
interface Props {
label: string;

View file

@ -21,7 +21,7 @@ import React from 'react';
import {
Filter,
FilterKey,
} from '../../../../../../../common/custom_link/custom_link_types';
} from '../../../../../../common/custom_link/custom_link_types';
import {
DEFAULT_OPTION,
FILTER_SELECT_OPTIONS,
@ -68,7 +68,7 @@ export function FiltersSection({
<EuiTitle size="xs">
<h3>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.filters.title',
'xpack.apm.settings.customLink.flyout.filters.title',
{
defaultMessage: 'Filters',
}
@ -78,7 +78,7 @@ export function FiltersSection({
<EuiSpacer size="s" />
<EuiText size="s">
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle',
'xpack.apm.settings.customLink.flyout.filters.subtitle',
{
defaultMessage:
'Use the filter options to scope them to only appear for specific services.',
@ -102,7 +102,7 @@ export function FiltersSection({
options={selectOptions}
value={key}
prepend={i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend',
'xpack.apm.settings.customLink.flyout.filters.prepend',
{
defaultMessage: 'Field',
}
@ -121,7 +121,7 @@ export function FiltersSection({
data-test-subj={`${key}.value`}
fullWidth
placeholder={i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value',
'xpack.apm.settings.customLink.flyOut.filters.defaultOption.value',
{ defaultMessage: 'Value' }
)}
onChange={(e) => onChangeFilter(key, e.target.value, idx)}
@ -165,7 +165,7 @@ function AddFilterButton({
disabled={isDisabled}
>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter',
'xpack.apm.settings.customLink.flyout.filters.addAnotherFilter',
{
defaultMessage: 'Add another filter',
}

View file

@ -34,12 +34,9 @@ export function FlyoutFooter({
<EuiFlexGroup justifyContent="spaceBetween">
<EuiFlexItem grow={false}>
<EuiButtonEmpty iconType="cross" onClick={onClose} flush="left">
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.close',
{
defaultMessage: 'Close',
}
)}
{i18n.translate('xpack.apm.settings.customLink.flyout.close', {
defaultMessage: 'Close',
})}
</EuiButtonEmpty>
</EuiFlexItem>
<EuiFlexItem grow={false} style={{ display: 'block' }}>
@ -53,12 +50,9 @@ export function FlyoutFooter({
isLoading={isSaving}
isDisabled={!isSaveButtonEnabled}
>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.save',
{
defaultMessage: 'Save',
}
)}
{i18n.translate('xpack.apm.settings.customLink.flyout.save', {
defaultMessage: 'Save',
})}
</EuiButton>
</EuiFlexItem>
</EuiFlexGroup>

View file

@ -14,7 +14,7 @@ import {
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { CustomLink } from '../../../../../../../common/custom_link/custom_link_types';
import { CustomLink } from '../../../../../../common/custom_link/custom_link_types';
import { Documentation } from './Documentation';
interface InputField {
@ -37,21 +37,18 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
const inputFields: InputField[] = [
{
name: 'label',
label: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.label',
{
defaultMessage: 'Label',
}
),
label: i18n.translate('xpack.apm.settings.customLink.flyout.link.label', {
defaultMessage: 'Label',
}),
helpText: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText',
'xpack.apm.settings.customLink.flyout.link.label.helpText',
{
defaultMessage:
'This is the label shown in the actions context menu. Keep it as short as possible.',
}
),
placeholder: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder',
'xpack.apm.settings.customLink.flyout.link.label.placeholder',
{
defaultMessage: 'e.g. Support tickets',
}
@ -61,16 +58,13 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
},
{
name: 'url',
label: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.url',
{
defaultMessage: 'URL',
}
),
label: i18n.translate('xpack.apm.settings.customLink.flyout.link.url', {
defaultMessage: 'URL',
}),
helpText: (
<>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText',
'xpack.apm.settings.customLink.flyout.link.url.helpText',
{
defaultMessage:
'Add field name variables to your URL to apply values e.g. {sample}.',
@ -79,7 +73,7 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
)}{' '}
<Documentation
label={i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc',
'xpack.apm.settings.customLink.flyout.link.url.doc',
{
defaultMessage: 'Learn more in the docs.',
}
@ -88,7 +82,7 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
</>
),
placeholder: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder',
'xpack.apm.settings.customLink.flyout.link.url.placeholder',
{
defaultMessage: 'e.g. https://www.elastic.co/',
}
@ -102,12 +96,9 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
<>
<EuiTitle size="xs">
<h3>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.action.title',
{
defaultMessage: 'Link',
}
)}
{i18n.translate('xpack.apm.settings.customLink.flyout.action.title', {
defaultMessage: 'Link',
})}
</h3>
</EuiTitle>
<EuiSpacer size="l" />
@ -121,7 +112,7 @@ export function LinkSection({ label, onChangeLabel, url, onChangeUrl }: Props) {
labelAppend={
<EuiText size="xs">
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.required',
'xpack.apm.settings.customLink.flyout.required',
{
defaultMessage: 'Required',
}

View file

@ -9,7 +9,7 @@ import {
getSelectOptions,
replaceTemplateVariables,
} from '../create_edit_custom_link_flyout/helper';
import { Transaction } from '../../../../../../../typings/es_schemas/ui/transaction';
import { Transaction } from '../../../../../../typings/es_schemas/ui/transaction';
describe('Custom link helper', () => {
describe('getSelectOptions', () => {

View file

@ -8,12 +8,12 @@
import { i18n } from '@kbn/i18n';
import Mustache from 'mustache';
import { isEmpty, get } from 'lodash';
import { FILTER_OPTIONS } from '../../../../../../../common/custom_link/custom_link_filter_options';
import { FILTER_OPTIONS } from '../../../../../../common/custom_link/custom_link_filter_options';
import {
Filter,
FilterKey,
} from '../../../../../../../common/custom_link/custom_link_types';
import { Transaction } from '../../../../../../../typings/es_schemas/ui/transaction';
} from '../../../../../../common/custom_link/custom_link_types';
import { Transaction } from '../../../../../../typings/es_schemas/ui/transaction';
interface FilterSelectOption {
value: 'DEFAULT' | FilterKey;
@ -23,7 +23,7 @@ interface FilterSelectOption {
export const DEFAULT_OPTION: FilterSelectOption = {
value: 'DEFAULT',
text: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption',
'xpack.apm.settings.customLink.flyOut.filters.defaultOption',
{ defaultMessage: 'Select field...' }
),
};
@ -65,7 +65,7 @@ const getInvalidTemplateVariables = (
const validateUrl = (url: string, transaction?: Transaction) => {
if (!transaction || isEmpty(transaction)) {
return i18n.translate(
'xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound',
'xpack.apm.settings.customLink.preview.transaction.notFound',
{
defaultMessage:
"We couldn't find a matching transaction document based on the defined filters.",
@ -76,7 +76,7 @@ const validateUrl = (url: string, transaction?: Transaction) => {
const invalidVariables = getInvalidTemplateVariables(url, transaction);
if (!isEmpty(invalidVariables)) {
return i18n.translate(
'xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch',
'xpack.apm.settings.customLink.preview.contextVariable.noMatch',
{
defaultMessage:
"We couldn't find a value match for {variables} in the example transaction document.",
@ -90,7 +90,7 @@ const validateUrl = (url: string, transaction?: Transaction) => {
}
} catch (e) {
return i18n.translate(
'xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid',
'xpack.apm.settings.customLink.preview.contextVariable.invalid',
{
defaultMessage:
"We couldn't find an example transaction document due to invalid variable(s) defined.",

View file

@ -15,8 +15,8 @@ import {
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React, { useState } from 'react';
import { Filter } from '../../../../../../../common/custom_link/custom_link_types';
import { useApmPluginContext } from '../../../../../../context/apm_plugin/use_apm_plugin_context';
import { Filter } from '../../../../../../common/custom_link/custom_link_types';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
import { FiltersSection } from './FiltersSection';
import { FlyoutFooter } from './FlyoutFooter';
import { LinkSection } from './LinkSection';
@ -80,28 +80,22 @@ export function CreateEditCustomLinkFlyout({
<EuiFlyoutHeader hasBorder>
<EuiTitle size="s">
<h2>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.title',
{
defaultMessage: 'Create link',
}
)}
{i18n.translate('xpack.apm.settings.customLink.flyout.title', {
defaultMessage: 'Create link',
})}
</h2>
</EuiTitle>
</EuiFlyoutHeader>
<EuiFlyoutBody>
<EuiText>
<p>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.label',
{
defaultMessage:
'Links will be available in the context of transaction details throughout the APM app. You can create an unlimited number of links. You can refer to dynamic variables by using any of the transaction metadata to fill in your URLs. More information, including examples, are available in the',
}
)}{' '}
{i18n.translate('xpack.apm.settings.customLink.flyout.label', {
defaultMessage:
'Links will be available in the context of transaction details throughout the APM app. You can create an unlimited number of links. You can refer to dynamic variables by using any of the transaction metadata to fill in your URLs. More information, including examples, are available in the',
})}{' '}
<Documentation
label={i18n.translate(
'xpack.apm.settings.customizeUI.customLink.flyout.label.doc',
'xpack.apm.settings.customLink.flyout.label.doc',
{
defaultMessage: 'documentation.',
}

View file

@ -7,7 +7,7 @@
import React, { ComponentProps } from 'react';
import { CoreStart } from 'kibana/public';
import { createCallApmApi } from '../../../../../../services/rest/createCallApmApi';
import { createCallApmApi } from '../../../../../services/rest/createCallApmApi';
import { LinkPreview } from './link_preview';
export default {

View file

@ -19,9 +19,9 @@ import {
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { debounce } from 'lodash';
import { Filter } from '../../../../../../../common/custom_link/custom_link_types';
import { Transaction } from '../../../../../../../typings/es_schemas/ui/transaction';
import { callApmApi } from '../../../../../../services/rest/createCallApmApi';
import { Filter } from '../../../../../../common/custom_link/custom_link_types';
import { Transaction } from '../../../../../../typings/es_schemas/ui/transaction';
import { callApmApi } from '../../../../../services/rest/createCallApmApi';
import { replaceTemplateVariables, convertFiltersToQuery } from './helper';
export interface LinkPreviewProps {
@ -70,12 +70,9 @@ export function LinkPreview({ label, url, filters }: LinkPreviewProps) {
<>
<EuiTitle size="xs">
<h3>
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.previewSectionTitle',
{
defaultMessage: 'Preview',
}
)}
{i18n.translate('xpack.apm.settings.customLink.previewSectionTitle', {
defaultMessage: 'Preview',
})}
</h3>
</EuiTitle>
<EuiSpacer size="s" />
@ -88,10 +85,9 @@ export function LinkPreview({ label, url, filters }: LinkPreviewProps) {
>
{label
? label
: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.default.label',
{ defaultMessage: 'Elastic.co' }
)}
: i18n.translate('xpack.apm.settings.customLink.default.label', {
defaultMessage: 'Elastic.co',
})}
</EuiText>
<EuiText
@ -109,10 +105,9 @@ export function LinkPreview({ label, url, filters }: LinkPreviewProps) {
{formattedUrl}
</EuiLink>
) : (
i18n.translate(
'xpack.apm.settings.customizeUI.customLink.default.url',
{ defaultMessage: 'https://www.elastic.co' }
)
i18n.translate('xpack.apm.settings.customLink.default.url', {
defaultMessage: 'https://www.elastic.co',
})
)}
</EuiText>
<EuiSpacer />
@ -120,7 +115,7 @@ export function LinkPreview({ label, url, filters }: LinkPreviewProps) {
<EuiFlexItem grow={false}>
<EuiText size="s" color="subdued">
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.linkPreview.descrition',
'xpack.apm.settings.customLink.linkPreview.descrition',
{
defaultMessage:
'Test your link with values from an example transaction document based on the filters above.',

View file

@ -10,8 +10,8 @@ import { NotificationsStart } from 'kibana/public';
import {
Filter,
CustomLink,
} from '../../../../../../../common/custom_link/custom_link_types';
import { callApmApi } from '../../../../../../services/rest/createCallApmApi';
} from '../../../../../../common/custom_link/custom_link_types';
import { callApmApi } from '../../../../../services/rest/createCallApmApi';
export async function saveCustomLink({
id,
@ -53,19 +53,17 @@ export async function saveCustomLink({
}
toasts.addSuccess({
iconType: 'check',
title: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.create.successed',
{ defaultMessage: 'Link saved!' }
),
title: i18n.translate('xpack.apm.settings.customLink.create.successed', {
defaultMessage: 'Link saved!',
}),
});
} catch (error) {
toasts.addDanger({
title: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.create.failed',
{ defaultMessage: 'Link could not be saved!' }
),
title: i18n.translate('xpack.apm.settings.customLink.create.failed', {
defaultMessage: 'Link could not be saved!',
}),
text: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.create.failed.message',
'xpack.apm.settings.customLink.create.failed.message',
{
defaultMessage:
'Something went wrong when saving the link. Error: "{errorMessage}"',

View file

@ -16,11 +16,11 @@ import {
import { i18n } from '@kbn/i18n';
import { isEmpty } from 'lodash';
import React, { useState } from 'react';
import { CustomLink } from '../../../../../../common/custom_link/custom_link_types';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
import { LoadingStatePrompt } from '../../../../shared/LoadingStatePrompt';
import { ITableColumn, ManagedTable } from '../../../../shared/managed_table';
import { TimestampTooltip } from '../../../../shared/TimestampTooltip';
import { CustomLink } from '../../../../../common/custom_link/custom_link_types';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { LoadingStatePrompt } from '../../../shared/LoadingStatePrompt';
import { ITableColumn, ManagedTable } from '../../../shared/managed_table';
import { TimestampTooltip } from '../../../shared/TimestampTooltip';
interface Props {
items: CustomLink[];
@ -35,28 +35,25 @@ export function CustomLinkTable({ items = [], onCustomLinkSelected }: Props) {
const columns: Array<ITableColumn<CustomLink>> = [
{
field: 'label',
name: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.name',
{ defaultMessage: 'Name' }
),
name: i18n.translate('xpack.apm.settings.customLink.table.name', {
defaultMessage: 'Name',
}),
truncateText: true,
},
{
field: 'url',
name: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.url',
{ defaultMessage: 'URL' }
),
name: i18n.translate('xpack.apm.settings.customLink.table.url', {
defaultMessage: 'URL',
}),
truncateText: true,
},
{
width: '160px',
align: RIGHT_ALIGNMENT,
field: '@timestamp',
name: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.lastUpdated',
{ defaultMessage: 'Last updated' }
),
name: i18n.translate('xpack.apm.settings.customLink.table.lastUpdated', {
defaultMessage: 'Last updated',
}),
sortable: true,
render: (value: number) => (
<TimestampTooltip time={value} timeUnit="minutes" />
@ -70,11 +67,11 @@ export function CustomLinkTable({ items = [], onCustomLinkSelected }: Props) {
? [
{
name: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.editButtonLabel',
'xpack.apm.settings.customLink.table.editButtonLabel',
{ defaultMessage: 'Edit' }
),
description: i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.editButtonDescription',
'xpack.apm.settings.customLink.table.editButtonDescription',
{ defaultMessage: 'Edit this custom link' }
),
icon: 'pencil',
@ -105,7 +102,7 @@ export function CustomLinkTable({ items = [], onCustomLinkSelected }: Props) {
fullWidth
onChange={(e) => setSearchTerm(e.target.value)}
placeholder={i18n.translate(
'xpack.apm.settings.customizeUI.customLink.searchInput.filter',
'xpack.apm.settings.customLink.searchInput.filter',
{
defaultMessage: 'Filter links by Name and URL...',
}
@ -135,13 +132,10 @@ function NoResultFound({ value }: { value: string }) {
<EuiFlexGroup justifyContent="spaceAround">
<EuiFlexItem grow={false}>
<EuiText size="s">
{i18n.translate(
'xpack.apm.settings.customizeUI.customLink.table.noResultFound',
{
defaultMessage: `No results for "{value}".`,
values: { value },
}
)}
{i18n.translate('xpack.apm.settings.customLink.table.noResultFound', {
defaultMessage: `No results for "{value}".`,
values: { value },
})}
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>

View file

@ -8,20 +8,20 @@
import { fireEvent, render, RenderResult } from '@testing-library/react';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { getCallApmApiSpy } from '../../../../../services/rest/callApmApiSpy';
import { getCallApmApiSpy } from '../../../../services/rest/callApmApiSpy';
import { CustomLinkOverview } from '.';
import { License } from '../../../../../../../licensing/common/license';
import { ApmPluginContextValue } from '../../../../../context/apm_plugin/apm_plugin_context';
import { License } from '../../../../../../licensing/common/license';
import { ApmPluginContextValue } from '../../../../context/apm_plugin/apm_plugin_context';
import {
mockApmPluginContextValue,
MockApmPluginContextWrapper,
} from '../../../../../context/apm_plugin/mock_apm_plugin_context';
import { LicenseContext } from '../../../../../context/license/license_context';
import * as hooks from '../../../../../hooks/use_fetcher';
} from '../../../../context/apm_plugin/mock_apm_plugin_context';
import { LicenseContext } from '../../../../context/license/license_context';
import * as hooks from '../../../../hooks/use_fetcher';
import {
expectTextsInDocument,
expectTextsNotInDocument,
} from '../../../../../utils/testHelpers';
} from '../../../../utils/testHelpers';
import * as saveCustomLink from './create_edit_custom_link_flyout/saveCustomLink';
const data = {

View file

@ -15,11 +15,11 @@ import {
import { i18n } from '@kbn/i18n';
import { isEmpty } from 'lodash';
import React, { useEffect, useState } from 'react';
import { INVALID_LICENSE } from '../../../../../../common/custom_link';
import { CustomLink } from '../../../../../../common/custom_link/custom_link_types';
import { useLicenseContext } from '../../../../../context/license/use_license_context';
import { FETCH_STATUS, useFetcher } from '../../../../../hooks/use_fetcher';
import { LicensePrompt } from '../../../../shared/license_prompt';
import { INVALID_LICENSE } from '../../../../../common/custom_link';
import { CustomLink } from '../../../../../common/custom_link/custom_link_types';
import { useLicenseContext } from '../../../../context/license/use_license_context';
import { FETCH_STATUS, useFetcher } from '../../../../hooks/use_fetcher';
import { LicensePrompt } from '../../../shared/license_prompt';
import { CreateCustomLinkButton } from './CreateCustomLinkButton';
import { CreateEditCustomLinkFlyout } from './create_edit_custom_link_flyout';
import { CustomLinkTable } from './custom_link_table';
@ -84,7 +84,7 @@ export function CustomLinkOverview() {
)}
<EuiText color="subdued">
{i18n.translate('xpack.apm.settings.customizeUI.customLink.info', {
{i18n.translate('xpack.apm.settings.customLink.info', {
defaultMessage:
'These links will be shown in the Actions context menu in selected areas of the app, e.g. by the transactions detail.',
})}
@ -96,7 +96,7 @@ export function CustomLinkOverview() {
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<h2>
{i18n.translate('xpack.apm.settings.customizeUI.customLink', {
{i18n.translate('xpack.apm.settings.customLink', {
defaultMessage: 'Custom Links',
})}
</h2>

View file

@ -1,13 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import React from 'react';
import { CustomLinkOverview } from './custom_link';
export function CustomizeUI() {
return <CustomLinkOverview />;
}

View file

@ -16,7 +16,7 @@ import { AgentConfigurations } from '../../app/Settings/agent_configurations';
import { CreateAgentConfigurationRouteView } from './create_agent_configuration_route_view';
import { EditAgentConfigurationRouteView } from './edit_agent_configuration_route_view';
import { ApmIndices } from '../../app/Settings/ApmIndices';
import { CustomizeUI } from '../../app/Settings/customize_ui';
import { CustomLinkOverview } from '../../app/Settings/custom_link';
import { Schema } from '../../app/Settings/schema';
import { AnomalyDetection } from '../../app/Settings/anomaly_detection';
import { AgentKeys } from '../../app/Settings/agent_keys';
@ -110,12 +110,12 @@ export const settings = {
element: <ApmIndices />,
}),
page({
path: '/settings/customize-ui',
title: i18n.translate('xpack.apm.views.settings.customizeUI.title', {
defaultMessage: 'Customize app',
path: '/settings/custom-links',
title: i18n.translate('xpack.apm.views.settings.customLink.title', {
defaultMessage: 'Custom Links',
}),
tab: 'customize-ui',
element: <CustomizeUI />,
tab: 'custom-links',
element: <CustomLinkOverview />,
}),
page({
path: '/settings/schema',

View file

@ -21,7 +21,7 @@ type Tab = NonNullable<EuiPageHeaderProps['tabs']>[0] & {
| 'agent-keys'
| 'anomaly-detection'
| 'apm-indices'
| 'customize-ui'
| 'custom-links'
| 'schema';
hidden?: boolean;
};
@ -100,13 +100,13 @@ function getTabs({
hidden: !canAccessML,
},
{
key: 'customize-ui',
key: 'custom-links',
label: i18n.translate('xpack.apm.settings.customizeApp', {
defaultMessage: 'Customize app',
defaultMessage: 'Custom Links',
}),
href: getLegacyApmHref({
basePath,
path: `/settings/customize-ui`,
path: `/settings/custom-links`,
search,
}),
},

View file

@ -39,7 +39,7 @@ export function CustomLinkToolbar({
defaultMessage: 'Manage custom links',
})}
>
<APMLink path={`/settings/customize-ui`}>
<APMLink path={`/settings/custom-links`}>
<EuiIcon
type="gear"
color="text"

View file

@ -30,8 +30,8 @@ import {
import { Transaction } from '../../../../../typings/es_schemas/ui/transaction';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { FETCH_STATUS, useFetcher } from '../../../../hooks/use_fetcher';
import { CreateEditCustomLinkFlyout } from '../../../app/Settings/customize_ui/custom_link/create_edit_custom_link_flyout';
import { convertFiltersToQuery } from '../../../app/Settings/customize_ui/custom_link/create_edit_custom_link_flyout/helper';
import { CreateEditCustomLinkFlyout } from '../../../app/Settings/custom_link/create_edit_custom_link_flyout';
import { convertFiltersToQuery } from '../../../app/Settings/custom_link/create_edit_custom_link_flyout/helper';
import { LoadingStatePrompt } from '../../LoadingStatePrompt';
import { CustomLinkToolbar } from './CustomLinkToolbar';
import { CustomLinkList } from './custom_link_list';

View file

@ -6064,53 +6064,53 @@
"xpack.apm.settings.apmIndices.transactionIndicesLabel": "トランザクションインデックス",
"xpack.apm.settings.createApmPackagePolicy.errorToast.title": "クラウドエージェントポリシーでAPMパッケージポリシーを作成できません",
"xpack.apm.settings.customizeApp": "アプリをカスタマイズ",
"xpack.apm.settings.customizeUI.customLink": "カスタムリンク",
"xpack.apm.settings.customizeUI.customLink.create.failed": "リンクを保存できませんでした!",
"xpack.apm.settings.customizeUI.customLink.create.failed.message": "リンクを保存するときに問題が発生しました。エラー:「{errorMessage}」",
"xpack.apm.settings.customizeUI.customLink.create.successed": "リンクを保存しました。",
"xpack.apm.settings.customizeUI.customLink.createCustomLink": "カスタムリンクを作成",
"xpack.apm.settings.customizeUI.customLink.default.label": "Elastic.co",
"xpack.apm.settings.customizeUI.customLink.default.url": "https://www.elastic.co",
"xpack.apm.settings.customizeUI.customLink.delete": "削除",
"xpack.apm.settings.customizeUI.customLink.delete.failed": "カスタムリンクを削除できませんでした",
"xpack.apm.settings.customizeUI.customLink.delete.successed": "カスタムリンクを削除しました。",
"xpack.apm.settings.customizeUI.customLink.emptyPromptText": "変更しましょう。サービスごとのトランザクションの詳細でアクションコンテキストメニューにカスタムリンクを追加できます。自社のサポートポータルへの役立つリンクを作成するか、新しい不具合レポートを発行します。詳細はドキュメントをご覧ください。",
"xpack.apm.settings.customizeUI.customLink.emptyPromptTitle": "リンクが見つかりません。",
"xpack.apm.settings.customizeUI.customLink.flyout.action.title": "リンク",
"xpack.apm.settings.customizeUI.customLink.flyout.close": "閉じる",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter": "別のフィルターを追加",
"xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption": "フィールドを選択してください...",
"xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value": "値",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend": "フィールド",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle": "フィルターオプションを使用すると、特定のサービスについてのみ表示されるようにスコープを設定できます。",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.title": "フィルター",
"xpack.apm.settings.customizeUI.customLink.flyout.label": "リンクは APM アプリ全体にわたるトランザクション詳細のコンテキストで利用できるようになります。作成できるリンクの数は無制限です。トランザクションメタデータのいずれかを使用することで、動的変数を参照して URL を入力できます。さらなる詳細および例がドキュメンテーションに記載されています",
"xpack.apm.settings.customizeUI.customLink.flyout.label.doc": "ドキュメンテーション",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label": "ラベル",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText": "これはアクションコンテキストメニューに表示されるラベルです。できるだけ短くしてください。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder": "例:サポートチケット",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url": "URL",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc": "詳細はドキュメントをご覧ください。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText": "URL にフィールド名変数(例:{sample})を追加すると値を適用できます。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder": "例https://www.elastic.co/",
"xpack.apm.settings.customizeUI.customLink.flyout.required": "必須",
"xpack.apm.settings.customizeUI.customLink.flyout.save": "保存",
"xpack.apm.settings.customizeUI.customLink.flyout.title": "リンクを作成",
"xpack.apm.settings.customizeUI.customLink.info": "これらのリンクは、トランザクション詳細などによって、アプリの選択した領域にあるアクションコンテキストメニューに表示されます。",
"xpack.apm.settings.customizeUI.customLink.license.text": "カスタムリンクを作成するには、Elastic Gold 以上のライセンスが必要です。適切なライセンスがあれば、カスタムリンクを作成してサービスを分析する際にワークフローを改良できます。",
"xpack.apm.settings.customizeUI.customLink.linkPreview.descrition": "上記のフィルターに基づき、サンプルトランザクションドキュメントの値でリンクをテストしてください。",
"xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel": "ユーザーロールには、カスタムリンクを作成する権限がありません",
"xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid": "無効な変数が定義されているため、サンプルトランザクションドキュメントが見つかりませんでした。",
"xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch": "{variables} に一致する値がサンプルトランザクションドキュメント内にありませんでした。",
"xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound": "定義されたフィルターに基づき、一致するトランザクションドキュメントが見つかりませんでした。",
"xpack.apm.settings.customizeUI.customLink.previewSectionTitle": "プレビュー",
"xpack.apm.settings.customizeUI.customLink.searchInput.filter": "名前と URL でリンクをフィルタリング...",
"xpack.apm.settings.customizeUI.customLink.table.editButtonDescription": "このカスタムリンクを編集",
"xpack.apm.settings.customizeUI.customLink.table.editButtonLabel": "編集",
"xpack.apm.settings.customizeUI.customLink.table.lastUpdated": "最終更新",
"xpack.apm.settings.customizeUI.customLink.table.name": "名前",
"xpack.apm.settings.customizeUI.customLink.table.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。",
"xpack.apm.settings.customizeUI.customLink.table.url": "URL",
"xpack.apm.settings.customLink": "カスタムリンク",
"xpack.apm.settings.customLink.create.failed": "リンクを保存できませんでした!",
"xpack.apm.settings.customLink.create.failed.message": "リンクを保存するときに問題が発生しました。エラー:「{errorMessage}」",
"xpack.apm.settings.customLink.create.successed": "リンクを保存しました。",
"xpack.apm.settings.customLink.createCustomLink": "カスタムリンクを作成",
"xpack.apm.settings.customLink.default.label": "Elastic.co",
"xpack.apm.settings.customLink.default.url": "https://www.elastic.co",
"xpack.apm.settings.customLink.delete": "削除",
"xpack.apm.settings.customLink.delete.failed": "カスタムリンクを削除できませんでした",
"xpack.apm.settings.customLink.delete.successed": "カスタムリンクを削除しました。",
"xpack.apm.settings.customLink.emptyPromptText": "変更しましょう。サービスごとのトランザクションの詳細でアクションコンテキストメニューにカスタムリンクを追加できます。自社のサポートポータルへの役立つリンクを作成するか、新しい不具合レポートを発行します。詳細はドキュメントをご覧ください。",
"xpack.apm.settings.customLink.emptyPromptTitle": "リンクが見つかりません。",
"xpack.apm.settings.customLink.flyout.action.title": "リンク",
"xpack.apm.settings.customLink.flyout.close": "閉じる",
"xpack.apm.settings.customLink.flyout.filters.addAnotherFilter": "別のフィルターを追加",
"xpack.apm.settings.customLink.flyOut.filters.defaultOption": "フィールドを選択してください...",
"xpack.apm.settings.customLink.flyOut.filters.defaultOption.value": "値",
"xpack.apm.settings.customLink.flyout.filters.prepend": "フィールド",
"xpack.apm.settings.customLink.flyout.filters.subtitle": "フィルターオプションを使用すると、特定のサービスについてのみ表示されるようにスコープを設定できます。",
"xpack.apm.settings.customLink.flyout.filters.title": "フィルター",
"xpack.apm.settings.customLink.flyout.label": "リンクは APM アプリ全体にわたるトランザクション詳細のコンテキストで利用できるようになります。作成できるリンクの数は無制限です。トランザクションメタデータのいずれかを使用することで、動的変数を参照して URL を入力できます。さらなる詳細および例がドキュメンテーションに記載されています",
"xpack.apm.settings.customLink.flyout.label.doc": "ドキュメンテーション",
"xpack.apm.settings.customLink.flyout.link.label": "ラベル",
"xpack.apm.settings.customLink.flyout.link.label.helpText": "これはアクションコンテキストメニューに表示されるラベルです。できるだけ短くしてください。",
"xpack.apm.settings.customLink.flyout.link.label.placeholder": "例:サポートチケット",
"xpack.apm.settings.customLink.flyout.link.url": "URL",
"xpack.apm.settings.customLink.flyout.link.url.doc": "詳細はドキュメントをご覧ください。",
"xpack.apm.settings.customLink.flyout.link.url.helpText": "URL にフィールド名変数(例:{sample})を追加すると値を適用できます。",
"xpack.apm.settings.customLink.flyout.link.url.placeholder": "例https://www.elastic.co/",
"xpack.apm.settings.customLink.flyout.required": "必須",
"xpack.apm.settings.customLink.flyout.save": "保存",
"xpack.apm.settings.customLink.flyout.title": "リンクを作成",
"xpack.apm.settings.customLink.info": "これらのリンクは、トランザクション詳細などによって、アプリの選択した領域にあるアクションコンテキストメニューに表示されます。",
"xpack.apm.settings.customLink.license.text": "カスタムリンクを作成するには、Elastic Gold 以上のライセンスが必要です。適切なライセンスがあれば、カスタムリンクを作成してサービスを分析する際にワークフローを改良できます。",
"xpack.apm.settings.customLink.linkPreview.descrition": "上記のフィルターに基づき、サンプルトランザクションドキュメントの値でリンクをテストしてください。",
"xpack.apm.settings.customLink.noPermissionTooltipLabel": "ユーザーロールには、カスタムリンクを作成する権限がありません",
"xpack.apm.settings.customLink.preview.contextVariable.invalid": "無効な変数が定義されているため、サンプルトランザクションドキュメントが見つかりませんでした。",
"xpack.apm.settings.customLink.preview.contextVariable.noMatch": "{variables} に一致する値がサンプルトランザクションドキュメント内にありませんでした。",
"xpack.apm.settings.customLink.preview.transaction.notFound": "定義されたフィルターに基づき、一致するトランザクションドキュメントが見つかりませんでした。",
"xpack.apm.settings.customLink.previewSectionTitle": "プレビュー",
"xpack.apm.settings.customLink.searchInput.filter": "名前と URL でリンクをフィルタリング...",
"xpack.apm.settings.customLink.table.editButtonDescription": "このカスタムリンクを編集",
"xpack.apm.settings.customLink.table.editButtonLabel": "編集",
"xpack.apm.settings.customLink.table.lastUpdated": "最終更新",
"xpack.apm.settings.customLink.table.name": "名前",
"xpack.apm.settings.customLink.table.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。",
"xpack.apm.settings.customLink.table.url": "URL",
"xpack.apm.settings.indices": "インデックス",
"xpack.apm.settings.schema": "スキーマ",
"xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "クラウドでAPMサーバー設定に移動",
@ -6439,7 +6439,7 @@
"xpack.apm.views.settings.agentConfiguration.title": "エージェントの編集",
"xpack.apm.views.settings.anomalyDetection.title": "異常検知",
"xpack.apm.views.settings.createAgentConfiguration.title": "エージェント構成の作成",
"xpack.apm.views.settings.customizeUI.title": "アプリをカスタマイズ",
"xpack.apm.views.settings.customLink.title": "リンクをカスタマイズする",
"xpack.apm.views.settings.editAgentConfiguration.title": "エージェント構成の編集",
"xpack.apm.views.settings.indices.title": "インデックス",
"xpack.apm.views.settings.schema.title": "スキーマ",

View file

@ -6105,53 +6105,53 @@
"xpack.apm.settings.apmIndices.transactionIndicesLabel": "事务索引",
"xpack.apm.settings.createApmPackagePolicy.errorToast.title": "无法在云代理策略上创建 APM 软件包策略",
"xpack.apm.settings.customizeApp": "定制应用",
"xpack.apm.settings.customizeUI.customLink": "定制链接",
"xpack.apm.settings.customizeUI.customLink.create.failed": "链接无法保存!",
"xpack.apm.settings.customizeUI.customLink.create.failed.message": "保存链接时出现了问题。错误:“{errorMessage}”",
"xpack.apm.settings.customizeUI.customLink.create.successed": "链接已保存!",
"xpack.apm.settings.customizeUI.customLink.createCustomLink": "创建定制链接",
"xpack.apm.settings.customizeUI.customLink.default.label": "Elastic.co",
"xpack.apm.settings.customizeUI.customLink.default.url": "https://www.elastic.co",
"xpack.apm.settings.customizeUI.customLink.delete": "删除",
"xpack.apm.settings.customizeUI.customLink.delete.failed": "无法删除定制链接",
"xpack.apm.settings.customizeUI.customLink.delete.successed": "已删除定制链接。",
"xpack.apm.settings.customizeUI.customLink.emptyPromptText": "让我们改动一下!可以通过每个服务的事务详情将定制链接添加到“操作”上下文菜单。创建指向公司支持门户或用于提交新错误报告的有用链接。在我们的文档中详细了解。",
"xpack.apm.settings.customizeUI.customLink.emptyPromptTitle": "未找到链接。",
"xpack.apm.settings.customizeUI.customLink.flyout.action.title": "链接",
"xpack.apm.settings.customizeUI.customLink.flyout.close": "关闭",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter": "添加另一个筛选",
"xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption": "选择字段......",
"xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value": "值",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend": "字段",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle": "使用筛选选项以使它们仅显示在特定服务中。",
"xpack.apm.settings.customizeUI.customLink.flyout.filters.title": "筛选",
"xpack.apm.settings.customizeUI.customLink.flyout.label": "通过 APM 应用,链接将可用于事务详情的上下文中。您可以创建无限数量的链接。可以通过任何事务元数据填写 URL 来引用动态变量。包括示例在内的更多信息在",
"xpack.apm.settings.customizeUI.customLink.flyout.label.doc": "文档中提供。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label": "标签",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText": "这是操作上下文菜单中显示的标签。使其尽量地简短。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder": "如支持工单",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url": "URL",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc": "在文档中了解详情。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText": "将字段名称变量添加到 URL 以应用值,例如 {sample}。",
"xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder": "例如 https://www.elastic.co/",
"xpack.apm.settings.customizeUI.customLink.flyout.required": "必需",
"xpack.apm.settings.customizeUI.customLink.flyout.save": "保存",
"xpack.apm.settings.customizeUI.customLink.flyout.title": "创建链接",
"xpack.apm.settings.customizeUI.customLink.info": "这些链接将显示在应用选定区域(例如事务详情)的“操作”上下文菜单中。",
"xpack.apm.settings.customizeUI.customLink.license.text": "要创建定制链接,必须订阅 Elastic 金级或更高许可证。使用上述许可证,将能够创建定制链接,以改善分析服务时的流程。",
"xpack.apm.settings.customizeUI.customLink.linkPreview.descrition": "使用示例事务文档中的值基于上述筛选测试链接。",
"xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel": "您的用户角色无权创建定制链接",
"xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid": "由于定义的变量无效,我们无法找到示例事务文档。",
"xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch": "在示例文档中我们找不到匹配 {variables} 的值。",
"xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound": "基于定义的筛选,我们找不到匹配的事务文档。",
"xpack.apm.settings.customizeUI.customLink.previewSectionTitle": "预览",
"xpack.apm.settings.customizeUI.customLink.searchInput.filter": "按名称和 URL 筛选链接......",
"xpack.apm.settings.customizeUI.customLink.table.editButtonDescription": "编辑此定制链接",
"xpack.apm.settings.customizeUI.customLink.table.editButtonLabel": "编辑",
"xpack.apm.settings.customizeUI.customLink.table.lastUpdated": "上次更新时间",
"xpack.apm.settings.customizeUI.customLink.table.name": "名称",
"xpack.apm.settings.customizeUI.customLink.table.noResultFound": "没有“{value}”的结果。",
"xpack.apm.settings.customizeUI.customLink.table.url": "URL",
"xpack.apm.settings.customLink": "定制链接",
"xpack.apm.settings.customLink.create.failed": "链接无法保存!",
"xpack.apm.settings.customLink.create.failed.message": "保存链接时出现了问题。错误:“{errorMessage}”",
"xpack.apm.settings.customLink.create.successed": "链接已保存!",
"xpack.apm.settings.customLink.createCustomLink": "创建定制链接",
"xpack.apm.settings.customLink.default.label": "Elastic.co",
"xpack.apm.settings.customLink.default.url": "https://www.elastic.co",
"xpack.apm.settings.customLink.delete": "删除",
"xpack.apm.settings.customLink.delete.failed": "无法删除定制链接",
"xpack.apm.settings.customLink.delete.successed": "已删除定制链接。",
"xpack.apm.settings.customLink.emptyPromptText": "让我们改动一下!可以通过每个服务的事务详情将定制链接添加到“操作”上下文菜单。创建指向公司支持门户或用于提交新错误报告的有用链接。在我们的文档中详细了解。",
"xpack.apm.settings.customLink.emptyPromptTitle": "未找到链接。",
"xpack.apm.settings.customLink.flyout.action.title": "链接",
"xpack.apm.settings.customLink.flyout.close": "关闭",
"xpack.apm.settings.customLink.flyout.filters.addAnotherFilter": "添加另一个筛选",
"xpack.apm.settings.customLink.flyOut.filters.defaultOption": "选择字段......",
"xpack.apm.settings.customLink.flyOut.filters.defaultOption.value": "值",
"xpack.apm.settings.customLink.flyout.filters.prepend": "字段",
"xpack.apm.settings.customLink.flyout.filters.subtitle": "使用筛选选项以使它们仅显示在特定服务中。",
"xpack.apm.settings.customLink.flyout.filters.title": "筛选",
"xpack.apm.settings.customLink.flyout.label": "通过 APM 应用,链接将可用于事务详情的上下文中。您可以创建无限数量的链接。可以通过任何事务元数据填写 URL 来引用动态变量。包括示例在内的更多信息在",
"xpack.apm.settings.customLink.flyout.label.doc": "文档中提供。",
"xpack.apm.settings.customLink.flyout.link.label": "标签",
"xpack.apm.settings.customLink.flyout.link.label.helpText": "这是操作上下文菜单中显示的标签。使其尽量地简短。",
"xpack.apm.settings.customLink.flyout.link.label.placeholder": "如支持工单",
"xpack.apm.settings.customLink.flyout.link.url": "URL",
"xpack.apm.settings.customLink.flyout.link.url.doc": "在文档中了解详情。",
"xpack.apm.settings.customLink.flyout.link.url.helpText": "将字段名称变量添加到 URL 以应用值,例如 {sample}。",
"xpack.apm.settings.customLink.flyout.link.url.placeholder": "例如 https://www.elastic.co/",
"xpack.apm.settings.customLink.flyout.required": "必需",
"xpack.apm.settings.customLink.flyout.save": "保存",
"xpack.apm.settings.customLink.flyout.title": "创建链接",
"xpack.apm.settings.customLink.info": "这些链接将显示在应用选定区域(例如事务详情)的“操作”上下文菜单中。",
"xpack.apm.settings.customLink.license.text": "要创建定制链接,必须订阅 Elastic 金级或更高许可证。使用上述许可证,将能够创建定制链接,以改善分析服务时的流程。",
"xpack.apm.settings.customLink.linkPreview.descrition": "使用示例事务文档中的值基于上述筛选测试链接。",
"xpack.apm.settings.customLink.noPermissionTooltipLabel": "您的用户角色无权创建定制链接",
"xpack.apm.settings.customLink.preview.contextVariable.invalid": "由于定义的变量无效,我们无法找到示例事务文档。",
"xpack.apm.settings.customLink.preview.contextVariable.noMatch": "在示例文档中我们找不到匹配 {variables} 的值。",
"xpack.apm.settings.customLink.preview.transaction.notFound": "基于定义的筛选,我们找不到匹配的事务文档。",
"xpack.apm.settings.customLink.previewSectionTitle": "预览",
"xpack.apm.settings.customLink.searchInput.filter": "按名称和 URL 筛选链接......",
"xpack.apm.settings.customLink.table.editButtonDescription": "编辑此定制链接",
"xpack.apm.settings.customLink.table.editButtonLabel": "编辑",
"xpack.apm.settings.customLink.table.lastUpdated": "上次更新时间",
"xpack.apm.settings.customLink.table.name": "名称",
"xpack.apm.settings.customLink.table.noResultFound": "没有“{value}”的结果。",
"xpack.apm.settings.customLink.table.url": "URL",
"xpack.apm.settings.indices": "索引",
"xpack.apm.settings.schema": "架构",
"xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "前往 Cloud 中的 APM Server 设置",
@ -6484,7 +6484,7 @@
"xpack.apm.views.settings.agentConfiguration.title": "代理配置",
"xpack.apm.views.settings.anomalyDetection.title": "异常检测",
"xpack.apm.views.settings.createAgentConfiguration.title": "创建代理配置",
"xpack.apm.views.settings.customizeUI.title": "定制应用",
"xpack.apm.views.settings.customLink.title": "自定义链接",
"xpack.apm.views.settings.editAgentConfiguration.title": "编辑代理配置",
"xpack.apm.views.settings.indices.title": "索引",
"xpack.apm.views.settings.schema.title": "架构",