kibana/x-pack/plugins/observability
Spencer fecdba7eba
[eslint] add rule to prevent export* in plugin index files (#109357)
* [eslint] add rule to prevent export* in plugin index files

* deduplicate export names for types/instances with the same name

* attempt to auto-fix duplicate exports too

* capture exported enums too

* enforce no_export_all for core too

* disable rule by default, allow opting-in for help fixing

* update tests

* reduce yarn.lock duplication

* add rule but no fixes

* disable all existing violations

* update api docs with new line numbers

* revert unnecessary changes to yarn.lock which only had drawbacks

* remove unnecessary eslint-disable

* rework codegen to split type exports and use babel to generate valid code

* check for "export types" deeply

* improve test by using fixtures

* add comments to some helper functions

* disable fix for namespace exports including types

* label all eslint-disable comments with related team-specific issue

* ensure that child exports of `export type` are always tracked as types

Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-09-01 18:05:45 -07:00
..
.storybook Storybook EUI theme decorator (#103582) 2021-07-09 08:54:48 -05:00
common [RAC] Enable workflow status filtering (#108215) 2021-08-20 12:07:09 +02:00
public [eslint] add rule to prevent export* in plugin index files (#109357) 2021-09-01 18:05:45 -07:00
scripts
server [eslint] add rule to prevent export* in plugin index files (#109357) 2021-09-01 18:05:45 -07:00
typings
jest.config.js Storybook EUI theme decorator (#103582) 2021-07-09 08:54:48 -05:00
kibana.json [RAC] Add embeddable to o11y optionalPlugins (#110713) 2021-09-01 18:05:22 +02:00
README.md
tsconfig.json [build_ts_refs] improve caches, allow building a subset of projects (#107981) 2021-08-10 22:12:45 -07:00

Observability plugin

This plugin provides shared components and services for use across observability solutions, as well as the observability landing page UI.

Rules, Alerts, and Cases

The Observability plugin contains experimental support for improved alerting and case management.

If you have:

xpack.observability.unsafe.cases.enabled: true

In your Kibana configuration, the Cases page will be available.

If you have:

xpack.observability.unsafe.alertingExperience.enabled: true

In your Kibana configuration, the Alerts page will be available.

This will only enable the UI for this page when. In order to have alert data indexed you'll need to enable writing in the Rule Registry plugin:

xpack.ruleRegistry.write.enabled: true

When both of the these are set to true, your alerts should show on the alerts page.

Shared navigation

The Observability plugin maintains a navigation registry for Observability solutions, and exposes a shared page template component. Please refer to the docs in the component directory for more information on registering your solution's navigation structure, and rendering the navigation via the shared component.

Unit testing

Note: Run the following commands from kibana/x-pack/plugins/observability.

Run unit tests

npx jest --watch

Update snapshots

npx jest --updateSnapshot

Coverage

HTML coverage report can be found in target/coverage/jest after tests have run.

open target/coverage/jest/index.html

API integration testing

API tests are separated in two suites:

  • a basic license test suite
  • a trial license test suite (the equivalent of gold+)

This requires separate test servers and test runners.

Basic

# Start server
node scripts/functional_tests_server --config x-pack/test/observability_api_integration/basic/config.ts

# Run tests
node scripts/functional_test_runner --config x-pack/test/observability_api_integration/basic/config.ts

The API tests for "basic" are located in x-pack/test/observability_api_integration/basic/tests.

Trial

# Start server
node scripts/functional_tests_server --config x-pack/test/observability_api_integration/trial/config.ts

# Run tests
node scripts/functional_test_runner --config x-pack/test/observability_api_integration/trial/config.ts

The API tests for "trial" are located in x-pack/test/observability_api_integration/trial/tests.

API test tips

  • For debugging access Elasticsearch on http://localhost:9220` (elastic/changeme)
  • To update snapshots append --updateSnapshots to the functional_test_runner command