kibana/x-pack/plugins/apm/index.js

62 lines
1.8 KiB
JavaScript

/*
* 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 { resolve } from 'path';
import { initTransactionsApi } from './server/routes/transactions';
import { initServicesApi } from './server/routes/services';
import { initErrorsApi } from './server/routes/errors';
import { initStatusApi } from './server/routes/status_check';
export function apm(kibana) {
return new kibana.Plugin({
require: ['kibana', 'elasticsearch', 'xpack_main', 'apm_oss'],
id: 'apm',
configPrefix: 'xpack.apm',
publicDir: resolve(__dirname, 'public'),
uiExports: {
app: {
title: 'APM',
description: 'APM for the Elastic Stack',
main: 'plugins/apm/index',
icon: 'plugins/apm/icon.svg'
},
home: ['plugins/apm/register_feature'],
injectDefaultVars(server) {
const config = server.config();
return {
mlEnabled: config.get('xpack.ml.enabled'),
apmUiEnabled: config.get('xpack.apm.ui.enabled'),
apmIndexPattern: config.get('apm_oss.indexPattern')
};
},
hacks: ['plugins/apm/hacks/toggle_app_link_in_nav']
},
config(Joi) {
return Joi.object({
// display menu item
ui: Joi.object({
enabled: Joi.boolean().default(true)
}).default(),
// enable plugin
enabled: Joi.boolean().default(true),
// buckets
minimumBucketSize: Joi.number().default(15),
bucketTargetCount: Joi.number().default(27)
}).default();
},
init(server) {
initTransactionsApi(server);
initServicesApi(server);
initErrorsApi(server);
initStatusApi(server);
}
});
}