mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
* Move apm tutorial from apm plugin into apm_oss plugin (#66432) * Move apm tutorial from apm plugin into apm_oss plugin Closes #65629 * Fix types issues and some paths * Add unregisterTutorial to tutorials_registry.mock * Add apm path to .i18nrc.json to fix internationalization error * Rename apm path in .i18nrc.json into apmOss and revert some imports paths # Conflicts: # x-pack/plugins/apm/server/tutorial/instructions/apm_agent_instructions.ts * Fixed some eslint issues * Fix apmOSSPluginSetupMock
This commit is contained in:
parent
49f7bc097e
commit
ce0e4f6ded
26 changed files with 1273 additions and 1325 deletions
|
@ -56,7 +56,8 @@
|
|||
"visTypeVislib": "src/plugins/vis_type_vislib",
|
||||
"visTypeXy": "src/plugins/vis_type_xy",
|
||||
"visualizations": "src/plugins/visualizations",
|
||||
"visualize": "src/plugins/visualize"
|
||||
"visualize": "src/plugins/visualize",
|
||||
"apmOss": "src/plugins/apm_oss"
|
||||
},
|
||||
"exclude": [
|
||||
"src/legacy/ui/ui_render/ui_render_mixin.js"
|
||||
|
|
20
src/plugins/apm_oss/common/index_pattern_constants.ts
Normal file
20
src/plugins/apm_oss/common/index_pattern_constants.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
export const APM_STATIC_INDEX_PATTERN_ID = 'apm_static_index_pattern_id';
|
|
@ -6,6 +6,6 @@
|
|||
"configPath": [
|
||||
"apm_oss"
|
||||
],
|
||||
"ui": false,
|
||||
"requiredPlugins": []
|
||||
"ui": true,
|
||||
"requiredPlugins": ["home"]
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 311 KiB After Width: | Height: | Size: 311 KiB |
29
src/plugins/apm_oss/public/index.ts
Normal file
29
src/plugins/apm_oss/public/index.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { ApmOssPlugin } from './plugin';
|
||||
|
||||
// This exports static code and TypeScript types,
|
||||
// as well as, Kibana Platform `plugin()` initializer.
|
||||
export function plugin() {
|
||||
return new ApmOssPlugin();
|
||||
}
|
||||
export { ApmOssPluginSetup, ApmOssPluginStart } from './types';
|
||||
|
||||
export { APM_STATIC_INDEX_PATTERN_ID } from '../common/index_pattern_constants';
|
33
src/plugins/apm_oss/public/plugin.ts
Normal file
33
src/plugins/apm_oss/public/plugin.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { CoreSetup, CoreStart, Plugin } from 'kibana/public';
|
||||
import { ApmOssPluginSetup, ApmOssPluginStart } from './types';
|
||||
|
||||
export class ApmOssPlugin implements Plugin<ApmOssPluginSetup, ApmOssPluginStart> {
|
||||
public setup(core: CoreSetup): ApmOssPluginSetup {
|
||||
return {};
|
||||
}
|
||||
|
||||
public start(core: CoreStart): ApmOssPluginStart {
|
||||
return {};
|
||||
}
|
||||
|
||||
public stop() {}
|
||||
}
|
27
src/plugins/apm_oss/public/types.ts
Normal file
27
src/plugins/apm_oss/public/types.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
export interface ApmOssPluginSetup {}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
export interface ApmOssPluginStart {}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
export interface AppPluginStartDependencies {}
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
import { schema, TypeOf } from '@kbn/config-schema';
|
||||
import apmIndexPattern from './tutorial/index_pattern.json';
|
||||
import { PluginInitializerContext } from '../../../core/server';
|
||||
import { APMOSSPlugin } from './plugin';
|
||||
|
||||
|
@ -41,3 +42,17 @@ export function plugin(initializerContext: PluginInitializerContext) {
|
|||
export type APMOSSConfig = TypeOf<typeof config.schema>;
|
||||
|
||||
export { APMOSSPluginSetup } from './plugin';
|
||||
|
||||
export { apmIndexPattern };
|
||||
|
||||
export {
|
||||
createNodeAgentInstructions,
|
||||
createDjangoAgentInstructions,
|
||||
createFlaskAgentInstructions,
|
||||
createRailsAgentInstructions,
|
||||
createRackAgentInstructions,
|
||||
createJsAgentInstructions,
|
||||
createGoAgentInstructions,
|
||||
createJavaAgentInstructions,
|
||||
createDotNetAgentInstructions,
|
||||
} from './tutorial/instructions/apm_agent_instructions';
|
||||
|
|
|
@ -38,6 +38,7 @@ export const apmOSSPluginSetupMock = {
|
|||
create(config: Partial<APMOSSConfig> = {}): APMOSSPluginSetup {
|
||||
return {
|
||||
config$: of({ ...defaultConfig, ...config }),
|
||||
getRegisteredTutorialProvider: jest.fn(),
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -18,18 +18,35 @@
|
|||
*/
|
||||
import { Plugin, CoreSetup, PluginInitializerContext } from 'src/core/server';
|
||||
import { Observable } from 'rxjs';
|
||||
import { take } from 'rxjs/operators';
|
||||
import { APMOSSConfig } from './';
|
||||
import { HomeServerPluginSetup, TutorialProvider } from '../../home/server';
|
||||
import { tutorialProvider } from './tutorial';
|
||||
|
||||
export class APMOSSPlugin implements Plugin<APMOSSPluginSetup> {
|
||||
constructor(private readonly initContext: PluginInitializerContext) {
|
||||
this.initContext = initContext;
|
||||
}
|
||||
|
||||
public setup(core: CoreSetup) {
|
||||
public async setup(core: CoreSetup, plugins: { home: HomeServerPluginSetup }) {
|
||||
const config$ = this.initContext.config.create<APMOSSConfig>();
|
||||
|
||||
const config = await config$.pipe(take(1)).toPromise();
|
||||
|
||||
const apmTutorialProvider = tutorialProvider({
|
||||
indexPatternTitle: config.indexPattern,
|
||||
indices: {
|
||||
errorIndices: config.errorIndices,
|
||||
metricsIndices: config.metricsIndices,
|
||||
onboardingIndices: config.onboardingIndices,
|
||||
sourcemapIndices: config.sourcemapIndices,
|
||||
transactionIndices: config.transactionIndices,
|
||||
},
|
||||
});
|
||||
plugins.home.tutorials.registerTutorial(apmTutorialProvider);
|
||||
|
||||
return {
|
||||
config$,
|
||||
getRegisteredTutorialProvider: () => apmTutorialProvider,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -39,4 +56,5 @@ export class APMOSSPlugin implements Plugin<APMOSSPluginSetup> {
|
|||
|
||||
export interface APMOSSPluginSetup {
|
||||
config$: Observable<APMOSSConfig>;
|
||||
getRegisteredTutorialProvider(): TutorialProvider;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,20 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
@ -47,46 +60,31 @@ export function onPremInstructions({
|
|||
return {
|
||||
instructionSets: [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.apmServer.title', {
|
||||
title: i18n.translate('apmOss.tutorial.apmServer.title', {
|
||||
defaultMessage: 'APM Server',
|
||||
}),
|
||||
callOut: {
|
||||
title: i18n.translate('xpack.apm.tutorial.apmServer.callOut.title', {
|
||||
title: i18n.translate('apmOss.tutorial.apmServer.callOut.title', {
|
||||
defaultMessage: 'Important: Updating to 7.0 or higher',
|
||||
}),
|
||||
message: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.callOut.message',
|
||||
{
|
||||
defaultMessage: `Please make sure your APM Server is updated to 7.0 or higher. \
|
||||
message: i18n.translate('apmOss.tutorial.apmServer.callOut.message', {
|
||||
defaultMessage: `Please make sure your APM Server is updated to 7.0 or higher. \
|
||||
You can also migrate your 6.x data with the migration assistant found in Kibana's management section.`,
|
||||
}
|
||||
),
|
||||
}),
|
||||
iconType: 'alert',
|
||||
},
|
||||
instructionVariants: [
|
||||
{
|
||||
id: INSTRUCTION_VARIANT.OSX,
|
||||
instructions: [
|
||||
createDownloadServerOsx(),
|
||||
EDIT_CONFIG,
|
||||
START_SERVER_UNIX,
|
||||
],
|
||||
instructions: [createDownloadServerOsx(), EDIT_CONFIG, START_SERVER_UNIX],
|
||||
},
|
||||
{
|
||||
id: INSTRUCTION_VARIANT.DEB,
|
||||
instructions: [
|
||||
createDownloadServerDeb(),
|
||||
EDIT_CONFIG,
|
||||
START_SERVER_UNIX_SYSV,
|
||||
],
|
||||
instructions: [createDownloadServerDeb(), EDIT_CONFIG, START_SERVER_UNIX_SYSV],
|
||||
},
|
||||
{
|
||||
id: INSTRUCTION_VARIANT.RPM,
|
||||
instructions: [
|
||||
createDownloadServerRpm(),
|
||||
EDIT_CONFIG,
|
||||
START_SERVER_UNIX_SYSV,
|
||||
],
|
||||
instructions: [createDownloadServerRpm(), EDIT_CONFIG, START_SERVER_UNIX_SYSV],
|
||||
},
|
||||
{
|
||||
id: INSTRUCTION_VARIANT.WINDOWS,
|
||||
|
@ -94,38 +92,23 @@ export function onPremInstructions({
|
|||
},
|
||||
],
|
||||
statusCheck: {
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.statusCheck.title',
|
||||
{
|
||||
defaultMessage: 'APM Server status',
|
||||
}
|
||||
),
|
||||
text: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.statusCheck.text',
|
||||
{
|
||||
defaultMessage:
|
||||
'Make sure APM Server is running before you start implementing the APM agents.',
|
||||
}
|
||||
),
|
||||
btnLabel: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.statusCheck.btnLabel',
|
||||
{
|
||||
defaultMessage: 'Check APM Server status',
|
||||
}
|
||||
),
|
||||
success: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.statusCheck.successMessage',
|
||||
{
|
||||
defaultMessage: 'You have correctly setup APM Server',
|
||||
}
|
||||
),
|
||||
error: i18n.translate(
|
||||
'xpack.apm.tutorial.apmServer.statusCheck.errorMessage',
|
||||
{
|
||||
defaultMessage:
|
||||
'No APM Server detected. Please make sure it is running and you have updated to 7.0 or higher.',
|
||||
}
|
||||
),
|
||||
title: i18n.translate('apmOss.tutorial.apmServer.statusCheck.title', {
|
||||
defaultMessage: 'APM Server status',
|
||||
}),
|
||||
text: i18n.translate('apmOss.tutorial.apmServer.statusCheck.text', {
|
||||
defaultMessage:
|
||||
'Make sure APM Server is running before you start implementing the APM agents.',
|
||||
}),
|
||||
btnLabel: i18n.translate('apmOss.tutorial.apmServer.statusCheck.btnLabel', {
|
||||
defaultMessage: 'Check APM Server status',
|
||||
}),
|
||||
success: i18n.translate('apmOss.tutorial.apmServer.statusCheck.successMessage', {
|
||||
defaultMessage: 'You have correctly setup APM Server',
|
||||
}),
|
||||
error: i18n.translate('apmOss.tutorial.apmServer.statusCheck.errorMessage', {
|
||||
defaultMessage:
|
||||
'No APM Server detected. Please make sure it is running and you have updated to 7.0 or higher.',
|
||||
}),
|
||||
esHitsCheck: {
|
||||
index: onboardingIndices,
|
||||
query: {
|
||||
|
@ -140,7 +123,7 @@ export function onPremInstructions({
|
|||
},
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.apmAgents.title', {
|
||||
title: i18n.translate('apmOss.tutorial.apmAgents.title', {
|
||||
defaultMessage: 'APM Agents',
|
||||
}),
|
||||
instructionVariants: [
|
||||
|
@ -182,56 +165,30 @@ export function onPremInstructions({
|
|||
},
|
||||
],
|
||||
statusCheck: {
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.apmAgents.statusCheck.title',
|
||||
{
|
||||
defaultMessage: 'Agent status',
|
||||
}
|
||||
),
|
||||
text: i18n.translate(
|
||||
'xpack.apm.tutorial.apmAgents.statusCheck.text',
|
||||
{
|
||||
defaultMessage:
|
||||
'Make sure your application is running and the agents are sending data.',
|
||||
}
|
||||
),
|
||||
btnLabel: i18n.translate(
|
||||
'xpack.apm.tutorial.apmAgents.statusCheck.btnLabel',
|
||||
{
|
||||
defaultMessage: 'Check agent status',
|
||||
}
|
||||
),
|
||||
success: i18n.translate(
|
||||
'xpack.apm.tutorial.apmAgents.statusCheck.successMessage',
|
||||
{
|
||||
defaultMessage:
|
||||
'Data successfully received from one or more agents',
|
||||
}
|
||||
),
|
||||
error: i18n.translate(
|
||||
'xpack.apm.tutorial.apmAgents.statusCheck.errorMessage',
|
||||
{
|
||||
defaultMessage: 'No data has been received from agents yet',
|
||||
}
|
||||
),
|
||||
title: i18n.translate('apmOss.tutorial.apmAgents.statusCheck.title', {
|
||||
defaultMessage: 'Agent status',
|
||||
}),
|
||||
text: i18n.translate('apmOss.tutorial.apmAgents.statusCheck.text', {
|
||||
defaultMessage:
|
||||
'Make sure your application is running and the agents are sending data.',
|
||||
}),
|
||||
btnLabel: i18n.translate('apmOss.tutorial.apmAgents.statusCheck.btnLabel', {
|
||||
defaultMessage: 'Check agent status',
|
||||
}),
|
||||
success: i18n.translate('apmOss.tutorial.apmAgents.statusCheck.successMessage', {
|
||||
defaultMessage: 'Data successfully received from one or more agents',
|
||||
}),
|
||||
error: i18n.translate('apmOss.tutorial.apmAgents.statusCheck.errorMessage', {
|
||||
defaultMessage: 'No data has been received from agents yet',
|
||||
}),
|
||||
esHitsCheck: {
|
||||
index: [
|
||||
errorIndices,
|
||||
transactionIndices,
|
||||
metricsIndices,
|
||||
sourcemapIndices,
|
||||
],
|
||||
index: [errorIndices, transactionIndices, metricsIndices, sourcemapIndices],
|
||||
query: {
|
||||
bool: {
|
||||
filter: [
|
||||
{
|
||||
terms: {
|
||||
'processor.event': [
|
||||
'error',
|
||||
'transaction',
|
||||
'metric',
|
||||
'sourcemap',
|
||||
],
|
||||
'processor.event': ['error', 'transaction', 'metric', 'sourcemap'],
|
||||
},
|
||||
},
|
||||
{ range: { 'observer.version_major': { gte: 7 } } },
|
93
src/plugins/apm_oss/server/tutorial/index.ts
Normal file
93
src/plugins/apm_oss/server/tutorial/index.ts
Normal file
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { onPremInstructions } from './envs/on_prem';
|
||||
import apmIndexPattern from './index_pattern.json';
|
||||
import { ArtifactsSchema, TutorialsCategory } from '../../../../../src/plugins/home/server';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../common/index_pattern_constants';
|
||||
|
||||
const apmIntro = i18n.translate('apmOss.tutorial.introduction', {
|
||||
defaultMessage: 'Collect in-depth performance metrics and errors from inside your applications.',
|
||||
});
|
||||
|
||||
export const tutorialProvider = ({
|
||||
indexPatternTitle,
|
||||
indices,
|
||||
}: {
|
||||
indexPatternTitle: string;
|
||||
indices: {
|
||||
errorIndices: string;
|
||||
transactionIndices: string;
|
||||
metricsIndices: string;
|
||||
sourcemapIndices: string;
|
||||
onboardingIndices: string;
|
||||
};
|
||||
}) => () => {
|
||||
const savedObjects = [
|
||||
{
|
||||
...apmIndexPattern,
|
||||
id: APM_STATIC_INDEX_PATTERN_ID,
|
||||
attributes: {
|
||||
...apmIndexPattern.attributes,
|
||||
title: indexPatternTitle,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const artifacts: ArtifactsSchema = {
|
||||
dashboards: [
|
||||
{
|
||||
id: '8d3ed660-7828-11e7-8c47-65b845b5cfb3',
|
||||
linkLabel: i18n.translate('apmOss.tutorial.specProvider.artifacts.dashboards.linkLabel', {
|
||||
defaultMessage: 'APM dashboard',
|
||||
}),
|
||||
isOverview: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
return {
|
||||
id: 'apm',
|
||||
name: i18n.translate('apmOss.tutorial.specProvider.name', {
|
||||
defaultMessage: 'APM',
|
||||
}),
|
||||
category: TutorialsCategory.OTHER,
|
||||
shortDescription: apmIntro,
|
||||
longDescription: i18n.translate('apmOss.tutorial.specProvider.longDescription', {
|
||||
defaultMessage:
|
||||
'Application Performance Monitoring (APM) collects in-depth \
|
||||
performance metrics and errors from inside your application. \
|
||||
It allows you to monitor the performance of thousands of applications in real time. \
|
||||
[Learn more]({learnMoreLink}).',
|
||||
values: {
|
||||
learnMoreLink:
|
||||
'{config.docs.base_url}guide/en/apm/get-started/{config.docs.version}/index.html',
|
||||
},
|
||||
}),
|
||||
euiIconType: 'apmApp',
|
||||
artifacts,
|
||||
onPrem: onPremInstructions(indices),
|
||||
previewImagePath: '/plugins/apmOss/assets/apm.png',
|
||||
savedObjects,
|
||||
savedObjectsInstallMsg: i18n.translate('apmOss.tutorial.specProvider.savedObjectsInstallMsg', {
|
||||
defaultMessage: 'An APM index pattern is required for some features in the APM UI.',
|
||||
}),
|
||||
};
|
||||
};
|
|
@ -0,0 +1,664 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
export const createNodeAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.nodeClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.nodeClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent for Node.js as a dependency to your application.',
|
||||
}),
|
||||
commands: ['npm install elastic-apm-node --save'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.nodeClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.nodeClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `serviceName`. \
|
||||
This agent supports a vararity of frameworks but can also be used with your custom stack.',
|
||||
}),
|
||||
commands: `// ${i18n.translate(
|
||||
'apmOss.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment',
|
||||
{
|
||||
defaultMessage: 'Add this to the VERY top of the first file loaded in your app',
|
||||
}
|
||||
)}
|
||||
var apm = require('elastic-apm-node').start({curlyOpen}
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Override service name from package.json',
|
||||
}
|
||||
)}
|
||||
// ${i18n.translate('apmOss.tutorial.nodeClient.configure.commands.allowedCharactersComment', {
|
||||
defaultMessage: 'Allowed characters: a-z, A-Z, 0-9, -, _, and space',
|
||||
})}
|
||||
serviceName: '',
|
||||
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
secretToken: '${secretToken}',
|
||||
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
serverUrl: '${apmServerUrl}'
|
||||
{curlyClose})`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.nodeClient.configure.textPost', {
|
||||
defaultMessage:
|
||||
'See [the documentation]({documentationLink}) for advanced usage, including how to use with \
|
||||
[Babel/ES Modules]({babelEsModulesLink}).',
|
||||
values: {
|
||||
documentationLink: '{config.docs.base_url}guide/en/apm/agent/nodejs/current/index.html',
|
||||
babelEsModulesLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/nodejs/current/advanced-setup.html#es-modules',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createDjangoAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.djangoClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.djangoClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent for Python as a dependency.',
|
||||
}),
|
||||
commands: ['$ pip install elastic-apm'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.djangoClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.djangoClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `SERVICE_NAME`.',
|
||||
}),
|
||||
commands: `# ${i18n.translate(
|
||||
'apmOss.tutorial.djangoClient.configure.commands.addAgentComment',
|
||||
{
|
||||
defaultMessage: 'Add the agent to the installed apps',
|
||||
}
|
||||
)}
|
||||
INSTALLED_APPS = (
|
||||
'elasticapm.contrib.django',
|
||||
# ...
|
||||
)
|
||||
|
||||
ELASTIC_APM = {curlyOpen}
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Set required service name. Allowed characters:',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate('apmOss.tutorial.djangoClient.configure.commands.allowedCharactersComment', {
|
||||
defaultMessage: 'a-z, A-Z, 0-9, -, _, and space',
|
||||
})}
|
||||
'SERVICE_NAME': '',
|
||||
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
'SECRET_TOKEN': '${secretToken}',
|
||||
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
'SERVER_URL': '${apmServerUrl}',
|
||||
{curlyClose}
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment', {
|
||||
defaultMessage: 'To send performance metrics, add our tracing middleware:',
|
||||
})}
|
||||
MIDDLEWARE = (
|
||||
'elasticapm.contrib.django.middleware.TracingMiddleware',
|
||||
#...
|
||||
)`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.djangoClient.configure.textPost', {
|
||||
defaultMessage: 'See the [documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/python/current/django-support.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createFlaskAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.flaskClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.flaskClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent for Python as a dependency.',
|
||||
}),
|
||||
commands: ['$ pip install elastic-apm[flask]'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.flaskClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.flaskClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `SERVICE_NAME`.',
|
||||
}),
|
||||
commands: `# ${i18n.translate(
|
||||
'apmOss.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment',
|
||||
{
|
||||
defaultMessage: 'initialize using environment variables',
|
||||
}
|
||||
)}
|
||||
from elasticapm.contrib.flask import ElasticAPM
|
||||
app = Flask(__name__)
|
||||
apm = ElasticAPM(app)
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.flaskClient.configure.commands.configureElasticApmComment', {
|
||||
defaultMessage: "or configure to use ELASTIC_APM in your application's settings",
|
||||
})}
|
||||
from elasticapm.contrib.flask import ElasticAPM
|
||||
app.config['ELASTIC_APM'] = {curlyOpen}
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Set required service name. Allowed characters:',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate('apmOss.tutorial.flaskClient.configure.commands.allowedCharactersComment', {
|
||||
defaultMessage: 'a-z, A-Z, 0-9, -, _, and space',
|
||||
})}
|
||||
'SERVICE_NAME': '',
|
||||
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
'SECRET_TOKEN': '${secretToken}',
|
||||
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
'SERVER_URL': '${apmServerUrl}',
|
||||
{curlyClose}
|
||||
|
||||
apm = ElasticAPM(app)`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.flaskClient.configure.textPost', {
|
||||
defaultMessage: 'See the [documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/python/current/flask-support.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createRailsAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.railsClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.railsClient.install.textPre', {
|
||||
defaultMessage: 'Add the agent to your Gemfile.',
|
||||
}),
|
||||
commands: [`gem 'elastic-apm'`],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.railsClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.railsClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'APM is automatically started when your app boots. Configure the agent, by creating the config file {configFile}',
|
||||
values: { configFile: '`config/elastic_apm.yml`' },
|
||||
}),
|
||||
commands: `# config/elastic_apm.yml:
|
||||
|
||||
# Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space
|
||||
# Defaults to the name of your Rails app
|
||||
# service_name: 'my-service'
|
||||
|
||||
# Use if APM Server requires a token
|
||||
# secret_token: '${secretToken}'
|
||||
|
||||
# Set custom APM Server URL (default: http://localhost:8200)
|
||||
# server_url: '${apmServerUrl || 'http://localhost:8200'}'`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.railsClient.configure.textPost', {
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced usage.\n\n',
|
||||
values: {
|
||||
documentationLink: '{config.docs.base_url}guide/en/apm/agent/ruby/current/index.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createRackAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.rackClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.rackClient.install.textPre', {
|
||||
defaultMessage: 'Add the agent to your Gemfile.',
|
||||
}),
|
||||
commands: [`gem 'elastic-apm'`],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.rackClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.rackClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'For Rack or a compatible framework (e.g. Sinatra), include the middleware in your app and start the agent.',
|
||||
}),
|
||||
commands: `# config.ru
|
||||
require 'sinatra/base'
|
||||
|
||||
class MySinatraApp < Sinatra::Base
|
||||
use ElasticAPM::Middleware
|
||||
|
||||
# ...
|
||||
end
|
||||
|
||||
ElasticAPM.start(
|
||||
app: MySinatraApp, # ${i18n.translate(
|
||||
'apmOss.tutorial.rackClient.configure.commands.requiredComment',
|
||||
{
|
||||
defaultMessage: 'required',
|
||||
}
|
||||
)}
|
||||
config_file: '' # ${i18n.translate(
|
||||
'apmOss.tutorial.rackClient.configure.commands.optionalComment',
|
||||
{
|
||||
defaultMessage: 'optional, defaults to config/elastic_apm.yml',
|
||||
}
|
||||
)}
|
||||
)
|
||||
|
||||
run MySinatraApp
|
||||
|
||||
at_exit {curlyOpen} ElasticAPM.stop {curlyClose}`.split('\n'),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.rackClient.createConfig.title', {
|
||||
defaultMessage: 'Create config file',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.rackClient.createConfig.textPre', {
|
||||
defaultMessage: 'Create a config file {configFile}:',
|
||||
values: { configFile: '`config/elastic_apm.yml`' },
|
||||
}),
|
||||
commands: `# config/elastic_apm.yml:
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.rackClient.createConfig.commands.setServiceNameComment', {
|
||||
defaultMessage: 'Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space',
|
||||
})}
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment',
|
||||
{
|
||||
defaultMessage: "Defaults to the name of your Rack app's class.",
|
||||
}
|
||||
)}
|
||||
# service_name: 'my-service'
|
||||
|
||||
# ${i18n.translate(
|
||||
'apmOss.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
# secret_token: '${secretToken}'
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.rackClient.createConfig.commands.setCustomApmServerComment', {
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultServerUrl})',
|
||||
values: { defaultServerUrl: 'http://localhost:8200' },
|
||||
})}
|
||||
# server_url: '${apmServerUrl || 'http://localhost:8200'}'`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.rackClient.createConfig.textPost', {
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced usage.\n\n',
|
||||
values: {
|
||||
documentationLink: '{config.docs.base_url}guide/en/apm/agent/ruby/current/index.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createJsAgentInstructions = (apmServerUrl = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.jsClient.enableRealUserMonitoring.title', {
|
||||
defaultMessage: 'Enable Real User Monitoring support in APM Server',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.jsClient.enableRealUserMonitoring.textPre', {
|
||||
defaultMessage:
|
||||
'APM Server disables RUM support by default. See the [documentation]({documentationLink}) \
|
||||
for details on how to enable RUM support.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/server/{config.docs.version}/configuration-rum.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.jsClient.installDependency.title', {
|
||||
defaultMessage: 'Set up the Agent as a dependency',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.jsClient.installDependency.textPre', {
|
||||
defaultMessage:
|
||||
'You can install the Agent as a dependency to your application with \
|
||||
`npm install @elastic/apm-rum --save`.\n\n\
|
||||
The Agent can then be initialized and configured in your application like this:',
|
||||
}),
|
||||
commands: `import {curlyOpen} init as initApm {curlyClose} from '@elastic/apm-rum'
|
||||
var apm = initApm({curlyOpen}
|
||||
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)',
|
||||
}
|
||||
)}
|
||||
serviceName: '',
|
||||
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
serverUrl: '${apmServerUrl}',
|
||||
|
||||
// ${i18n.translate(
|
||||
'apmOss.tutorial.jsClient.installDependency.commands.setServiceVersionComment',
|
||||
{
|
||||
defaultMessage: 'Set service version (required for source map feature)',
|
||||
}
|
||||
)}
|
||||
serviceVersion: ''
|
||||
{curlyClose})`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.jsClient.installDependency.textPost', {
|
||||
defaultMessage:
|
||||
'Framework integrations, like React or Angular, have custom dependencies. \
|
||||
See the [integration documentation]({docLink}) for more information.',
|
||||
values: {
|
||||
docLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/rum-js/current/framework-integrations.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.jsClient.scriptTags.title', {
|
||||
defaultMessage: 'Set up the Agent with Script Tags',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.jsClient.scriptTags.textPre', {
|
||||
defaultMessage:
|
||||
"Alternatively, you can use Script tags to set up and configure the Agent. \
|
||||
Add a `<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. \
|
||||
Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), \
|
||||
and host the file on your Server/CDN before deploying to production.",
|
||||
values: {
|
||||
GitHubLink: 'https://github.com/elastic/apm-agent-rum-js/releases/latest',
|
||||
UnpkgLink: 'https://unpkg.com/@elastic/apm-rum/dist/bundles/elastic-apm-rum.umd.min.js',
|
||||
},
|
||||
}),
|
||||
commands: `\
|
||||
<script src="https://your-cdn-host.com/path/to/elastic-apm-rum.umd.min.js" crossorigin></script>
|
||||
<script>
|
||||
elasticApm.init({curlyOpen}
|
||||
serviceName: 'your-app-name',
|
||||
serverUrl: 'http://localhost:8200',
|
||||
{curlyClose})
|
||||
</script>
|
||||
`.split('\n'),
|
||||
},
|
||||
];
|
||||
|
||||
export const createGoAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.goClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.goClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent packages for Go.',
|
||||
}),
|
||||
commands: ['go get go.elastic.co/apm'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.goClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.goClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the executable \
|
||||
file name, or the `ELASTIC_APM_SERVICE_NAME` environment variable.',
|
||||
}),
|
||||
commands: `# ${i18n.translate(
|
||||
'apmOss.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment',
|
||||
{
|
||||
defaultMessage: 'Initialize using environment variables:',
|
||||
}
|
||||
)}
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.goClient.configure.commands.setServiceNameComment', {
|
||||
defaultMessage: 'Set the service name. Allowed characters: # a-z, A-Z, 0-9, -, _, and space.',
|
||||
})}
|
||||
# ${i18n.translate('apmOss.tutorial.goClient.configure.commands.usedExecutableNameComment', {
|
||||
defaultMessage:
|
||||
'If ELASTIC_APM_SERVICE_NAME is not specified, the executable name will be used.',
|
||||
})}
|
||||
export ELASTIC_APM_SERVICE_NAME=
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.goClient.configure.commands.setCustomApmServerUrlComment', {
|
||||
defaultMessage: 'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
})}
|
||||
export ELASTIC_APM_SERVER_URL=${apmServerUrl}
|
||||
|
||||
# ${i18n.translate('apmOss.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment', {
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
})}
|
||||
export ELASTIC_APM_SECRET_TOKEN=${secretToken}
|
||||
`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.goClient.configure.textPost', {
|
||||
defaultMessage: 'See the [documentation]({documentationLink}) for advanced configuration.',
|
||||
values: {
|
||||
documentationLink: '{config.docs.base_url}guide/en/apm/agent/go/current/configuration.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.goClient.instrument.title', {
|
||||
defaultMessage: 'Instrument your application',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.goClient.instrument.textPre', {
|
||||
defaultMessage:
|
||||
'Instrument your Go application by using one of the provided instrumentation modules or \
|
||||
by using the tracer API directly.',
|
||||
}),
|
||||
commands: `\
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"go.elastic.co/apm/module/apmhttp"
|
||||
)
|
||||
|
||||
func main() {curlyOpen}
|
||||
mux := http.NewServeMux()
|
||||
...
|
||||
http.ListenAndServe(":8080", apmhttp.Wrap(mux))
|
||||
{curlyClose}
|
||||
`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.goClient.instrument.textPost', {
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for a detailed \
|
||||
guide to instrumenting Go source code.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/go/current/instrumenting-source.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createJavaAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.javaClient.download.title', {
|
||||
defaultMessage: 'Download the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.javaClient.download.textPre', {
|
||||
defaultMessage:
|
||||
'Download the agent jar from [Maven Central]({mavenCentralLink}). \
|
||||
Do **not** add the agent as a dependency to your application.',
|
||||
values: {
|
||||
mavenCentralLink: 'http://search.maven.org/#search%7Cga%7C1%7Ca%3Aelastic-apm-agent',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.javaClient.startApplication.title', {
|
||||
defaultMessage: 'Start your application with the javaagent flag',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.javaClient.startApplication.textPre', {
|
||||
defaultMessage:
|
||||
'Add the `-javaagent` flag and configure the agent with system properties.\n\n \
|
||||
* Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)\n \
|
||||
* Set custom APM Server URL (default: {customApmServerUrl})\n \
|
||||
* Set the base package of your application',
|
||||
values: { customApmServerUrl: 'http://localhost:8200' },
|
||||
}),
|
||||
commands: `java -javaagent:/path/to/elastic-apm-agent-<version>.jar \\
|
||||
-Delastic.apm.service_name=my-application \\
|
||||
-Delastic.apm.server_urls=${apmServerUrl || 'http://localhost:8200'} \\
|
||||
-Delastic.apm.secret_token=${secretToken} \\
|
||||
-Delastic.apm.application_packages=org.example \\
|
||||
-jar my-application.jar`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.javaClient.startApplication.textPost', {
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced \
|
||||
usage.',
|
||||
values: {
|
||||
documentationLink: '{config.docs.base_url}guide/en/apm/agent/java/current/index.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const createDotNetAgentInstructions = (apmServerUrl = '', secretToken = '') => [
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.dotNetClient.download.title', {
|
||||
defaultMessage: 'Download the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.dotNetClient.download.textPre', {
|
||||
defaultMessage:
|
||||
'Add the the agent package(s) from [NuGet]({allNuGetPackagesLink}) to your .NET application. There are multiple \
|
||||
NuGet packages available for different use cases. \n\nFor an ASP.NET Core application with Entity Framework \
|
||||
Core download the [Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) package. This package will automatically add every \
|
||||
agent component to your application. \n\n In case you would like to to minimize the dependencies, you can use the \
|
||||
[Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) package for just \
|
||||
ASP.NET Core monitoring or the [Elastic.Apm.EfCore]({efCorePackageLink}) package for just Entity Framework Core monitoring. \n\n \
|
||||
In case you only want to use the public Agent API for manual instrumentation use the [Elastic.Apm]({elasticApmPackageLink}) package.',
|
||||
values: {
|
||||
allNuGetPackagesLink: 'https://www.nuget.org/packages?q=Elastic.apm',
|
||||
netCoreAllApmPackageLink: 'https://www.nuget.org/packages/Elastic.Apm.NetCoreAll',
|
||||
aspNetCorePackageLink: 'https://www.nuget.org/packages/Elastic.Apm.AspNetCore',
|
||||
efCorePackageLink: 'https://www.nuget.org/packages/Elastic.Apm.EntityFrameworkCore',
|
||||
elasticApmPackageLink: 'https://www.nuget.org/packages/Elastic.Apm',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.dotNetClient.configureApplication.title', {
|
||||
defaultMessage: 'Add the agent to the application',
|
||||
}),
|
||||
textPre: i18n.translate('apmOss.tutorial.dotNetClient.configureApplication.textPre', {
|
||||
defaultMessage:
|
||||
'In case of ASP.NET Core with the `Elastic.Apm.NetCoreAll` package, call the `UseAllElasticApm` \
|
||||
method in the `Configure` method within the `Startup.cs` file.',
|
||||
}),
|
||||
commands: `public class Startup
|
||||
{curlyOpen}
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
|
||||
{curlyOpen}
|
||||
app.UseAllElasticApm(Configuration);
|
||||
//…rest of the method
|
||||
{curlyClose}
|
||||
//…rest of the class
|
||||
{curlyClose}`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.dotNetClient.configureApplication.textPost', {
|
||||
defaultMessage:
|
||||
'Passing an `IConfiguration` instance is optional and by doing so, the agent will read config settings through this \
|
||||
`IConfiguration` instance (e.g. from the `appsettings.json` file).',
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('apmOss.tutorial.dotNetClient.configureAgent.title', {
|
||||
defaultMessage: 'Sample appsettings.json file:',
|
||||
}),
|
||||
commands: `{curlyOpen}
|
||||
"ElasticApm": {curlyOpen}
|
||||
"SecretToken": "${secretToken}",
|
||||
"ServerUrls": "${
|
||||
apmServerUrl || 'http://localhost:8200'
|
||||
}", //Set custom APM Server URL (default: http://localhost:8200)
|
||||
"ServiceName" : "MyApp", //allowed characters: a-z, A-Z, 0-9, -, _, and space. Default is the entry assembly of the application
|
||||
{curlyClose}
|
||||
{curlyClose}`.split('\n'),
|
||||
textPost: i18n.translate('apmOss.tutorial.dotNetClient.configureAgent.textPost', {
|
||||
defaultMessage:
|
||||
'In case you don’t pass an `IConfiguration` instance to the agent (e.g. in case of non ASP.NET Core applications) \
|
||||
you can also configure the agent through environment variables. \n \
|
||||
See [the documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/dotnet/current/configuration.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
];
|
|
@ -1,16 +1,29 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
export const createEditConfig = () => ({
|
||||
title: i18n.translate('xpack.apm.tutorial.editConfig.title', {
|
||||
title: i18n.translate('apmOss.tutorial.editConfig.title', {
|
||||
defaultMessage: 'Edit the configuration',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.editConfig.textPre', {
|
||||
textPre: i18n.translate('apmOss.tutorial.editConfig.textPre', {
|
||||
defaultMessage:
|
||||
"If you're using an X-Pack secured version of Elastic Stack, you must specify \
|
||||
credentials in the `apm-server.yml` config file.",
|
||||
|
@ -24,10 +37,10 @@ credentials in the `apm-server.yml` config file.",
|
|||
});
|
||||
|
||||
const createStartServer = () => ({
|
||||
title: i18n.translate('xpack.apm.tutorial.startServer.title', {
|
||||
title: i18n.translate('apmOss.tutorial.startServer.title', {
|
||||
defaultMessage: 'Start APM Server',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.startServer.textPre', {
|
||||
textPre: i18n.translate('apmOss.tutorial.startServer.textPre', {
|
||||
defaultMessage:
|
||||
'The server processes and stores application performance metrics in Elasticsearch.',
|
||||
}),
|
||||
|
@ -54,7 +67,7 @@ export function createStartServerUnix() {
|
|||
}
|
||||
|
||||
const createDownloadServerTitle = () =>
|
||||
i18n.translate('xpack.apm.tutorial.downloadServer.title', {
|
||||
i18n.translate('apmOss.tutorial.downloadServer.title', {
|
||||
defaultMessage: 'Download and unpack APM Server',
|
||||
});
|
||||
|
||||
|
@ -73,9 +86,8 @@ export const createDownloadServerDeb = () => ({
|
|||
'curl -L -O https://artifacts.elastic.co/downloads/apm-server/apm-server-{config.kibana.version}-amd64.deb',
|
||||
'sudo dpkg -i apm-server-{config.kibana.version}-amd64.deb',
|
||||
],
|
||||
textPost: i18n.translate('xpack.apm.tutorial.downloadServerTitle', {
|
||||
defaultMessage:
|
||||
'Looking for the 32-bit packages? See the [Download page]({downloadPageLink}).',
|
||||
textPost: i18n.translate('apmOss.tutorial.downloadServerTitle', {
|
||||
defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({downloadPageLink}).',
|
||||
values: {
|
||||
downloadPageLink: '{config.docs.base_url}downloads/apm/apm-server',
|
||||
},
|
||||
|
@ -88,9 +100,8 @@ export const createDownloadServerRpm = () => ({
|
|||
'curl -L -O https://artifacts.elastic.co/downloads/apm-server/apm-server-{config.kibana.version}-x86_64.rpm',
|
||||
'sudo rpm -vi apm-server-{config.kibana.version}-x86_64.rpm',
|
||||
],
|
||||
textPost: i18n.translate('xpack.apm.tutorial.downloadServerRpm', {
|
||||
defaultMessage:
|
||||
'Looking for the 32-bit packages? See the [Download page]({downloadPageLink}).',
|
||||
textPost: i18n.translate('apmOss.tutorial.downloadServerRpm', {
|
||||
defaultMessage: 'Looking for the 32-bit packages? See the [Download page]({downloadPageLink}).',
|
||||
values: {
|
||||
downloadPageLink: '{config.docs.base_url}downloads/apm/apm-server',
|
||||
},
|
||||
|
@ -103,41 +114,32 @@ export function createWindowsServerInstructions() {
|
|||
return [
|
||||
{
|
||||
title: createDownloadServerTitle(),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.windowsServerInstructions.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'1. Download the APM Server Windows zip file from the \
|
||||
textPre: i18n.translate('apmOss.tutorial.windowsServerInstructions.textPre', {
|
||||
defaultMessage:
|
||||
'1. Download the APM Server Windows zip file from the \
|
||||
[Download page]({downloadPageLink}).\n2. Extract the contents of \
|
||||
the zip file into {zipFileExtractFolder}.\n3. Rename the {apmServerDirectory} \
|
||||
directory to `APM-Server`.\n4. Open a PowerShell prompt as an Administrator \
|
||||
(right-click the PowerShell icon and select \
|
||||
**Run As Administrator**). If you are running Windows XP, you might need to download and install \
|
||||
PowerShell.\n5. From the PowerShell prompt, run the following commands to install APM Server as a Windows service:',
|
||||
values: {
|
||||
downloadPageLink: 'https://www.elastic.co/downloads/apm/apm-server',
|
||||
zipFileExtractFolder: '`C:\\Program Files`',
|
||||
apmServerDirectory: '`apm-server-{config.kibana.version}-windows`',
|
||||
},
|
||||
}
|
||||
),
|
||||
commands: [
|
||||
`cd 'C:\\Program Files\\APM-Server'`,
|
||||
`.\\install-service-apm-server.ps1`,
|
||||
],
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.windowsServerInstructions.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'Note: If script execution is disabled on your system, \
|
||||
values: {
|
||||
downloadPageLink: 'https://www.elastic.co/downloads/apm/apm-server',
|
||||
zipFileExtractFolder: '`C:\\Program Files`',
|
||||
apmServerDirectory: '`apm-server-{config.kibana.version}-windows`',
|
||||
},
|
||||
}),
|
||||
commands: [`cd 'C:\\Program Files\\APM-Server'`, `.\\install-service-apm-server.ps1`],
|
||||
textPost: i18n.translate('apmOss.tutorial.windowsServerInstructions.textPost', {
|
||||
defaultMessage:
|
||||
'Note: If script execution is disabled on your system, \
|
||||
you need to set the execution policy for the current session \
|
||||
to allow the script to run. For example: {command}.',
|
||||
values: {
|
||||
command:
|
||||
'`PowerShell.exe -ExecutionPolicy UnRestricted -File .\\install-service-apm-server.ps1`',
|
||||
},
|
||||
}
|
||||
),
|
||||
values: {
|
||||
command:
|
||||
'`PowerShell.exe -ExecutionPolicy UnRestricted -File .\\install-service-apm-server.ps1`',
|
||||
},
|
||||
}),
|
||||
},
|
||||
createEditConfig(),
|
||||
{
|
|
@ -26,6 +26,7 @@ import {
|
|||
const createSetupMock = (): jest.Mocked<TutorialsRegistrySetup> => {
|
||||
const setup = {
|
||||
registerTutorial: jest.fn(),
|
||||
unregisterTutorial: jest.fn(),
|
||||
addScopedTutorialContextFactory: jest.fn(),
|
||||
};
|
||||
return setup;
|
||||
|
|
|
@ -28,7 +28,7 @@ import { tutorialSchema } from './lib/tutorial_schema';
|
|||
import { builtInTutorials } from '../../tutorials/register';
|
||||
|
||||
export class TutorialsRegistry {
|
||||
private readonly tutorialProviders: TutorialProvider[] = []; // pre-register all the tutorials we know we want in here
|
||||
private tutorialProviders: TutorialProvider[] = []; // pre-register all the tutorials we know we want in here
|
||||
private readonly scopedTutorialContextFactories: TutorialContextFactory[] = [];
|
||||
|
||||
public setup(core: CoreSetup) {
|
||||
|
@ -63,6 +63,12 @@ export class TutorialsRegistry {
|
|||
this.tutorialProviders.push(specProvider);
|
||||
},
|
||||
|
||||
unregisterTutorial: (specProvider: TutorialProvider) => {
|
||||
this.tutorialProviders = this.tutorialProviders.filter(
|
||||
(provider) => provider !== specProvider
|
||||
);
|
||||
},
|
||||
|
||||
addScopedTutorialContextFactory: (
|
||||
scopedTutorialContextFactory: ScopedTutorialContextFactory
|
||||
) => {
|
||||
|
|
|
@ -1,7 +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;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
export const APM_STATIC_INDEX_PATTERN_ID = 'apm_static_index_pattern_id';
|
|
@ -11,7 +11,7 @@ import url from 'url';
|
|||
import rison, { RisonValue } from 'rison-node';
|
||||
import { useLocation } from '../../../../hooks/useLocation';
|
||||
import { getTimepickerRisonData } from '../rison_helpers';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../../../../common/index_pattern_constants';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../../../../../../../src/plugins/apm_oss/public';
|
||||
import { useApmPluginContext } from '../../../../hooks/useApmPluginContext';
|
||||
import { AppMountContextBasePath } from '../../../../context/ApmPluginContext';
|
||||
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
import apmIndexPattern from '../../tutorial/index_pattern.json';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../../common/index_pattern_constants';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { SavedObjectsErrorHelpers } from '../../../../../../src/core/server/saved_objects';
|
||||
import { SavedObjectsErrorHelpers } from '../../../../../../src/core/server';
|
||||
import { apmIndexPattern } from '../../../../../../src/plugins/apm_oss/server';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../../../../../src/plugins/apm_oss/public';
|
||||
import { hasHistoricalAgentData } from '../services/get_services/has_historical_agent_data';
|
||||
import { Setup } from '../helpers/setup_request';
|
||||
import { APMRequestHandlerContext } from '../../routes/typings';
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import {
|
||||
PluginInitializerContext,
|
||||
Plugin,
|
||||
|
@ -25,7 +26,6 @@ import { createApmApi } from './routes/create_apm_api';
|
|||
import { getApmIndices } from './lib/settings/apm_indices/get_apm_indices';
|
||||
import { APMConfig, mergeConfigs, APMXPackConfig } from '.';
|
||||
import { HomeServerPluginSetup } from '../../../../src/plugins/home/server';
|
||||
import { tutorialProvider } from './tutorial';
|
||||
import { CloudSetup } from '../../cloud/server';
|
||||
import { getInternalSavedObjectsClient } from './lib/helpers/get_internal_saved_objects_client';
|
||||
import { LicensingPluginSetup } from '../../licensing/public';
|
||||
|
@ -34,6 +34,7 @@ import { createApmTelemetry } from './lib/apm_telemetry';
|
|||
import { PluginSetupContract as FeaturesPluginSetup } from '../../../plugins/features/server';
|
||||
import { APM_FEATURE } from './feature';
|
||||
import { apmIndices, apmTelemetry } from './saved_objects';
|
||||
import { createElasticCloudInstructions } from './tutorial/elastic_cloud';
|
||||
|
||||
export interface APMPluginSetup {
|
||||
config$: Observable<APMConfig>;
|
||||
|
@ -96,20 +97,27 @@ export class APMPlugin implements Plugin<APMPluginSetup> {
|
|||
});
|
||||
}
|
||||
|
||||
plugins.home.tutorials.registerTutorial(
|
||||
tutorialProvider({
|
||||
isEnabled: this.currentConfig['xpack.apm.ui.enabled'],
|
||||
indexPatternTitle: this.currentConfig['apm_oss.indexPattern'],
|
||||
cloud: plugins.cloud,
|
||||
indices: {
|
||||
errorIndices: this.currentConfig['apm_oss.errorIndices'],
|
||||
metricsIndices: this.currentConfig['apm_oss.metricsIndices'],
|
||||
onboardingIndices: this.currentConfig['apm_oss.onboardingIndices'],
|
||||
sourcemapIndices: this.currentConfig['apm_oss.sourcemapIndices'],
|
||||
transactionIndices: this.currentConfig['apm_oss.transactionIndices'],
|
||||
},
|
||||
})
|
||||
);
|
||||
const ossTutorialProvider = plugins.apmOss.getRegisteredTutorialProvider();
|
||||
plugins.home.tutorials.unregisterTutorial(ossTutorialProvider);
|
||||
plugins.home.tutorials.registerTutorial(() => {
|
||||
const ossPart = ossTutorialProvider({});
|
||||
if (this.currentConfig!['xpack.apm.ui.enabled'] && ossPart.artifacts) {
|
||||
ossPart.artifacts.application = {
|
||||
path: '/app/apm',
|
||||
label: i18n.translate(
|
||||
'xpack.apm.tutorial.specProvider.artifacts.application.label',
|
||||
{
|
||||
defaultMessage: 'Launch APM',
|
||||
}
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
...ossPart,
|
||||
elasticCloud: createElasticCloudInstructions(plugins.cloud),
|
||||
};
|
||||
});
|
||||
plugins.features.registerFeature(APM_FEATURE);
|
||||
|
||||
createApmApi().init(core, {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { INSTRUCTION_VARIANT } from '../../../../../../src/plugins/home/server';
|
||||
import { INSTRUCTION_VARIANT } from '../../../../../src/plugins/home/server';
|
||||
|
||||
import {
|
||||
createNodeAgentInstructions,
|
||||
|
@ -17,8 +17,8 @@ import {
|
|||
createGoAgentInstructions,
|
||||
createJavaAgentInstructions,
|
||||
createDotNetAgentInstructions,
|
||||
} from '../instructions/apm_agent_instructions';
|
||||
import { CloudSetup } from '../../../../cloud/server';
|
||||
} from '../../../../../src/plugins/apm_oss/server';
|
||||
import { CloudSetup } from '../../../cloud/server';
|
||||
|
||||
export function createElasticCloudInstructions(cloudSetup?: CloudSetup) {
|
||||
const apmServerUrl = cloudSetup?.apm.url;
|
|
@ -1,113 +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;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { onPremInstructions } from './envs/on_prem';
|
||||
import { createElasticCloudInstructions } from './envs/elastic_cloud';
|
||||
import apmIndexPattern from './index_pattern.json';
|
||||
import { CloudSetup } from '../../../cloud/server';
|
||||
import {
|
||||
ArtifactsSchema,
|
||||
TutorialsCategory,
|
||||
} from '../../../../../src/plugins/home/server';
|
||||
import { APM_STATIC_INDEX_PATTERN_ID } from '../../common/index_pattern_constants';
|
||||
|
||||
const apmIntro = i18n.translate('xpack.apm.tutorial.introduction', {
|
||||
defaultMessage:
|
||||
'Collect in-depth performance metrics and errors from inside your applications.',
|
||||
});
|
||||
|
||||
export const tutorialProvider = ({
|
||||
isEnabled,
|
||||
indexPatternTitle,
|
||||
cloud,
|
||||
indices,
|
||||
}: {
|
||||
isEnabled: boolean;
|
||||
indexPatternTitle: string;
|
||||
cloud?: CloudSetup;
|
||||
indices: {
|
||||
errorIndices: string;
|
||||
transactionIndices: string;
|
||||
metricsIndices: string;
|
||||
sourcemapIndices: string;
|
||||
onboardingIndices: string;
|
||||
};
|
||||
}) => () => {
|
||||
const savedObjects = [
|
||||
{
|
||||
...apmIndexPattern,
|
||||
id: APM_STATIC_INDEX_PATTERN_ID,
|
||||
attributes: {
|
||||
...apmIndexPattern.attributes,
|
||||
title: indexPatternTitle,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const artifacts: ArtifactsSchema = {
|
||||
dashboards: [
|
||||
{
|
||||
id: '8d3ed660-7828-11e7-8c47-65b845b5cfb3',
|
||||
linkLabel: i18n.translate(
|
||||
'xpack.apm.tutorial.specProvider.artifacts.dashboards.linkLabel',
|
||||
{
|
||||
defaultMessage: 'APM dashboard',
|
||||
}
|
||||
),
|
||||
isOverview: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
if (isEnabled) {
|
||||
artifacts.application = {
|
||||
path: '/app/apm',
|
||||
label: i18n.translate(
|
||||
'xpack.apm.tutorial.specProvider.artifacts.application.label',
|
||||
{
|
||||
defaultMessage: 'Launch APM',
|
||||
}
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
id: 'apm',
|
||||
name: i18n.translate('xpack.apm.tutorial.specProvider.name', {
|
||||
defaultMessage: 'APM',
|
||||
}),
|
||||
category: TutorialsCategory.OTHER,
|
||||
shortDescription: apmIntro,
|
||||
longDescription: i18n.translate(
|
||||
'xpack.apm.tutorial.specProvider.longDescription',
|
||||
{
|
||||
defaultMessage:
|
||||
'Application Performance Monitoring (APM) collects in-depth \
|
||||
performance metrics and errors from inside your application. \
|
||||
It allows you to monitor the performance of thousands of applications in real time. \
|
||||
[Learn more]({learnMoreLink}).',
|
||||
values: {
|
||||
learnMoreLink:
|
||||
'{config.docs.base_url}guide/en/apm/get-started/{config.docs.version}/index.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
euiIconType: 'apmApp',
|
||||
artifacts,
|
||||
onPrem: onPremInstructions(indices),
|
||||
elasticCloud: createElasticCloudInstructions(cloud),
|
||||
previewImagePath: '/plugins/apm/assets/apm.png',
|
||||
savedObjects,
|
||||
savedObjectsInstallMsg: i18n.translate(
|
||||
'xpack.apm.tutorial.specProvider.savedObjectsInstallMsg',
|
||||
{
|
||||
defaultMessage:
|
||||
'An APM index pattern is required for some features in the APM UI.',
|
||||
}
|
||||
),
|
||||
};
|
||||
};
|
|
@ -1,806 +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;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
export const createNodeAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.nodeClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.nodeClient.install.textPre', {
|
||||
defaultMessage:
|
||||
'Install the APM agent for Node.js as a dependency to your application.',
|
||||
}),
|
||||
commands: ['npm install elastic-apm-node --save'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.nodeClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.nodeClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `serviceName`. \
|
||||
This agent supports a vararity of frameworks but can also be used with your custom stack.',
|
||||
}),
|
||||
commands: `// ${i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Add this to the VERY top of the first file loaded in your app',
|
||||
}
|
||||
)}
|
||||
var apm = require('elastic-apm-node').start({curlyOpen}
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Override service name from package.json',
|
||||
}
|
||||
)}
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.commands.allowedCharactersComment',
|
||||
{
|
||||
defaultMessage: 'Allowed characters: a-z, A-Z, 0-9, -, _, and space',
|
||||
}
|
||||
)}
|
||||
serviceName: '',
|
||||
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
secretToken: '${secretToken}',
|
||||
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
serverUrl: '${apmServerUrl}'
|
||||
{curlyClose})`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.nodeClient.configure.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See [the documentation]({documentationLink}) for advanced usage, including how to use with \
|
||||
[Babel/ES Modules]({babelEsModulesLink}).',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/nodejs/current/index.html',
|
||||
babelEsModulesLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/nodejs/current/advanced-setup.html#es-modules',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createDjangoAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.djangoClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.djangoClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent for Python as a dependency.',
|
||||
}),
|
||||
commands: ['$ pip install elastic-apm'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.djangoClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `SERVICE_NAME`.',
|
||||
}
|
||||
),
|
||||
commands: `# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment',
|
||||
{
|
||||
defaultMessage: 'Add the agent to the installed apps',
|
||||
}
|
||||
)}
|
||||
INSTALLED_APPS = (
|
||||
'elasticapm.contrib.django',
|
||||
# ...
|
||||
)
|
||||
|
||||
ELASTIC_APM = {curlyOpen}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Set required service name. Allowed characters:',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment',
|
||||
{
|
||||
defaultMessage: 'a-z, A-Z, 0-9, -, _, and space',
|
||||
}
|
||||
)}
|
||||
'SERVICE_NAME': '',
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
'SECRET_TOKEN': '${secretToken}',
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
'SERVER_URL': '${apmServerUrl}',
|
||||
{curlyClose}
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'To send performance metrics, add our tracing middleware:',
|
||||
}
|
||||
)}
|
||||
MIDDLEWARE = (
|
||||
'elasticapm.contrib.django.middleware.TracingMiddleware',
|
||||
#...
|
||||
)`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.djangoClient.configure.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/python/current/django-support.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createFlaskAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.flaskClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.flaskClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent for Python as a dependency.',
|
||||
}),
|
||||
commands: ['$ pip install elastic-apm[flask]'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.flaskClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the `SERVICE_NAME`.',
|
||||
}
|
||||
),
|
||||
commands: `# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment',
|
||||
{
|
||||
defaultMessage: 'initialize using environment variables',
|
||||
}
|
||||
)}
|
||||
from elasticapm.contrib.flask import ElasticAPM
|
||||
app = Flask(__name__)
|
||||
apm = ElasticAPM(app)
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment',
|
||||
{
|
||||
defaultMessage:
|
||||
"or configure to use ELASTIC_APM in your application's settings",
|
||||
}
|
||||
)}
|
||||
from elasticapm.contrib.flask import ElasticAPM
|
||||
app.config['ELASTIC_APM'] = {curlyOpen}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage: 'Set required service name. Allowed characters:',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment',
|
||||
{
|
||||
defaultMessage: 'a-z, A-Z, 0-9, -, _, and space',
|
||||
}
|
||||
)}
|
||||
'SERVICE_NAME': '',
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
'SECRET_TOKEN': '${secretToken}',
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
'SERVER_URL': '${apmServerUrl}',
|
||||
{curlyClose}
|
||||
|
||||
apm = ElasticAPM(app)`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.flaskClient.configure.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/python/current/flask-support.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createRailsAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.railsClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.railsClient.install.textPre', {
|
||||
defaultMessage: 'Add the agent to your Gemfile.',
|
||||
}),
|
||||
commands: [`gem 'elastic-apm'`],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.railsClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.railsClient.configure.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'APM is automatically started when your app boots. Configure the agent, by creating the config file {configFile}',
|
||||
values: { configFile: '`config/elastic_apm.yml`' },
|
||||
}
|
||||
),
|
||||
commands: `# config/elastic_apm.yml:
|
||||
|
||||
# Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space
|
||||
# Defaults to the name of your Rails app
|
||||
# service_name: 'my-service'
|
||||
|
||||
# Use if APM Server requires a token
|
||||
# secret_token: '${secretToken}'
|
||||
|
||||
# Set custom APM Server URL (default: http://localhost:8200)
|
||||
# server_url: '${apmServerUrl || 'http://localhost:8200'}'`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.railsClient.configure.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced usage.\n\n',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/ruby/current/index.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createRackAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.rackClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.rackClient.install.textPre', {
|
||||
defaultMessage: 'Add the agent to your Gemfile.',
|
||||
}),
|
||||
commands: [`gem 'elastic-apm'`],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.rackClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.rackClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'For Rack or a compatible framework (e.g. Sinatra), include the middleware in your app and start the agent.',
|
||||
}),
|
||||
commands: `# config.ru
|
||||
require 'sinatra/base'
|
||||
|
||||
class MySinatraApp < Sinatra::Base
|
||||
use ElasticAPM::Middleware
|
||||
|
||||
# ...
|
||||
end
|
||||
|
||||
ElasticAPM.start(
|
||||
app: MySinatraApp, # ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.configure.commands.requiredComment',
|
||||
{
|
||||
defaultMessage: 'required',
|
||||
}
|
||||
)}
|
||||
config_file: '' # ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.configure.commands.optionalComment',
|
||||
{
|
||||
defaultMessage: 'optional, defaults to config/elastic_apm.yml',
|
||||
}
|
||||
)}
|
||||
)
|
||||
|
||||
run MySinatraApp
|
||||
|
||||
at_exit {curlyOpen} ElasticAPM.stop {curlyClose}`.split('\n'),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.rackClient.createConfig.title', {
|
||||
defaultMessage: 'Create config file',
|
||||
}),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.textPre',
|
||||
{
|
||||
defaultMessage: 'Create a config file {configFile}:',
|
||||
values: { configFile: '`config/elastic_apm.yml`' },
|
||||
}
|
||||
),
|
||||
commands: `# config/elastic_apm.yml:
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.commands.setServiceNameComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment',
|
||||
{
|
||||
defaultMessage: "Defaults to the name of your Rack app's class.",
|
||||
}
|
||||
)}
|
||||
# service_name: 'my-service'
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
# secret_token: '${secretToken}'
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.commands.setCustomApmServerComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultServerUrl})',
|
||||
values: { defaultServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
# server_url: '${apmServerUrl || 'http://localhost:8200'}'`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.rackClient.createConfig.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced usage.\n\n',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/ruby/current/index.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createJsAgentInstructions = (apmServerUrl = '') => [
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title',
|
||||
{
|
||||
defaultMessage: 'Enable Real User Monitoring support in APM Server',
|
||||
}
|
||||
),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'APM Server disables RUM support by default. See the [documentation]({documentationLink}) \
|
||||
for details on how to enable RUM support.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/server/{config.docs.version}/configuration-rum.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.title',
|
||||
{
|
||||
defaultMessage: 'Set up the Agent as a dependency',
|
||||
}
|
||||
),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'You can install the Agent as a dependency to your application with \
|
||||
`npm install @elastic/apm-rum --save`.\n\n\
|
||||
The Agent can then be initialized and configured in your application like this:',
|
||||
}
|
||||
),
|
||||
commands: `import {curlyOpen} init as initApm {curlyClose} from '@elastic/apm-rum'
|
||||
var apm = initApm({curlyOpen}
|
||||
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)',
|
||||
}
|
||||
)}
|
||||
serviceName: '',
|
||||
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
serverUrl: '${apmServerUrl}',
|
||||
|
||||
// ${i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment',
|
||||
{
|
||||
defaultMessage: 'Set service version (required for source map feature)',
|
||||
}
|
||||
)}
|
||||
serviceVersion: ''
|
||||
{curlyClose})`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.jsClient.installDependency.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'Framework integrations, like React or Angular, have custom dependencies. \
|
||||
See the [integration documentation]({docLink}) for more information.',
|
||||
values: {
|
||||
docLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/rum-js/current/framework-integrations.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.jsClient.scriptTags.title', {
|
||||
defaultMessage: 'Set up the Agent with Script Tags',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.jsClient.scriptTags.textPre', {
|
||||
defaultMessage:
|
||||
"Alternatively, you can use Script tags to set up and configure the Agent. \
|
||||
Add a `<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. \
|
||||
Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), \
|
||||
and host the file on your Server/CDN before deploying to production.",
|
||||
values: {
|
||||
GitHubLink:
|
||||
'https://github.com/elastic/apm-agent-rum-js/releases/latest',
|
||||
UnpkgLink:
|
||||
'https://unpkg.com/@elastic/apm-rum/dist/bundles/elastic-apm-rum.umd.min.js',
|
||||
},
|
||||
}),
|
||||
commands: `\
|
||||
<script src="https://your-cdn-host.com/path/to/elastic-apm-rum.umd.min.js" crossorigin></script>
|
||||
<script>
|
||||
elasticApm.init({curlyOpen}
|
||||
serviceName: 'your-app-name',
|
||||
serverUrl: 'http://localhost:8200',
|
||||
{curlyClose})
|
||||
</script>
|
||||
`.split('\n'),
|
||||
},
|
||||
];
|
||||
|
||||
export const createGoAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.goClient.install.title', {
|
||||
defaultMessage: 'Install the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.goClient.install.textPre', {
|
||||
defaultMessage: 'Install the APM agent packages for Go.',
|
||||
}),
|
||||
commands: ['go get go.elastic.co/apm'],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.goClient.configure.title', {
|
||||
defaultMessage: 'Configure the agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.goClient.configure.textPre', {
|
||||
defaultMessage:
|
||||
'Agents are libraries that run inside of your application process. \
|
||||
APM services are created programmatically based on the executable \
|
||||
file name, or the `ELASTIC_APM_SERVICE_NAME` environment variable.',
|
||||
}),
|
||||
commands: `# ${i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment',
|
||||
{
|
||||
defaultMessage: 'Initialize using environment variables:',
|
||||
}
|
||||
)}
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set the service name. Allowed characters: # a-z, A-Z, 0-9, -, _, and space.',
|
||||
}
|
||||
)}
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'If ELASTIC_APM_SERVICE_NAME is not specified, the executable name will be used.',
|
||||
}
|
||||
)}
|
||||
export ELASTIC_APM_SERVICE_NAME=
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment',
|
||||
{
|
||||
defaultMessage:
|
||||
'Set custom APM Server URL (default: {defaultApmServerUrl})',
|
||||
values: { defaultApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
)}
|
||||
export ELASTIC_APM_SERVER_URL=${apmServerUrl}
|
||||
|
||||
# ${i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment',
|
||||
{
|
||||
defaultMessage: 'Use if APM Server requires a token',
|
||||
}
|
||||
)}
|
||||
export ELASTIC_APM_SECRET_TOKEN=${secretToken}
|
||||
`.split('\n'),
|
||||
textPost: i18n.translate('xpack.apm.tutorial.goClient.configure.textPost', {
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for advanced configuration.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/go/current/configuration.html',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.goClient.instrument.title', {
|
||||
defaultMessage: 'Instrument your application',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.goClient.instrument.textPre', {
|
||||
defaultMessage:
|
||||
'Instrument your Go application by using one of the provided instrumentation modules or \
|
||||
by using the tracer API directly.',
|
||||
}),
|
||||
commands: `\
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"go.elastic.co/apm/module/apmhttp"
|
||||
)
|
||||
|
||||
func main() {curlyOpen}
|
||||
mux := http.NewServeMux()
|
||||
...
|
||||
http.ListenAndServe(":8080", apmhttp.Wrap(mux))
|
||||
{curlyClose}
|
||||
`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.goClient.instrument.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for a detailed \
|
||||
guide to instrumenting Go source code.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/go/current/instrumenting-source.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createJavaAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.javaClient.download.title', {
|
||||
defaultMessage: 'Download the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate('xpack.apm.tutorial.javaClient.download.textPre', {
|
||||
defaultMessage:
|
||||
'Download the agent jar from [Maven Central]({mavenCentralLink}). \
|
||||
Do **not** add the agent as a dependency to your application.',
|
||||
values: {
|
||||
mavenCentralLink:
|
||||
'http://search.maven.org/#search%7Cga%7C1%7Ca%3Aelastic-apm-agent',
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.javaClient.startApplication.title',
|
||||
{
|
||||
defaultMessage: 'Start your application with the javaagent flag',
|
||||
}
|
||||
),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.javaClient.startApplication.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'Add the `-javaagent` flag and configure the agent with system properties.\n\n \
|
||||
* Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)\n \
|
||||
* Set custom APM Server URL (default: {customApmServerUrl})\n \
|
||||
* Set the base package of your application',
|
||||
values: { customApmServerUrl: 'http://localhost:8200' },
|
||||
}
|
||||
),
|
||||
commands: `java -javaagent:/path/to/elastic-apm-agent-<version>.jar \\
|
||||
-Delastic.apm.service_name=my-application \\
|
||||
-Delastic.apm.server_urls=${apmServerUrl || 'http://localhost:8200'} \\
|
||||
-Delastic.apm.secret_token=${secretToken} \\
|
||||
-Delastic.apm.application_packages=org.example \\
|
||||
-jar my-application.jar`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.javaClient.startApplication.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'See the [documentation]({documentationLink}) for configuration options and advanced \
|
||||
usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/java/current/index.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
export const createDotNetAgentInstructions = (
|
||||
apmServerUrl = '',
|
||||
secretToken = ''
|
||||
) => [
|
||||
{
|
||||
title: i18n.translate('xpack.apm.tutorial.dotNetClient.download.title', {
|
||||
defaultMessage: 'Download the APM agent',
|
||||
}),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.download.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'Add the the agent package(s) from [NuGet]({allNuGetPackagesLink}) to your .NET application. There are multiple \
|
||||
NuGet packages available for different use cases. \n\nFor an ASP.NET Core application with Entity Framework \
|
||||
Core download the [Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) package. This package will automatically add every \
|
||||
agent component to your application. \n\n In case you would like to to minimize the dependencies, you can use the \
|
||||
[Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) package for just \
|
||||
ASP.NET Core monitoring or the [Elastic.Apm.EfCore]({efCorePackageLink}) package for just Entity Framework Core monitoring. \n\n \
|
||||
In case you only want to use the public Agent API for manual instrumentation use the [Elastic.Apm]({elasticApmPackageLink}) package.',
|
||||
values: {
|
||||
allNuGetPackagesLink: 'https://www.nuget.org/packages?q=Elastic.apm',
|
||||
netCoreAllApmPackageLink:
|
||||
'https://www.nuget.org/packages/Elastic.Apm.NetCoreAll',
|
||||
aspNetCorePackageLink:
|
||||
'https://www.nuget.org/packages/Elastic.Apm.AspNetCore',
|
||||
efCorePackageLink:
|
||||
'https://www.nuget.org/packages/Elastic.Apm.EntityFrameworkCore',
|
||||
elasticApmPackageLink: 'https://www.nuget.org/packages/Elastic.Apm',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.configureApplication.title',
|
||||
{
|
||||
defaultMessage: 'Add the agent to the application',
|
||||
}
|
||||
),
|
||||
textPre: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.configureApplication.textPre',
|
||||
{
|
||||
defaultMessage:
|
||||
'In case of ASP.NET Core with the `Elastic.Apm.NetCoreAll` package, call the `UseAllElasticApm` \
|
||||
method in the `Configure` method within the `Startup.cs` file.',
|
||||
}
|
||||
),
|
||||
commands: `public class Startup
|
||||
{curlyOpen}
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
|
||||
{curlyOpen}
|
||||
app.UseAllElasticApm(Configuration);
|
||||
//…rest of the method
|
||||
{curlyClose}
|
||||
//…rest of the class
|
||||
{curlyClose}`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.configureApplication.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'Passing an `IConfiguration` instance is optional and by doing so, the agent will read config settings through this \
|
||||
`IConfiguration` instance (e.g. from the `appsettings.json` file).',
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.configureAgent.title',
|
||||
{
|
||||
defaultMessage: 'Sample appsettings.json file:',
|
||||
}
|
||||
),
|
||||
commands: `{curlyOpen}
|
||||
"ElasticApm": {curlyOpen}
|
||||
"SecretToken": "${secretToken}",
|
||||
"ServerUrls": "${
|
||||
apmServerUrl || 'http://localhost:8200'
|
||||
}", //Set custom APM Server URL (default: http://localhost:8200)
|
||||
"ServiceName" : "MyApp", //allowed characters: a-z, A-Z, 0-9, -, _, and space. Default is the entry assembly of the application
|
||||
{curlyClose}
|
||||
{curlyClose}`.split('\n'),
|
||||
textPost: i18n.translate(
|
||||
'xpack.apm.tutorial.dotNetClient.configureAgent.textPost',
|
||||
{
|
||||
defaultMessage:
|
||||
'In case you don’t pass an `IConfiguration` instance to the agent (e.g. in case of non ASP.NET Core applications) \
|
||||
you can also configure the agent through environment variables. \n \
|
||||
See [the documentation]({documentationLink}) for advanced usage.',
|
||||
values: {
|
||||
documentationLink:
|
||||
'{config.docs.base_url}guide/en/apm/agent/dotnet/current/configuration.html',
|
||||
},
|
||||
}
|
||||
),
|
||||
},
|
||||
];
|
|
@ -124,6 +124,119 @@
|
|||
"advancedSettings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません",
|
||||
"advancedSettings.searchBarAriaLabel": "高度な設定を検索",
|
||||
"advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "{query} を検索しました。{sectionLenght, plural, one {# セクション} other {# セクション}}に{optionLenght, plural, one {# オプション} other {# オプション}}があります。",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.text": "アプリケーションが実行されていてエージェントがデータを送信していることを確認してください。",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.title": "エージェントステータス",
|
||||
"apmOss.tutorial.apmAgents.title": "APM エージェント",
|
||||
"apmOss.tutorial.apmServer.callOut.message": "ご使用の APM Server を 7.0 以上に更新してあることを確認してください。 Kibana の管理セクションにある移行アシスタントで 6.x データを移行することもできます。",
|
||||
"apmOss.tutorial.apmServer.callOut.title": "重要:7.0 以上に更新中",
|
||||
"apmOss.tutorial.apmServer.statusCheck.btnLabel": "APM Server ステータスを確認",
|
||||
"apmOss.tutorial.apmServer.statusCheck.errorMessage": "APM Server が検出されました。7.0 以上に更新され、動作中であることを確認してください。",
|
||||
"apmOss.tutorial.apmServer.statusCheck.successMessage": "APM Server が正しくセットアップされました",
|
||||
"apmOss.tutorial.apmServer.statusCheck.text": "APM エージェントの導入を開始する前に、APM Server が動作していることを確認してください。",
|
||||
"apmOss.tutorial.apmServer.statusCheck.title": "APM Server ステータス",
|
||||
"apmOss.tutorial.apmServer.title": "APM Server",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"apmOss.tutorial.djangoClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。",
|
||||
"apmOss.tutorial.djangoClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.djangoClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。",
|
||||
"apmOss.tutorial.djangoClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.dotNetClient.configureAgent.textPost": "エージェントに「IConfiguration」インスタンスが渡されていない場合、(例: 非 ASP.NET Core アプリケーションの場合)、エージェントを環境変数で構成することもできます。\n 高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.dotNetClient.configureAgent.title": "appsettings.json ファイルの例:",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.textPost": "「IConfiguration」インスタンスを渡すのは任意であり、これにより、エージェントはこの「IConfiguration」インスタンス (例: 「appsettings.json」ファイル) から構成を読み込みます。",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.textPre": "「Elastic.Apm.NetCoreAll」パッケージの ASP.NET Core の場合、「Startup.cs」ファイル内の「Configure」メソドの「UseElasticApm」メソドを呼び出します。",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.title": "エージェントをアプリケーションに追加",
|
||||
"apmOss.tutorial.dotNetClient.download.textPre": "[NuGet]({allNuGetPackagesLink}) から .NET アプリケーションにエージェントパッケージを追加してください。用途の異なる複数の NuGet パッケージがあります。\n\nEntity Framework Core の ASP.NET Core アプリケーションの場合は、[Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) パッケージをダウンロードしてください。このパッケージは、自動的にすべてのエージェントコンポーネントをアプリケーションに追加します。\n\n 依存性を最低限に抑えたい場合、ASP.NET Core の監視のみに [Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) パッケージ、または Entity Framework Core の監視のみに [Elastic.Apm.EfCore]({efCorePackageLink}) パッケージを使用することができます。\n\n 手動インストルメンテーションのみにパブリック Agent API を使用する場合は、[Elastic.Apm]({elasticApmPackageLink}) パッケージを使用してください。",
|
||||
"apmOss.tutorial.dotNetClient.download.title": "APM エージェントのダウンロード",
|
||||
"apmOss.tutorial.downloadServer.title": "APM Server をダウンロードして展開します",
|
||||
"apmOss.tutorial.downloadServerRpm": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink}) をご覧ください。",
|
||||
"apmOss.tutorial.downloadServerTitle": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink}) をご覧ください。",
|
||||
"apmOss.tutorial.editConfig.textPre": "Elastic Stack の X-Pack セキュアバージョンをご使用の場合、「apm-server.yml」構成ファイルで認証情報を指定する必要があります。",
|
||||
"apmOss.tutorial.editConfig.title": "構成を編集する",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"apmOss.tutorial.flaskClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。",
|
||||
"apmOss.tutorial.flaskClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。",
|
||||
"apmOss.tutorial.flaskClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:",
|
||||
"apmOss.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"apmOss.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。",
|
||||
"apmOss.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行可能な名前が使用されます。",
|
||||
"apmOss.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"apmOss.tutorial.goClient.configure.textPost": "高度な構成に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。",
|
||||
"apmOss.tutorial.goClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.goClient.install.textPre": "Go の APM エージェントパッケージをインストールします。",
|
||||
"apmOss.tutorial.goClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.goClient.instrument.textPost": "Go のソースコードのインストルメンテーションの詳細ガイドは、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.goClient.instrument.textPre": "提供されたインストルメンテーションモジュールの 1 つ、またはトレーサー API を直接使用して、Go アプリケーションにインストルメンテーションを設定します。",
|
||||
"apmOss.tutorial.goClient.instrument.title": "アプリケーションのインストルメンテーション",
|
||||
"apmOss.tutorial.introduction": "アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。",
|
||||
"apmOss.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink}) からエージェントをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。",
|
||||
"apmOss.tutorial.javaClient.download.title": "APM エージェントのダウンロード",
|
||||
"apmOss.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加してエージェントをシステムプロパティで構成します。\n\n * 必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL (デフォルト: {customApmServerUrl})\n * アプリケーションのベースパッケージを設定します",
|
||||
"apmOss.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動",
|
||||
"apmOss.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUM サポートを有効にする手順については、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.jsClient.enableRealUserMonitoring.title": "APM Server のリアルユーザー監視エージェントを有効にする",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します (ソースマップ機能に必要)",
|
||||
"apmOss.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は [統合ドキュメント]({docLink}) をご覧ください。",
|
||||
"apmOss.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。",
|
||||
"apmOss.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ",
|
||||
"apmOss.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.",
|
||||
"apmOss.tutorial.jsClient.scriptTags.title": "スクリプトタグを付けてエージェントをセットアップ",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "アプリに読み込んだファイルのトップにこれを追加します",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.allowedCharactersComment": "使用できる文字は # a-z、A-Z、0-9、-、_、スペースです",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "package.json からサービス名を上書きします",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"apmOss.tutorial.nodeClient.configure.textPost": "[Babel/ES モジュール]({babelEsModulesLink}) との使用を含む高度な用途に関しては、 [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"apmOss.tutorial.nodeClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「serviceName」に基づいてプログラムで作成されます。このエージェントは様々なフレームワークをサポートしていますが、カスタムスタックで使用することもできます。",
|
||||
"apmOss.tutorial.nodeClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.nodeClient.install.textPre": "Node.js 用の APM エージェントをアプリケーションに依存関係としてインストール。",
|
||||
"apmOss.tutorial.nodeClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.rackClient.configure.commands.optionalComment": "オプション、デフォルトで config/elastic_apm.yml になります",
|
||||
"apmOss.tutorial.rackClient.configure.commands.requiredComment": "必須",
|
||||
"apmOss.tutorial.rackClient.configure.textPre": "Rack または対応フレームワーク (Sinatra など) の場合は、アプリのミドルウェアを含めてエージェントを起動してください。",
|
||||
"apmOss.tutorial.rackClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "デフォルトで Rack アプリのクラスになります。",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "カスタム APM Server URL (デフォルト: {defaultServerUrl})",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.setServiceNameComment": "サービス名を設定します - 使用できる文字は a-z、A-Z、0-9、-、_、スペースです。",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"apmOss.tutorial.rackClient.createConfig.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。\n\n",
|
||||
"apmOss.tutorial.rackClient.createConfig.textPre": "構成ファイル {configFile} を作成します:",
|
||||
"apmOss.tutorial.rackClient.createConfig.title": "構成ファイルの作成",
|
||||
"apmOss.tutorial.rackClient.install.textPre": "Gemfile にエージェントを追加します",
|
||||
"apmOss.tutorial.rackClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.railsClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。\n\n",
|
||||
"apmOss.tutorial.railsClient.configure.textPre": "APM はアプリの起動時に自動的に起動します。構成ファイル {configFile} を作成してエージェントを構成します",
|
||||
"apmOss.tutorial.railsClient.configure.title": "エージェントの構成",
|
||||
"apmOss.tutorial.railsClient.install.textPre": "Gemfile にエージェントを追加します",
|
||||
"apmOss.tutorial.railsClient.install.title": "APM エージェントのインストール",
|
||||
"apmOss.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM ダッシュボード",
|
||||
"apmOss.tutorial.specProvider.longDescription": "アプリケーションパフォーマンスモニタリング (APM) は、アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。何千ものアプリケーションのパフォーマンスをリアルタイムで監視できます。[詳細]({learnMoreLink})。",
|
||||
"apmOss.tutorial.specProvider.name": "APM",
|
||||
"apmOss.tutorial.specProvider.savedObjectsInstallMsg": "APM UI の機能には APM インデックスパターンが必要なものがあります。",
|
||||
"apmOss.tutorial.startServer.textPre": "サーバーは、Elasticsearch アプリケーションのパフォーマンスメトリックを処理し保存します。",
|
||||
"apmOss.tutorial.startServer.title": "APM Server の起動",
|
||||
"apmOss.tutorial.windowsServerInstructions.textPost": "注:システムでスクリプトの実行が無効な場合、スクリプトを実行するために現在のセッションの実行ポリシーの設定が必要となります。例: {command}。",
|
||||
"apmOss.tutorial.windowsServerInstructions.textPre": "1.[ダウンロードページ]({downloadPageLink}) から APM Server Windows zip ファイルをダウンロードします。\n2.zip ファイルの内容を {zipFileExtractFolder} に抽出します。\n3.「{apmServerDirectory} ディレクトリの名前を「APM-Server」に変更します。\n4.管理者として PowerShell プロンプトを開きます (PowerShell アイコンを右クリックして「管理者として実行」を選択します)。Windows XP をご使用の場合、PowerShell のダウンロードとインストールが必要な場合があります。\n5.PowerShell プロンプトで次のコマンドを実行し、APM Server を Windows サービスとしてインストールします。",
|
||||
"charts.advancedSettings.visualization.colorMappingText": "ビジュアライゼーション内の特定の色のマップ値です",
|
||||
"charts.advancedSettings.visualization.colorMappingTitle": "カラーマッピング",
|
||||
"charts.colormaps.bluesText": "青",
|
||||
|
@ -4571,122 +4684,9 @@
|
|||
"xpack.apm.transactionsTable.notFoundLabel": "トランザクションが見つかりませんでした。",
|
||||
"xpack.apm.transactionsTable.transactionsPerMinuteColumnLabel": "1 分あたりのトランザクション",
|
||||
"xpack.apm.transactionsTable.transactionsPerMinuteUnitLabel": "1分あたりトランザクション数",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.text": "アプリケーションが実行されていてエージェントがデータを送信していることを確認してください。",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.title": "エージェントステータス",
|
||||
"xpack.apm.tutorial.apmAgents.title": "APM エージェント",
|
||||
"xpack.apm.tutorial.apmServer.callOut.message": "ご使用の APM Server を 7.0 以上に更新してあることを確認してください。 Kibana の管理セクションにある移行アシスタントで 6.x データを移行することもできます。",
|
||||
"xpack.apm.tutorial.apmServer.callOut.title": "重要:7.0 以上に更新中",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "APM Server ステータスを確認",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "APM Server が検出されました。7.0 以上に更新され、動作中であることを確認してください。",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.successMessage": "APM Server が正しくセットアップされました",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.text": "APM エージェントの導入を開始する前に、APM Server が動作していることを確認してください。",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.title": "APM Server ステータス",
|
||||
"xpack.apm.tutorial.apmServer.title": "APM Server",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"xpack.apm.tutorial.djangoClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。",
|
||||
"xpack.apm.tutorial.djangoClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.djangoClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。",
|
||||
"xpack.apm.tutorial.djangoClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.dotNetClient.configureAgent.textPost": "エージェントに「IConfiguration」インスタンスが渡されていない場合、(例: 非 ASP.NET Core アプリケーションの場合)、エージェントを環境変数で構成することもできます。\n 高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureAgent.title": "appsettings.json ファイルの例:",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.textPost": "「IConfiguration」インスタンスを渡すのは任意であり、これにより、エージェントはこの「IConfiguration」インスタンス (例: 「appsettings.json」ファイル) から構成を読み込みます。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.textPre": "「Elastic.Apm.NetCoreAll」パッケージの ASP.NET Core の場合、「Startup.cs」ファイル内の「Configure」メソドの「UseElasticApm」メソドを呼び出します。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.title": "エージェントをアプリケーションに追加",
|
||||
"xpack.apm.tutorial.dotNetClient.download.textPre": "[NuGet]({allNuGetPackagesLink}) から .NET アプリケーションにエージェントパッケージを追加してください。用途の異なる複数の NuGet パッケージがあります。\n\nEntity Framework Core の ASP.NET Core アプリケーションの場合は、[Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) パッケージをダウンロードしてください。このパッケージは、自動的にすべてのエージェントコンポーネントをアプリケーションに追加します。\n\n 依存性を最低限に抑えたい場合、ASP.NET Core の監視のみに [Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) パッケージ、または Entity Framework Core の監視のみに [Elastic.Apm.EfCore]({efCorePackageLink}) パッケージを使用することができます。\n\n 手動インストルメンテーションのみにパブリック Agent API を使用する場合は、[Elastic.Apm]({elasticApmPackageLink}) パッケージを使用してください。",
|
||||
"xpack.apm.tutorial.dotNetClient.download.title": "APM エージェントのダウンロード",
|
||||
"xpack.apm.tutorial.downloadServer.title": "APM Server をダウンロードして展開します",
|
||||
"xpack.apm.tutorial.downloadServerRpm": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.downloadServerTitle": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.editConfig.textPre": "Elastic Stack の X-Pack セキュアバージョンをご使用の場合、「apm-server.yml」構成ファイルで認証情報を指定する必要があります。",
|
||||
"xpack.apm.tutorial.editConfig.title": "構成を編集する",
|
||||
"xpack.apm.tutorial.elasticCloud.textPre": "APM Server を有効にするには、[the Elastic Cloud console](https://cloud.elastic.co/deployments?q={cloudId}) に移動し、展開設定で APM を有効にします。有効になったら、このページを更新してください。",
|
||||
"xpack.apm.tutorial.elasticCloudInstructions.title": "APM エージェント",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "必要なサーバー名を設定します。使用できる文字:",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"xpack.apm.tutorial.flaskClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。",
|
||||
"xpack.apm.tutorial.flaskClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。",
|
||||
"xpack.apm.tutorial.flaskClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行可能な名前が使用されます。",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"xpack.apm.tutorial.goClient.configure.textPost": "高度な構成に関しては [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。",
|
||||
"xpack.apm.tutorial.goClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.goClient.install.textPre": "Go の APM エージェントパッケージをインストールします。",
|
||||
"xpack.apm.tutorial.goClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.goClient.instrument.textPost": "Go のソースコードのインストルメンテーションの詳細ガイドは、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.goClient.instrument.textPre": "提供されたインストルメンテーションモジュールの 1 つ、またはトレーサー API を直接使用して、Go アプリケーションにインストルメンテーションを設定します。",
|
||||
"xpack.apm.tutorial.goClient.instrument.title": "アプリケーションのインストルメンテーション",
|
||||
"xpack.apm.tutorial.introduction": "アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。",
|
||||
"xpack.apm.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink}) からエージェントをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。",
|
||||
"xpack.apm.tutorial.javaClient.download.title": "APM エージェントのダウンロード",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加してエージェントをシステムプロパティで構成します。\n\n * 必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL (デフォルト: {customApmServerUrl})\n * アプリケーションのベースパッケージを設定します",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動",
|
||||
"xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUM サポートを有効にする手順については、[ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title": "APM Server のリアルユーザー監視エージェントを有効にする",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "必要なサービス名を設定します (使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します (ソースマップ機能に必要)",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は [統合ドキュメント]({docLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ",
|
||||
"xpack.apm.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.",
|
||||
"xpack.apm.tutorial.jsClient.scriptTags.title": "スクリプトタグを付けてエージェントをセットアップ",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "アプリに読み込んだファイルのトップにこれを追加します",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.allowedCharactersComment": "使用できる文字は # a-z、A-Z、0-9、-、_、スペースです",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL (デフォルト: {defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "package.json からサービス名を上書きします",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"xpack.apm.tutorial.nodeClient.configure.textPost": "[Babel/ES モジュール]({babelEsModulesLink}) との使用を含む高度な用途に関しては、 [ドキュメンテーション]({documentationLink}) をご覧ください。",
|
||||
"xpack.apm.tutorial.nodeClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「serviceName」に基づいてプログラムで作成されます。このエージェントは様々なフレームワークをサポートしていますが、カスタムスタックで使用することもできます。",
|
||||
"xpack.apm.tutorial.nodeClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.nodeClient.install.textPre": "Node.js 用の APM エージェントをアプリケーションに依存関係としてインストール。",
|
||||
"xpack.apm.tutorial.nodeClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.rackClient.configure.commands.optionalComment": "オプション、デフォルトで config/elastic_apm.yml になります",
|
||||
"xpack.apm.tutorial.rackClient.configure.commands.requiredComment": "必須",
|
||||
"xpack.apm.tutorial.rackClient.configure.textPre": "Rack または対応フレームワーク (Sinatra など) の場合は、アプリのミドルウェアを含めてエージェントを起動してください。",
|
||||
"xpack.apm.tutorial.rackClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "デフォルトで Rack アプリのクラスになります。",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "カスタム APM Server URL (デフォルト: {defaultServerUrl})",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.setServiceNameComment": "サービス名を設定します - 使用できる文字は a-z、A-Z、0-9、-、_、スペースです。",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server にトークンが必要な場合に使います",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。\n\n",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.textPre": "構成ファイル {configFile} を作成します:",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.title": "構成ファイルの作成",
|
||||
"xpack.apm.tutorial.rackClient.install.textPre": "Gemfile にエージェントを追加します",
|
||||
"xpack.apm.tutorial.rackClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.railsClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink}) をご覧ください。\n\n",
|
||||
"xpack.apm.tutorial.railsClient.configure.textPre": "APM はアプリの起動時に自動的に起動します。構成ファイル {configFile} を作成してエージェントを構成します",
|
||||
"xpack.apm.tutorial.railsClient.configure.title": "エージェントの構成",
|
||||
"xpack.apm.tutorial.railsClient.install.textPre": "Gemfile にエージェントを追加します",
|
||||
"xpack.apm.tutorial.railsClient.install.title": "APM エージェントのインストール",
|
||||
"xpack.apm.tutorial.specProvider.artifacts.application.label": "APM を起動",
|
||||
"xpack.apm.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM ダッシュボード",
|
||||
"xpack.apm.tutorial.specProvider.longDescription": "アプリケーションパフォーマンスモニタリング (APM) は、アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。何千ものアプリケーションのパフォーマンスをリアルタイムで監視できます。[詳細]({learnMoreLink})。",
|
||||
"xpack.apm.tutorial.specProvider.name": "APM",
|
||||
"xpack.apm.tutorial.specProvider.savedObjectsInstallMsg": "APM UI の機能には APM インデックスパターンが必要なものがあります。",
|
||||
"xpack.apm.tutorial.startServer.textPre": "サーバーは、Elasticsearch アプリケーションのパフォーマンスメトリックを処理し保存します。",
|
||||
"xpack.apm.tutorial.startServer.title": "APM Server の起動",
|
||||
"xpack.apm.tutorial.windowsServerInstructions.textPost": "注:システムでスクリプトの実行が無効な場合、スクリプトを実行するために現在のセッションの実行ポリシーの設定が必要となります。例: {command}。",
|
||||
"xpack.apm.tutorial.windowsServerInstructions.textPre": "1.[ダウンロードページ]({downloadPageLink}) から APM Server Windows zip ファイルをダウンロードします。\n2.zip ファイルの内容を {zipFileExtractFolder} に抽出します。\n3.「{apmServerDirectory} ディレクトリの名前を「APM-Server」に変更します。\n4.管理者として PowerShell プロンプトを開きます (PowerShell アイコンを右クリックして「管理者として実行」を選択します)。Windows XP をご使用の場合、PowerShell のダウンロードとインストールが必要な場合があります。\n5.PowerShell プロンプトで次のコマンドを実行し、APM Server を Windows サービスとしてインストールします。",
|
||||
"xpack.apm.unitLabel": "単位を選択",
|
||||
"xpack.apm.unsavedChanges": "{unsavedChangesCount, plural, =0{0 未保存変更} one {1 未保存変更} other {# 未保存変更}} ",
|
||||
"xpack.apm.version": "バージョン",
|
||||
|
|
|
@ -124,6 +124,119 @@
|
|||
"advancedSettings.searchBar.unableToParseQueryErrorMessage": "无法解析查询",
|
||||
"advancedSettings.searchBarAriaLabel": "搜索高级设置",
|
||||
"advancedSettings.voiceAnnouncement.searchResultScreenReaderMessage": "您搜索了“{query}”。{sectionLenght, plural, one {# 个部分} other {# 个部分}}中有 {optionLenght, plural, one {# 个选项} other {# 个选项}}",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.btnLabel": "检查代理状态",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.errorMessage": "尚未从代理收到任何数据",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.successMessage": "已从一个或多个代理成功接收数据",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.text": "确保您的应用程序正在运行且代理正在发送数据。",
|
||||
"apmOss.tutorial.apmAgents.statusCheck.title": "代理状态",
|
||||
"apmOss.tutorial.apmAgents.title": "APM 代理",
|
||||
"apmOss.tutorial.apmServer.callOut.message": "请确保 APM Server 已更新至 7.0 或更高版本。 还可以使用 Kibana 的管理部分中的迁移助手迁移 6.x 数据。",
|
||||
"apmOss.tutorial.apmServer.callOut.title": "重要说明:正在更新到 7.0 或更高版本",
|
||||
"apmOss.tutorial.apmServer.statusCheck.btnLabel": "检查 APM Server 状态",
|
||||
"apmOss.tutorial.apmServer.statusCheck.errorMessage": "未检测到任何 APM Server。请确保其正在运行并且您已升级到 7.0 或更高版本。",
|
||||
"apmOss.tutorial.apmServer.statusCheck.successMessage": "您已正确设置 APM Server",
|
||||
"apmOss.tutorial.apmServer.statusCheck.text": "在开始实施 APM 代理之前,确保 APM Server 正在运行。",
|
||||
"apmOss.tutorial.apmServer.statusCheck.title": "APM Server 状态",
|
||||
"apmOss.tutorial.apmServer.title": "APM Server",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.addAgentComment": "向已安装应用添加代理",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "要发送性能指标,请添加我们的跟踪中间件:",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_ 以及空格",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "设置所需的服务名称。允许使用的字符:",
|
||||
"apmOss.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"apmOss.tutorial.djangoClient.configure.textPost": "有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.djangoClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `SERVICE_NAME` 以编程方式创建的。",
|
||||
"apmOss.tutorial.djangoClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.djangoClient.install.textPre": "将 Python 的 APM 代理安装为依赖项。",
|
||||
"apmOss.tutorial.djangoClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.dotNetClient.configureAgent.textPost": "如果您未将 `IConfiguration` 实例传递给代理(例如非 ASP.NET Core 应用程序), 您还可以通过环境变量配置代理。\n 有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.dotNetClient.configureAgent.title": "样例 appsettings.json 文件:",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.textPost": "传递 `IConfiguration` 实例为可选操作,通过此操作,代理将通过此 `IConfiguration` 实例 读取配置设置(例如,从 `appsettings.json` 文件)。",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.textPre": "对于具有 `Elastic.Apm.NetCoreAll` 软件包的 ASP.NET Core,请在 `Startup.cs` 文件内的 `Configure` 方法中调用 `UseAllElasticApm`。",
|
||||
"apmOss.tutorial.dotNetClient.configureApplication.title": "将代理添加到应用程序",
|
||||
"apmOss.tutorial.dotNetClient.download.textPre": "将来自 [NuGet]({allNuGetPackagesLink}) 的代理软件包添加到 .NET 应用程序。有多个 NuGet 软件包可用于不同的用例。\n\n对于具有 Entity Framework Core 的 ASP.NET Core 应用程序,请下载 [Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) 软件包。此软件包将自动将每个 代理组件添加到您的应用程序。\n\n 如果您希望最大程度减少依存关系,您可以将 [Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) 软件包仅用于 ASP.NET Core 监测,或将 [Elastic.Apm.EfCore]({efCorePackageLink}) 软件包仅用于 Entity Framework Core 监测。\n\n 如果仅希望将公共代理 API 用于手动检测,请使用 [Elastic.Apm]({elasticApmPackageLink}) 软件包。",
|
||||
"apmOss.tutorial.dotNetClient.download.title": "下载 APM 代理",
|
||||
"apmOss.tutorial.downloadServer.title": "下载并解压缩 APM Server",
|
||||
"apmOss.tutorial.downloadServerRpm": "寻找 32 位软件包?请参阅[下载页面]({downloadPageLink})。",
|
||||
"apmOss.tutorial.downloadServerTitle": "寻找 32 位软件包?请参阅[下载页面]({downloadPageLink})。",
|
||||
"apmOss.tutorial.editConfig.textPre": "如果您正在使用 Elastic Stack 的 X-Pack 安全版本,则必须在 `apm-server.yml` 配置文件中指定凭据。",
|
||||
"apmOss.tutorial.editConfig.title": "编辑配置",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_ 以及空格",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.configureElasticApmComment": "或进行配置以在您的应用程序设置中使用 ELASTIC_APM",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "使用环境变量初始化",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "设置所需的服务名称。允许使用的字符:",
|
||||
"apmOss.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"apmOss.tutorial.flaskClient.configure.textPost": "有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.flaskClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `SERVICE_NAME` 以编程方式创建的。",
|
||||
"apmOss.tutorial.flaskClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.flaskClient.install.textPre": "将 Python 的 APM 代理安装为依赖项。",
|
||||
"apmOss.tutorial.flaskClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "使用环境变量初始化:",
|
||||
"apmOss.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"apmOss.tutorial.goClient.configure.commands.setServiceNameComment": "设置服务名称。允许使用的字符:# a-z、A-Z、0-9、-、_ 和空格。",
|
||||
"apmOss.tutorial.goClient.configure.commands.usedExecutableNameComment": "如果未指定 ELASTIC_APM_SERVICE_NAME,将会使用可执行文件名称。",
|
||||
"apmOss.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"apmOss.tutorial.goClient.configure.textPost": "有关高级配置,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.goClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务将基于可执行文件名称或 `ELASTIC_APM_SERVICE_NAME` 环境变量以编程方式进行创建。",
|
||||
"apmOss.tutorial.goClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.goClient.install.textPre": "安装 Go 的 APM 代理软件包。",
|
||||
"apmOss.tutorial.goClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.goClient.instrument.textPost": "有关检测 Go 源代码的详细指南,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.goClient.instrument.textPre": "使用以下已提供检测模块之一或直接使用跟踪器 API 来检测 Go 应用程序。",
|
||||
"apmOss.tutorial.goClient.instrument.title": "检测您的应用程序",
|
||||
"apmOss.tutorial.introduction": "从您的应用程序内收集深入全面的性能指标和错误。",
|
||||
"apmOss.tutorial.javaClient.download.textPre": "从 [Maven Central]({mavenCentralLink}) 下载代理 jar。**切勿**将该代理添加为您的应用程序的依赖项。",
|
||||
"apmOss.tutorial.javaClient.download.title": "下载 APM 代理",
|
||||
"apmOss.tutorial.javaClient.startApplication.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。",
|
||||
"apmOss.tutorial.javaClient.startApplication.textPre": "添加 `-javaagent` 标志并使用系统属性配置代理。\n\n * 设置所需的服务名称(允许使用的字符:a-z、A-Z、0-9、-、_ 和空格)\n * 设置定制 APM Server URL(默认值:{customApmServerUrl})\n * 设置您的应用程序的基础软件包",
|
||||
"apmOss.tutorial.javaClient.startApplication.title": "使用 javaagent 标志启动您的应用程序",
|
||||
"apmOss.tutorial.jsClient.enableRealUserMonitoring.textPre": "APM Server 默认禁用 RUM 支持。请参阅[文档]({documentationLink})以详细了解如何启用 RUM 支持。",
|
||||
"apmOss.tutorial.jsClient.enableRealUserMonitoring.title": "在 APM 服务器中启用真实用户监测支持",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "设置所需的服务名称(允许使用的字符:a-z、A-Z、0-9、-、_ 和空格)",
|
||||
"apmOss.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "设置服务版本(源地图功能要求)",
|
||||
"apmOss.tutorial.jsClient.installDependency.textPost": "框架集成(如 React 或 Angular)具有定制依赖项。请参阅[集成文档]({docLink})以了解详情。",
|
||||
"apmOss.tutorial.jsClient.installDependency.textPre": "可以使用 `npm install @elastic/apm-rum --save` 将代理作为依赖项安装到您的应用程序。\n\n然后可以在您的应用程序中初始化和配置代理,如下所示:",
|
||||
"apmOss.tutorial.jsClient.installDependency.title": "将代理设置为依赖项",
|
||||
"apmOss.tutorial.jsClient.scriptTags.textPre": "或者,也可以使用 Script 标记设置和配置代理。添加 `<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.",
|
||||
"apmOss.tutorial.jsClient.scriptTags.title": "使用 Script 标记设置代理",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "将其添加到您的应用中加载的第一个文件的最上面",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.allowedCharactersComment": "允许使用的字符:a-z、A-Z、0-9、-、_ 和空格",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "覆盖来自 package.json 的服务名",
|
||||
"apmOss.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"apmOss.tutorial.nodeClient.configure.textPost": "请参阅[文档]({documentationLink})以了解高级用法,包括如何用于 [Babel/ES 模块]({babelEsModulesLink})。",
|
||||
"apmOss.tutorial.nodeClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `serviceName` 以编程方式创建的。此代理支持各种框架,而且还可以与您的定制堆栈配合使用。",
|
||||
"apmOss.tutorial.nodeClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.nodeClient.install.textPre": "将 Node.js 的 APM 代理安装为您的应用程序的依赖项。",
|
||||
"apmOss.tutorial.nodeClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.rackClient.configure.commands.optionalComment": "可选,默认为 config/elastic_apm.yml",
|
||||
"apmOss.tutorial.rackClient.configure.commands.requiredComment": "必需",
|
||||
"apmOss.tutorial.rackClient.configure.textPre": "对于 Rack 或兼容的框架(例如 Sinatra),在您的应用中加入中间件,然后启动代理。",
|
||||
"apmOss.tutorial.rackClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "默认为 Rack 应用的类名称。",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "设置定制 APM Server URL(默认值:{defaultServerUrl})",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.setServiceNameComment": "设置服务名称 - 允许使用的字符:a-z、A-Z、0-9、-、_ 和空格",
|
||||
"apmOss.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"apmOss.tutorial.rackClient.createConfig.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。\n\n",
|
||||
"apmOss.tutorial.rackClient.createConfig.textPre": "创建配置文件 {configFile}:",
|
||||
"apmOss.tutorial.rackClient.createConfig.title": "创建配置文件",
|
||||
"apmOss.tutorial.rackClient.install.textPre": "将代理添加您的 Gemfile。",
|
||||
"apmOss.tutorial.rackClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.railsClient.configure.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。\n\n",
|
||||
"apmOss.tutorial.railsClient.configure.textPre": "您的应用启动时,APM 自动启动。通过创建配置文件 {configFile} 来配置代理",
|
||||
"apmOss.tutorial.railsClient.configure.title": "配置代理",
|
||||
"apmOss.tutorial.railsClient.install.textPre": "将代理添加您的 Gemfile。",
|
||||
"apmOss.tutorial.railsClient.install.title": "安装 APM 代理",
|
||||
"apmOss.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM 仪表板",
|
||||
"apmOss.tutorial.specProvider.longDescription": "应用程序性能监测 (APM) 从您的应用程序内收集深入全面的性能指标和错误。其允许您实时监测数以千计的应用程序的性能。[了解详情]({learnMoreLink})。",
|
||||
"apmOss.tutorial.specProvider.name": "APM",
|
||||
"apmOss.tutorial.specProvider.savedObjectsInstallMsg": "APM UI 中的某些功能需要 APM 索引模式。",
|
||||
"apmOss.tutorial.startServer.textPre": "服务器在 Elasticsearch 中处理并存储应用程序性能指标。",
|
||||
"apmOss.tutorial.startServer.title": "启动 APM Server",
|
||||
"apmOss.tutorial.windowsServerInstructions.textPost": "注意:如果您的系统禁用了脚本执行,则需要为当前会话设置执行策略,以允许脚本运行。示例:{command}。",
|
||||
"apmOss.tutorial.windowsServerInstructions.textPre": "1.从[下载页面]({downloadPageLink})下载 APM Server Windows zip 文件。\n2.将 zip 文件的内容解压缩到 {zipFileExtractFolder}。\n3.将 {apmServerDirectory} 目录重命名为 `APM-Server`。\n4.以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择**以管理员身份运行**)。如果您正在运行 Windows XP,您可能需要下载并安装 PowerShell。\n5.从 PowerShell 提示符处,运行以下命令以将 APM Server 安装为 Windows 服务:",
|
||||
"charts.advancedSettings.visualization.colorMappingText": "将值映射到可视化内的指定颜色",
|
||||
"charts.advancedSettings.visualization.colorMappingTitle": "颜色映射",
|
||||
"charts.colormaps.bluesText": "蓝色",
|
||||
|
@ -4572,122 +4685,9 @@
|
|||
"xpack.apm.transactionsTable.notFoundLabel": "未找到任何事务。",
|
||||
"xpack.apm.transactionsTable.transactionsPerMinuteColumnLabel": "每分钟事务数",
|
||||
"xpack.apm.transactionsTable.transactionsPerMinuteUnitLabel": "tpm",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.btnLabel": "检查代理状态",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.errorMessage": "尚未从代理收到任何数据",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.successMessage": "已从一个或多个代理成功接收数据",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.text": "确保您的应用程序正在运行且代理正在发送数据。",
|
||||
"xpack.apm.tutorial.apmAgents.statusCheck.title": "代理状态",
|
||||
"xpack.apm.tutorial.apmAgents.title": "APM 代理",
|
||||
"xpack.apm.tutorial.apmServer.callOut.message": "请确保 APM Server 已更新至 7.0 或更高版本。 还可以使用 Kibana 的管理部分中的迁移助手迁移 6.x 数据。",
|
||||
"xpack.apm.tutorial.apmServer.callOut.title": "重要说明:正在更新到 7.0 或更高版本",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "检查 APM Server 状态",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "未检测到任何 APM Server。请确保其正在运行并且您已升级到 7.0 或更高版本。",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.successMessage": "您已正确设置 APM Server",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.text": "在开始实施 APM 代理之前,确保 APM Server 正在运行。",
|
||||
"xpack.apm.tutorial.apmServer.statusCheck.title": "APM Server 状态",
|
||||
"xpack.apm.tutorial.apmServer.title": "APM Server",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment": "向已安装应用添加代理",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "要发送性能指标,请添加我们的跟踪中间件:",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_ 以及空格",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "设置所需的服务名称。允许使用的字符:",
|
||||
"xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"xpack.apm.tutorial.djangoClient.configure.textPost": "有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.djangoClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `SERVICE_NAME` 以编程方式创建的。",
|
||||
"xpack.apm.tutorial.djangoClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.djangoClient.install.textPre": "将 Python 的 APM 代理安装为依赖项。",
|
||||
"xpack.apm.tutorial.djangoClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.dotNetClient.configureAgent.textPost": "如果您未将 `IConfiguration` 实例传递给代理(例如非 ASP.NET Core 应用程序), 您还可以通过环境变量配置代理。\n 有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureAgent.title": "样例 appsettings.json 文件:",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.textPost": "传递 `IConfiguration` 实例为可选操作,通过此操作,代理将通过此 `IConfiguration` 实例 读取配置设置(例如,从 `appsettings.json` 文件)。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.textPre": "对于具有 `Elastic.Apm.NetCoreAll` 软件包的 ASP.NET Core,请在 `Startup.cs` 文件内的 `Configure` 方法中调用 `UseAllElasticApm`。",
|
||||
"xpack.apm.tutorial.dotNetClient.configureApplication.title": "将代理添加到应用程序",
|
||||
"xpack.apm.tutorial.dotNetClient.download.textPre": "将来自 [NuGet]({allNuGetPackagesLink}) 的代理软件包添加到 .NET 应用程序。有多个 NuGet 软件包可用于不同的用例。\n\n对于具有 Entity Framework Core 的 ASP.NET Core 应用程序,请下载 [Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink}) 软件包。此软件包将自动将每个 代理组件添加到您的应用程序。\n\n 如果您希望最大程度减少依存关系,您可以将 [Elastic.Apm.AspNetCore]({aspNetCorePackageLink}) 软件包仅用于 ASP.NET Core 监测,或将 [Elastic.Apm.EfCore]({efCorePackageLink}) 软件包仅用于 Entity Framework Core 监测。\n\n 如果仅希望将公共代理 API 用于手动检测,请使用 [Elastic.Apm]({elasticApmPackageLink}) 软件包。",
|
||||
"xpack.apm.tutorial.dotNetClient.download.title": "下载 APM 代理",
|
||||
"xpack.apm.tutorial.downloadServer.title": "下载并解压缩 APM Server",
|
||||
"xpack.apm.tutorial.downloadServerRpm": "寻找 32 位软件包?请参阅[下载页面]({downloadPageLink})。",
|
||||
"xpack.apm.tutorial.downloadServerTitle": "寻找 32 位软件包?请参阅[下载页面]({downloadPageLink})。",
|
||||
"xpack.apm.tutorial.editConfig.textPre": "如果您正在使用 Elastic Stack 的 X-Pack 安全版本,则必须在 `apm-server.yml` 配置文件中指定凭据。",
|
||||
"xpack.apm.tutorial.editConfig.title": "编辑配置",
|
||||
"xpack.apm.tutorial.elasticCloud.textPre": "要启用 APM Server,请前往 [Elastic Cloud 控制台](https://cloud.elastic.co/deployments?q={cloudId}) 并在部署设置中启用 APM。启用后,请刷新此页面。",
|
||||
"xpack.apm.tutorial.elasticCloudInstructions.title": "APM 代理",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_ 以及空格",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "或进行配置以在您的应用程序设置中使用 ELASTIC_APM",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "使用环境变量初始化",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "设置所需的服务名称。允许使用的字符:",
|
||||
"xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"xpack.apm.tutorial.flaskClient.configure.textPost": "有关高级用法,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.flaskClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `SERVICE_NAME` 以编程方式创建的。",
|
||||
"xpack.apm.tutorial.flaskClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.flaskClient.install.textPre": "将 Python 的 APM 代理安装为依赖项。",
|
||||
"xpack.apm.tutorial.flaskClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "使用环境变量初始化:",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment": "设置服务名称。允许使用的字符:# a-z、A-Z、0-9、-、_ 和空格。",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment": "如果未指定 ELASTIC_APM_SERVICE_NAME,将会使用可执行文件名称。",
|
||||
"xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"xpack.apm.tutorial.goClient.configure.textPost": "有关高级配置,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.goClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务将基于可执行文件名称或 `ELASTIC_APM_SERVICE_NAME` 环境变量以编程方式进行创建。",
|
||||
"xpack.apm.tutorial.goClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.goClient.install.textPre": "安装 Go 的 APM 代理软件包。",
|
||||
"xpack.apm.tutorial.goClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.goClient.instrument.textPost": "有关检测 Go 源代码的详细指南,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.goClient.instrument.textPre": "使用以下已提供检测模块之一或直接使用跟踪器 API 来检测 Go 应用程序。",
|
||||
"xpack.apm.tutorial.goClient.instrument.title": "检测您的应用程序",
|
||||
"xpack.apm.tutorial.introduction": "从您的应用程序内收集深入全面的性能指标和错误。",
|
||||
"xpack.apm.tutorial.javaClient.download.textPre": "从 [Maven Central]({mavenCentralLink}) 下载代理 jar。**切勿**将该代理添加为您的应用程序的依赖项。",
|
||||
"xpack.apm.tutorial.javaClient.download.title": "下载 APM 代理",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.textPre": "添加 `-javaagent` 标志并使用系统属性配置代理。\n\n * 设置所需的服务名称(允许使用的字符:a-z、A-Z、0-9、-、_ 和空格)\n * 设置定制 APM Server URL(默认值:{customApmServerUrl})\n * 设置您的应用程序的基础软件包",
|
||||
"xpack.apm.tutorial.javaClient.startApplication.title": "使用 javaagent 标志启动您的应用程序",
|
||||
"xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre": "APM Server 默认禁用 RUM 支持。请参阅[文档]({documentationLink})以详细了解如何启用 RUM 支持。",
|
||||
"xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title": "在 APM 服务器中启用真实用户监测支持",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "设置所需的服务名称(允许使用的字符:a-z、A-Z、0-9、-、_ 和空格)",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "设置服务版本(源地图功能要求)",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.textPost": "框架集成(如 React 或 Angular)具有定制依赖项。请参阅[集成文档]({docLink})以了解详情。",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.textPre": "可以使用 `npm install @elastic/apm-rum --save` 将代理作为依赖项安装到您的应用程序。\n\n然后可以在您的应用程序中初始化和配置代理,如下所示:",
|
||||
"xpack.apm.tutorial.jsClient.installDependency.title": "将代理设置为依赖项",
|
||||
"xpack.apm.tutorial.jsClient.scriptTags.textPre": "或者,也可以使用 Script 标记设置和配置代理。添加 `<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.",
|
||||
"xpack.apm.tutorial.jsClient.scriptTags.title": "使用 Script 标记设置代理",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "将其添加到您的应用中加载的第一个文件的最上面",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.allowedCharactersComment": "允许使用的字符:a-z、A-Z、0-9、-、_ 和空格",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "覆盖来自 package.json 的服务名",
|
||||
"xpack.apm.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"xpack.apm.tutorial.nodeClient.configure.textPost": "请参阅[文档]({documentationLink})以了解高级用法,包括如何用于 [Babel/ES 模块]({babelEsModulesLink})。",
|
||||
"xpack.apm.tutorial.nodeClient.configure.textPre": "代理是在您的应用程序进程内运行的库。APM 服务是基于 `serviceName` 以编程方式创建的。此代理支持各种框架,而且还可以与您的定制堆栈配合使用。",
|
||||
"xpack.apm.tutorial.nodeClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.nodeClient.install.textPre": "将 Node.js 的 APM 代理安装为您的应用程序的依赖项。",
|
||||
"xpack.apm.tutorial.nodeClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.rackClient.configure.commands.optionalComment": "可选,默认为 config/elastic_apm.yml",
|
||||
"xpack.apm.tutorial.rackClient.configure.commands.requiredComment": "必需",
|
||||
"xpack.apm.tutorial.rackClient.configure.textPre": "对于 Rack 或兼容的框架(例如 Sinatra),在您的应用中加入中间件,然后启动代理。",
|
||||
"xpack.apm.tutorial.rackClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "默认为 Rack 应用的类名称。",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "设置定制 APM Server URL(默认值:{defaultServerUrl})",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.setServiceNameComment": "设置服务名称 - 允许使用的字符:a-z、A-Z、0-9、-、_ 和空格",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server 需要令牌时使用",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。\n\n",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.textPre": "创建配置文件 {configFile}:",
|
||||
"xpack.apm.tutorial.rackClient.createConfig.title": "创建配置文件",
|
||||
"xpack.apm.tutorial.rackClient.install.textPre": "将代理添加您的 Gemfile。",
|
||||
"xpack.apm.tutorial.rackClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.railsClient.configure.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。\n\n",
|
||||
"xpack.apm.tutorial.railsClient.configure.textPre": "您的应用启动时,APM 自动启动。通过创建配置文件 {configFile} 来配置代理",
|
||||
"xpack.apm.tutorial.railsClient.configure.title": "配置代理",
|
||||
"xpack.apm.tutorial.railsClient.install.textPre": "将代理添加您的 Gemfile。",
|
||||
"xpack.apm.tutorial.railsClient.install.title": "安装 APM 代理",
|
||||
"xpack.apm.tutorial.specProvider.artifacts.application.label": "启动 APM",
|
||||
"xpack.apm.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM 仪表板",
|
||||
"xpack.apm.tutorial.specProvider.longDescription": "应用程序性能监测 (APM) 从您的应用程序内收集深入全面的性能指标和错误。其允许您实时监测数以千计的应用程序的性能。[了解详情]({learnMoreLink})。",
|
||||
"xpack.apm.tutorial.specProvider.name": "APM",
|
||||
"xpack.apm.tutorial.specProvider.savedObjectsInstallMsg": "APM UI 中的某些功能需要 APM 索引模式。",
|
||||
"xpack.apm.tutorial.startServer.textPre": "服务器在 Elasticsearch 中处理并存储应用程序性能指标。",
|
||||
"xpack.apm.tutorial.startServer.title": "启动 APM Server",
|
||||
"xpack.apm.tutorial.windowsServerInstructions.textPost": "注意:如果您的系统禁用了脚本执行,则需要为当前会话设置执行策略,以允许脚本运行。示例:{command}。",
|
||||
"xpack.apm.tutorial.windowsServerInstructions.textPre": "1.从[下载页面]({downloadPageLink})下载 APM Server Windows zip 文件。\n2.将 zip 文件的内容解压缩到 {zipFileExtractFolder}。\n3.将 {apmServerDirectory} 目录重命名为 `APM-Server`。\n4.以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择**以管理员身份运行**)。如果您正在运行 Windows XP,您可能需要下载并安装 PowerShell。\n5.从 PowerShell 提示符处,运行以下命令以将 APM Server 安装为 Windows 服务:",
|
||||
"xpack.apm.unitLabel": "选择单位",
|
||||
"xpack.apm.unsavedChanges": "{unsavedChangesCount, plural, =0{0 个未保存更改} one {1 个未保存更改} other {# 个未保存更改}} ",
|
||||
"xpack.apm.version": "版本",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue