mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[APM] Update "customize-app" route path (#121032)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
9b15697390
commit
2c6ef2047f
28 changed files with 243 additions and 299 deletions
|
@ -305,7 +305,7 @@ type MapRoutes<TRoutes, TParents extends Route[] = []> = TRoutes extends [Route]
|
|||
// element,
|
||||
// },
|
||||
// {
|
||||
// path: '/settings/customize-ui',
|
||||
// path: '/settings/custom-links',
|
||||
// element,
|
||||
// },
|
||||
// {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
const basePath = '/app/apm/settings/customize-ui';
|
||||
const basePath = '/app/apm/settings/custom-links';
|
||||
|
||||
describe('Custom links', () => {
|
||||
beforeEach(() => {
|
||||
|
|
|
@ -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>
|
||||
);
|
|
@ -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>
|
||||
</>
|
||||
}
|
|
@ -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 }) {
|
|
@ -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',
|
||||
}),
|
||||
});
|
||||
}
|
||||
}
|
|
@ -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;
|
|
@ -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',
|
||||
}
|
|
@ -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>
|
|
@ -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',
|
||||
}
|
|
@ -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', () => {
|
|
@ -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.",
|
|
@ -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.',
|
||||
}
|
|
@ -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 {
|
|
@ -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.',
|
|
@ -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}"',
|
|
@ -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>
|
|
@ -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 = {
|
|
@ -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>
|
|
@ -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 />;
|
||||
}
|
|
@ -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',
|
||||
|
|
|
@ -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,
|
||||
}),
|
||||
},
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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": "スキーマ",
|
||||
|
|
|
@ -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": "架构",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue