Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into kbn-74911-remove-…
Browse files Browse the repository at this point in the history
…legacy-mode
  • Loading branch information
pgayvallet committed Aug 31, 2020
2 parents 8c812f7 + 1e20cd4 commit bb64a7f
Show file tree
Hide file tree
Showing 251 changed files with 4,806 additions and 2,665 deletions.
5 changes: 1 addition & 4 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -296,10 +296,7 @@ module.exports = {
errorMessage: `Plugins may only import from src/core/server and src/core/public.`,
},
{
target: [
'(src|x-pack)/plugins/*/server/**/*',
'!x-pack/plugins/apm/**/*', // https://github.com/elastic/kibana/issues/67210
],
target: ['(src|x-pack)/plugins/*/server/**/*'],
from: ['(src|x-pack)/plugins/*/public/**/*'],
errorMessage: `Server code can not import from public, use a common directory.`,
},
Expand Down
2 changes: 1 addition & 1 deletion docs/developer/getting-started/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ you can switch to the correct version when using nvm by running:
nvm use
----

Install the latest version of https://yarnpkg.com[yarn].
Install the latest version of https://classic.yarnpkg.com/en/docs/install[yarn v1].

Bootstrap {kib} and install all the dependencies:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To get started copy and paste this example to `test/functional/config.js`:
["source","js"]
-----------
import { resolve } from 'path';
import { resolveKibanaPath } from '@kbn/plugin-helpers';
import { REPO_ROOT } from '@kbn/dev-utils';
import { MyServiceProvider } from './services/my_service';
import { MyAppPageProvider } from './services/my_app_page';
Expand All @@ -24,7 +24,7 @@ export default async function ({ readConfigFile }) {
// read the {kib} config file so that we can utilize some of
// its services and PageObjects
const kibanaConfig = await readConfigFile(resolveKibanaPath('test/functional/config.js'));
const kibanaConfig = await readConfigFile(resolve(REPO_ROOT, 'test/functional/config.js'));
return {
// list paths to the files that contain your plugins tests
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [ACTION\_GLOBAL\_APPLY\_FILTER](./kibana-plugin-plugins-data-public.action_global_apply_filter.md)

## ACTION\_GLOBAL\_APPLY\_FILTER variable

<b>Signature:</b>

```typescript
ACTION_GLOBAL_APPLY_FILTER = "ACTION_GLOBAL_APPLY_FILTER"
```
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@

| Variable | Description |
| --- | --- |
| [ACTION\_GLOBAL\_APPLY\_FILTER](./kibana-plugin-plugins-data-public.action_global_apply_filter.md) | |
| [AggGroupLabels](./kibana-plugin-plugins-data-public.agggrouplabels.md) | |
| [AggGroupNames](./kibana-plugin-plugins-data-public.agggroupnames.md) | |
| [baseFormattersPublic](./kibana-plugin-plugins-data-public.baseformatterspublic.md) | |
Expand Down
43 changes: 24 additions & 19 deletions docs/settings/monitoring-settings.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<titleabbrev>Monitoring settings</titleabbrev>
++++

By default, the Monitoring application is enabled, but data collection
is disabled. When you first start {kib} monitoring, you are prompted to
enable data collection. If you are using {stack-security-features}, you must be
signed in as a user with the `cluster:manage` privilege to enable
data collection. The built-in `superuser` role has this privilege and the
built-in `elastic` user has this role.
By default, *{stack-monitor-app}* is enabled, but data collection is disabled.
When you first start {kib} monitoring, you are prompted to enable data
collection. If you are using {stack-security-features}, you must be signed in as
a user with the `cluster:manage` privilege to enable data collection. The
built-in `superuser` role has this privilege and the built-in `elastic` user has
this role.

You can adjust how monitoring data is
collected from {kib} and displayed in {kib} by configuring settings in the
Expand Down Expand Up @@ -49,7 +49,7 @@ For more information, see
in {kib} to the {es} monitoring cluster and to verify licensing status on the {es}
monitoring cluster. +
+
Every other request performed by the Stack Monitoring UI to the monitoring {es}
Every other request performed by *{stack-monitor-app}* to the monitoring {es}
cluster uses the authenticated user's credentials, which must be the same on
both the {es} monitoring cluster and the {es} production cluster. +
+
Expand All @@ -60,7 +60,7 @@ For more information, see
in {kib} to the {es} monitoring cluster and to verify licensing status on the {es}
monitoring cluster. +
+
Every other request performed by the Stack Monitoring UI to the monitoring {es}
Every other request performed by *{stack-monitor-app}* to the monitoring {es}
cluster uses the authenticated user's credentials, which must be the same on
both the {es} monitoring cluster and the {es} production cluster. +
+
Expand All @@ -83,7 +83,7 @@ These settings control how data is collected from {kib}.
|===
| `monitoring.kibana.collection.enabled`
| Set to `true` (default) to enable data collection from the {kib} NodeJS server
for {kib} Dashboards to be featured in the Monitoring.
for {kib} dashboards to be featured in *{stack-monitor-app}*.

| `monitoring.kibana.collection.interval`
| Specifies the number of milliseconds to wait in between data sampling on the
Expand All @@ -96,16 +96,26 @@ These settings control how data is collected from {kib}.
[[monitoring-ui-settings]]
==== Monitoring UI settings

These settings adjust how the {kib} Monitoring page displays monitoring data.
These settings adjust how *{stack-monitor-app}* displays monitoring data.
However, the defaults work best in most circumstances. For more information
about configuring {kib}, see
{kibana-ref}/settings.html[Setting Kibana Server Properties].
{kibana-ref}/settings.html[Setting {kib} server properties].

[cols="2*<"]
|===
| `monitoring.ui.elasticsearch.logFetchCount`
| Specifies the number of log entries to display in the Monitoring UI. Defaults to
`10`. The maximum value is `50`.
| Specifies the number of log entries to display in *{stack-monitor-app}*.
Defaults to `10`. The maximum value is `50`.

| `monitoring.ui.enabled`
| Set to `false` to hide *{stack-monitor-app}*. The monitoring back-end
continues to run as an agent for sending {kib} stats to the monitoring
cluster. Defaults to `true`.

| `monitoring.ui.logs.index`
| Specifies the name of the indices that are shown on the
<<logs-monitor-page,*Logs*>> page in *{stack-monitor-app}*. The default value
is `filebeat-*`.

| `monitoring.ui.max_bucket_size`
| Specifies the number of term buckets to return out of the overall terms list when
Expand All @@ -120,18 +130,13 @@ about configuring {kib}, see
`monitoring.ui.collection.interval` in `elasticsearch.yml`, use the same
value in this setting.

| `monitoring.ui.enabled`
| Set to `false` to hide the Monitoring UI in {kib}. The monitoring back-end
continues to run as an agent for sending {kib} stats to the monitoring
cluster. Defaults to `true`.

|===

[float]
[[monitoring-ui-cgroup-settings]]
===== Monitoring UI container settings

The Monitoring UI exposes the Cgroup statistics that we collect for you to make
*{stack-monitor-app}* exposes the Cgroup statistics that we collect for you to make
better decisions about your container performance, rather than guessing based on
the overall machine performance. If you are not running your applications in a
container, then Cgroup statistics are not useful.
Expand Down
18 changes: 12 additions & 6 deletions packages/kbn-dev-utils/package.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
{
"name": "@kbn/dev-utils",
"main": "./target/index.js",
"version": "1.0.0",
"license": "Apache-2.0",
"private": true,
"license": "Apache-2.0",
"main": "./target/index.js",
"scripts": {
"build": "tsc",
"kbn:bootstrap": "yarn build",
"kbn:watch": "yarn build --watch"
},
"dependencies": {
"@babel/core": "^7.11.1",
"axios": "^0.19.0",
"chalk": "^4.1.0",
"cheerio": "0.22.0",
"dedent": "^0.7.0",
"execa": "^4.0.2",
"exit-hook": "^2.2.0",
"getopts": "^2.2.5",
"globby": "^8.0.1",
"load-json-file": "^6.2.0",
"normalize-path": "^3.0.0",
"markdown-it": "^10.0.0",
"moment": "^2.24.0",
"normalize-path": "^3.0.0",
"rxjs": "^6.5.5",
"strip-ansi": "^6.0.0",
"tree-kill": "^1.2.2",
"tslib": "^2.0.0"
"vinyl": "^2.2.0"
},
"devDependencies": {
"typescript": "4.0.2",
"@kbn/babel-preset": "1.0.0",
"@kbn/expect": "1.0.0",
"chance": "1.0.18"
"@types/vinyl": "^2.0.4",
"chance": "1.0.18",
"typescript": "4.0.2"
}
}
59 changes: 59 additions & 0 deletions packages/kbn-dev-utils/src/babel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* 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 File from 'vinyl';
import * as Babel from '@babel/core';

const transformedFiles = new WeakSet<File>();

/**
* Returns a promise that resolves when the file has been
* mutated so the contents of the file are tranformed with
* babel, include inline sourcemaps, and the filename has
* been updated to use .js.
*
* If the file was previously transformed with this function
* the promise will just resolve immediately.
*/
export async function transformFileWithBabel(file: File) {
if (!(file.contents instanceof Buffer)) {
throw new Error('file must be buffered');
}

if (transformedFiles.has(file)) {
return;
}

const source = file.contents.toString('utf8');
const result = await Babel.transformAsync(source, {
babelrc: false,
configFile: false,
sourceMaps: 'inline',
filename: file.path,
presets: [require.resolve('@kbn/babel-preset/node_preset')],
});

if (!result || typeof result.code !== 'string') {
throw new Error('babel transformation failed without an error...');
}

file.contents = Buffer.from(result.code);
file.extname = '.js';
transformedFiles.add(file);
}
3 changes: 3 additions & 0 deletions packages/kbn-dev-utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@ export * from './stdio';
export * from './ci_stats_reporter';
export * from './plugin_list';
export * from './simple_kibana_platform_plugin_discovery';
export * from './streams';
export * from './babel';
export * from './parse_kibana_platform_plugin';
59 changes: 59 additions & 0 deletions packages/kbn-dev-utils/src/parse_kibana_platform_plugin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* 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 Path from 'path';
import loadJsonFile from 'load-json-file';

export interface KibanaPlatformPlugin {
readonly directory: string;
readonly manifestPath: string;
readonly manifest: {
id: string;
ui: boolean;
server: boolean;
[key: string]: unknown;
};
}

export function parseKibanaPlatformPlugin(manifestPath: string): KibanaPlatformPlugin {
if (!Path.isAbsolute(manifestPath)) {
throw new TypeError('expected new platform manifest path to be absolute');
}

const manifest = loadJsonFile.sync(manifestPath);
if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest)) {
throw new TypeError('expected new platform plugin manifest to be a JSON encoded object');
}

if (typeof manifest.id !== 'string') {
throw new TypeError('expected new platform plugin manifest to have a string id');
}

return {
directory: Path.dirname(manifestPath),
manifestPath,
manifest: {
...manifest,

ui: !!manifest.ui,
server: !!manifest.server,
id: manifest.id,
},
};
}
4 changes: 2 additions & 2 deletions packages/kbn-dev-utils/src/run/flags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ export function mergeFlagOptions(global: FlagOptions = {}, local: FlagOptions =
boolean: [...(global.boolean || []), ...(local.boolean || [])],
string: [...(global.string || []), ...(local.string || [])],
default: {
...global.alias,
...local.alias,
...global.default,
...local.default,
},

help: local.help,
Expand Down
1 change: 1 addition & 0 deletions packages/kbn-dev-utils/src/serializers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ export * from './absolute_path_serializer';
export * from './strip_ansi_serializer';
export * from './recursive_serializer';
export * from './any_instance_serizlizer';
export * from './replace_serializer';
36 changes: 36 additions & 0 deletions packages/kbn-dev-utils/src/serializers/replace_serializer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* 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 { createRecursiveSerializer } from './recursive_serializer';

type Replacer = (substring: string, ...args: any[]) => string;

export function createReplaceSerializer(
toReplace: string | RegExp,
replaceWith: string | Replacer
) {
return createRecursiveSerializer(
typeof toReplace === 'string'
? (v: any) => typeof v === 'string' && v.includes(toReplace)
: (v: any) => typeof v === 'string' && toReplace.test(v),
typeof replaceWith === 'string'
? (v: string) => v.replace(toReplace, replaceWith)
: (v: string) => v.replace(toReplace, replaceWith)
);
}
Loading

0 comments on commit bb64a7f

Please sign in to comment.