[APM] Clean up readme (#110973) (#111237)

* [APM] Clean up readme

* Update linting.md

* Update testing.md

* Update testing.md

* Update testing.md

* Update plugin-list.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

Co-authored-by: Søren Louv-Jansen <sorenlouv@gmail.com>
This commit is contained in:
Kibana Machine 2021-09-05 16:00:02 -04:00 committed by GitHub
parent 31fe1eba23
commit 04fd82e140
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 162 additions and 149 deletions

View file

@ -354,7 +354,7 @@ The plugin exposes the static DefaultEditorController class to consume.
|{kib-repo}blob/{branch}/x-pack/plugins/apm/readme.md[apm]
|To access an elasticsearch instance that has live data you have two options:
|Local setup documentation
|{kib-repo}blob/{branch}/x-pack/plugins/banners/README.md[banners]

View file

@ -0,0 +1,14 @@
## Feature flags
To set up a flagged feature, add the name of the feature key (`apm:myFeature`) to [commmon/ui_settings_keys.ts](./common/ui_settings_keys.ts) and the feature parameters to [server/ui_settings.ts](./server/ui_settings.ts).
Test for the feature like:
```js
import { myFeatureEnabled } from '../ui_settings_keys';
if (core.uiSettings.get(myFeatureEnabled)) {
doStuff();
}
```
Settings can be managed in Kibana under Stack Management > Advanced Settings > Observability.

View file

@ -0,0 +1,22 @@
## Linting
_Note: Run the following commands from the root of Kibana._
### Typescript
```
node scripts/type_check.js --project x-pack/plugins/apm/tsconfig.json
```
### Prettier
```
yarn prettier "./x-pack/plugins/apm/**/*.{tsx,ts,js}" --write
```
### ESLint
```
node scripts/eslint.js x-pack/legacy/plugins/apm
```
diff --git a/x-pack/plugins/apm/dev_docs/feature_flags.md b/x-pack/plugins/apm/dev_docs/feature_flags.md

View file

@ -0,0 +1,50 @@
## Local environment setup
### Kibana
```
git clone git@github.com:elastic/kibana.git
cd kibana/
yarn kbn bootstrap
yarn start --no-base-path
```
### APM Server, Elasticsearch and data
To access an elasticsearch instance that has live data you have two options:
#### A. Connect to Elasticsearch on Cloud (internal devs only)
Find the credentials for the cluster [here](https://github.com/elastic/apm-dev/blob/master/docs/credentials/apm-ui-clusters.md#apmelstcco)
#### B. Start Elastic Stack and APM data generators
```
git clone git@github.com:elastic/apm-integration-testing.git
cd apm-integration-testing/
./scripts/compose.py start master --all --no-kibana
```
_Docker Compose is required_
### Setup default APM users
APM behaves differently depending on which the role and permissions a logged in user has. To create the users run:
```sh
node x-pack/plugins/apm/scripts/create-apm-users-and-roles.js --username admin --password changeme --kibana-url http://localhost:5601 --role-suffix <github-username-or-something-unique>
```
This will create:
**apm_read_user**: Read only user
**apm_power_user**: Read+write user.
## Debugging Elasticsearch queries
All APM api endpoints accept `_inspect=true` as a query param that will result in the underlying ES query being outputted in the Kibana backend process.
Example:
`/api/apm/services/my_service?_inspect=true`
diff --git a/x-pack/plugins/apm/dev_docs/linting.md b/x-pack/plugins/apm/dev_docs/linting.md

View file

@ -0,0 +1,66 @@
# Testing
## Unit Tests (Jest)
```
node scripts/test/jest [--watch] [--updateSnapshot]
```
#### Coverage
HTML coverage report can be found in target/coverage/jest after tests have run.
```
open target/coverage/jest/index.html
```
---
## API Tests
API tests are separated in two suites:
- a basic license test suite [default]
- a trial license test suite (the equivalent of gold+)
```
node scripts/test/api [--trial] [--help]
```
The API tests are located in `x-pack/test/apm_api_integration/`.
**API Test tips**
- For debugging access Elasticsearch on http://localhost:9220 (`elastic` / `changeme`)
- To update snapshots append `--updateSnapshots` to the functional_test_runner command
---
## E2E Tests (Cypress)
```
node scripts/test/e2e [--trial] [--help]
```
The E2E tests are located [here](../../ftr_e2e)
---
## Functional tests (Security and Correlations tests)
TODO: We could try moving this tests to the new e2e tests located at `x-pack/plugins/apm/ftr_e2e`.
**Start server**
```
node scripts/functional_tests_server --config x-pack/test/functional/config.js
```
**Run tests**
```
node scripts/functional_test_runner --config x-pack/test/functional/config.js --grep='APM specs'
```
APM tests are located in `x-pack/test/functional/apps/apm`.
For debugging access Elasticsearch on http://localhost:9220` (elastic/changeme)
diff --git a/x-pack/plugins/apm/scripts/test/README.md b/x-pack/plugins/apm/scripts/test/README.md

View file

@ -2,105 +2,28 @@
## Local environment setup
### Kibana
```
git clone git@github.com:elastic/kibana.git
cd kibana/
yarn kbn bootstrap
yarn start --no-base-path
```
### APM Server, Elasticsearch and data
To access an elasticsearch instance that has live data you have two options:
#### A. Connect to Elasticsearch on Cloud (internal devs only)
Find the credentials for the cluster [here](https://github.com/elastic/apm-dev/blob/master/docs/credentials/apm-ui-clusters.md#apmelstcco)
#### B. Start Elastic Stack and APM data generators
```
git clone git@github.com:elastic/apm-integration-testing.git
cd apm-integration-testing/
./scripts/compose.py start master --all --no-kibana
```
_Docker Compose is required_
[Local setup documentation](./dev_docs/local_setup.md)
## Testing
Go to [tests documentation](./scripts/test/README.md)
[Testing documentation](./dev_docs/testing.md)
## Linting
_Note: Run the following commands from `kibana/`._
### Typescript
```
node scripts/type_check.js --project x-pack/plugins/apm/tsconfig.json
```
### Prettier
```
yarn prettier "./x-pack/plugins/apm/**/*.{tsx,ts,js}" --write
```
### ESLint
```
node scripts/eslint.js x-pack/legacy/plugins/apm
```
## Setup default APM users
APM behaves differently depending on which the role and permissions a logged in user has. To create the users run:
```sh
node x-pack/plugins/apm/scripts/create-apm-users-and-roles.js --username admin --password changeme --kibana-url http://localhost:5601 --role-suffix <github-username-or-something-unique>
```
This will create:
**apm_read_user**: Read only user
**apm_power_user**: Read+write user.
## Debugging Elasticsearch queries
All APM api endpoints accept `_inspect=true` as a query param that will result in the underlying ES query being outputted in the Kibana backend process.
Example:
`/api/apm/services/my_service?_inspect=true`
[Linting documentation](./dev_docs/linting.md)
## Storybook
Start the [Storybook](https://storybook.js.org/) development environment with
`yarn storybook apm`. All files with a .stories.tsx extension will be loaded.
You can access the development environment at http://localhost:9001.
## Experimental features settings
To set up a flagged feature, add the name of the feature key (`apm:myFeature`) to [commmon/ui_settings_keys.ts](./common/ui_settings_keys.ts) and the feature parameters to [server/ui_settings.ts](./server/ui_settings.ts).
Test for the feature like:
```js
import { myFeatureEnabled } from '../ui_settings_keys';
if (core.uiSettings.get(myFeatureEnabled)) {
doStuff();
}
**Start**
```
yarn storybook apm
```
Settings can be managed in Kibana under Stack Management > Advanced Settings > Observability.
All files with a .stories.tsx extension will be loaded. You can access the development environment at http://localhost:9001.
## Further resources
- [Cypress integration tests](./e2e/README.md)
- [VSCode setup instructions](./dev_docs/vscode_setup.md)
- [Github PR commands](./dev_docs/github_commands.md)
- [Routing and Linking](./dev_docs/routing_and_linking.md)
- [Telemetry](./dev_docs/telemetry.md)
- [Features flags](./dev_docs/feature_flags.md)

View file

@ -1,63 +1 @@
## Unit Tests (Jest)
```
node scripts/tests/jest [--watch] [--updateSnapshot]
```
#### Coverage
HTML coverage report can be found in target/coverage/jest after tests have run.
```
open target/coverage/jest/index.html
```
---
## API Tests
API tests are separated in two suites:
- a basic license test suite [default]
- a trial license test suite (the equivalent of gold+)
```
node scripts/tests/api [--trial] [--help]
```
The API tests are located in `x-pack/test/apm_api_integration/`.
**API Test tips**
- For debugging access Elasticsearch on http://localhost:9220` (elastic/changeme)
- To update snapshots append `--updateSnapshots` to the functional_test_runner command
---
## E2E Tests (Cypress)
```
node scripts/tests/e2e [--trial] [--help]
```
The E2E tests are located [here](../../ftr_e2e)
---
## Functional tests (Security and Correlations tests)
TODO: We could try moving this tests to the new e2e tests located at `x-pack/plugins/apm/ftr_e2e`.
**Start server**
```
node scripts/functional_tests_server --config x-pack/test/functional/config.js
```
**Run tests**
```
node scripts/functional_test_runner --config x-pack/test/functional/config.js --grep='APM specs'
```
APM tests are located in `x-pack/test/functional/apps/apm`.
For debugging access Elasticsearch on http://localhost:9220` (elastic/changeme)
Go to [testing documentation](../../dev_docs/testing.md)