Skip to content

Commit

Permalink
[SearchProfiler] SearchProfiler to NP (elastic#48795)
Browse files Browse the repository at this point in the history
* Added the following components:

- highlight details (with render test)
- searchprofiler tabs
- (wip) profile tree
- (wip) shard details

* First iteration of ProfileTree component (needs render test)

* Remove space

* ProfileTree render test

* Add profile tree test to git index

* First iteration of editor component with render test

* First iteration of nearly functional public

* Fix highlight_details_flyout render test

* Move NP directory to public and fix import issue created by directly importing FormattedMessage

* Rendering and looking more normal

* Fix type issues and fix a11y for ace editor

* Added ability to do profile requests again and render into UI (styling WiP)

* Fix props in editor test

* Added empty tree placeholder component (with test), moved styling around into individual files (wip)

* Fix path

* Lots of style updates and added util for determining visible children (+test)

* Re-add missing badge and make it slightly wider (otherwise 100.00% cuts off to 100.0...)

* Delete legacy public!

* SCSS refactor + fix for re-rendering editor

* UI and server updates after license checks

* [skip ci] Add server np_ready code

* fix i18n

* Re-enable error annotations

* Minor UX improvements (focus editor after failed request and no tabindex for textarea without active license)
Added some spaces to make code more readable

* Removed xpackMain from ServerShim
Updated use of notifications -> notifications.toasts from np core setup
Removed TODO for using core.application.register (not available for legacy apps)

* Added placeholder component for loading state and implemented useReducer

* Refactor actions

* Changes after PR feedback:
- TS for unsafe utils test fixtures
- Safer use of .selfTime (no more NaN)
- Sentence case where applicable
- Cleaned up TODOs
- Fix styling issue with percentage on badges of profile tree
- Refactor name of profile hook (now useRequestProfile)
- Fixed copy paste issue in highlight flyout `Total time` -> `Self time`
- Restyled the profile button to be fill and not take up the full horizontal space
- Removed the `Type` input from the profiler query section

* Removed .type from backend and cleanup translations

* Disable responsive UI layout for now

* Remove buggy error annotation code

* - Refactored percentage badge to own component
- Updated styles after testing on IE11
- Updated styles after testing on Safari
- Chrome and FF worked on this commit

* Update missing i18n and fix use ace ui keyboard hook

* Update useEffect dependencies array for editor component

* Use absolute path to dev tools app (to fix CI)

* Remove file extensions

* Re-add missing data-test-subj
  • Loading branch information
jloleysens committed Oct 31, 2019
1 parent 4dc3e7c commit b218fe0
Show file tree
Hide file tree
Showing 106 changed files with 3,685 additions and 2,057 deletions.
56 changes: 0 additions & 56 deletions x-pack/legacy/plugins/searchprofiler/index.js

This file was deleted.

65 changes: 65 additions & 0 deletions x-pack/legacy/plugins/searchprofiler/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* 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 Boom from 'boom';

import { CoreSetup } from 'src/core/server';
import { Server } from 'src/legacy/server/kbn_server';
import { LegacySetup } from './server/np_ready/types';
import { plugin } from './server/np_ready';

export const searchprofiler = (kibana: any) => {
const publicSrc = resolve(__dirname, 'public');

return new kibana.Plugin({
require: ['elasticsearch', 'xpack_main'],
id: 'searchprofiler',
configPrefix: 'xpack.searchprofiler',
publicDir: publicSrc,

uiExports: {
// NP Ready
devTools: [`${publicSrc}/legacy`],
styleSheetPaths: `${publicSrc}/np_ready/application/index.scss`,
// Legacy
hacks: ['plugins/searchprofiler/register'],
home: ['plugins/searchprofiler/register_feature'],
},
init(server: Server) {
const serverPlugin = plugin();
const thisPlugin = this;

const commonRouteConfig = {
pre: [
function forbidApiAccess() {
const licenseCheckResults = server.plugins.xpack_main.info
.feature(thisPlugin.id)
.getLicenseCheckResults();
if (licenseCheckResults.showAppLink && licenseCheckResults.enableAppLink) {
return null;
} else {
throw Boom.forbidden(licenseCheckResults.message);
}
},
],
};

const legacySetup: LegacySetup = {
route: (args: Parameters<typeof server.route>[0]) => server.route(args),
plugins: {
__LEGACY: {
thisPlugin,
xpackMain: server.plugins.xpack_main,
elasticsearch: server.plugins.elasticsearch,
commonRouteConfig,
},
},
};
serverPlugin.setup({} as CoreSetup, legacySetup);
},
});
};
193 changes: 0 additions & 193 deletions x-pack/legacy/plugins/searchprofiler/public/app.js

This file was deleted.

This file was deleted.

Loading

0 comments on commit b218fe0

Please sign in to comment.