Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move all Observability plugins into /x-pack/observability_solution #170759

Closed
wants to merge 25 commits into from

Conversation

CoenWarmer
Copy link
Contributor

@CoenWarmer CoenWarmer commented Nov 7, 2023

Summary

This moves all most Observability plugins in /x-pack into /x-pack/observability_solution.

The changes in this PR are 99% files moves.

The only files that were otherwise changed are:

  • tsconfig.json files for every plugin, which needed to be pointed at the base TSConfig file one folder up. Example: "extends": "../../../tsconfig.base.json", => "extends": "../../../../tsconfig.base.json",
  • x-pack/i18nrc.json, which has updated folders;
  • packages/kbn-babel-preset/styled_components_files.js which needed to be updated to include the updated folder structure.

Edit 21-nov-2023:
As requested these plugins are excluded from the move:

  • Observability
  • Observability Log Explorer
  • Log Explorer
Screenshot 2023-11-21 at 13 09 02

Why even do this??

The Kibana plugin structure supports nesting of plugins by design.

In 2020 there was an initiative to reorganize folder structure according to domain for all plugins. This initiative was not followed up on then. We can do this for the Obs solution now.

Making this change has the following advantages:

  • Clearer organisation: It provides a clearer distinction as to what plugins belong to the Observability solution and which do not. Plugins don't need to be prefixed with observability_.
  • Supports more discoverability Easier discoverability of techniques, patterns and functions in closely related plugins. Fosters easier sharing, lifting or shameless stealing from your team mates.
  • Aids organisational awareness: It is easier as a member of the Observability org to find plugins that your colleagues are working in. Especially as plugin folder names may not correspond to naming used in the UI.
  • Supports Tier proposal: Following the discussion around tiering plugins, it provides an easier view on plugins that offer shared functionality or 'signal' plugins.
  • Low effort Moving folders is a cheap and easy way to surface which plugins are related to each other. Other approaches such as adding an org key to kibana.jsonc needs code work and approval from Kibana Core.
  • Easier tooling management: By having plugins in one folder it is easier to apply consistent tooling such as ESLint rules to all plugins belonging to the Observability group (Slack conversation)

@apmmachine
Copy link
Contributor

🤖 GitHub comments

Expand to view the GitHub comments

Just comment with:

  • /oblt-deploy : Deploy a Kibana instance using the Observability test environments.
  • /oblt-deploy-serverless : Deploy a serverless Kibana instance using the Observability test environments.
  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@CoenWarmer CoenWarmer force-pushed the feat/re-org branch 2 times, most recently from 7584dd0 to 7a3ca2e Compare November 8, 2023 13:42
@CoenWarmer CoenWarmer force-pushed the feat/re-org branch 3 times, most recently from c2eea2e to 49cd11b Compare November 9, 2023 11:45
@CoenWarmer CoenWarmer changed the title Move Obs plugins into observability_solution Move all Observability plugins into /x-pack/observability_solution Nov 9, 2023
@CoenWarmer CoenWarmer force-pushed the feat/re-org branch 6 times, most recently from 59396e5 to 7f3d8b4 Compare November 10, 2023 09:52
@CoenWarmer CoenWarmer force-pushed the feat/re-org branch 2 times, most recently from 8bb66ff to e86fcb3 Compare November 18, 2023 10:05
@cauemarcondes
Copy link
Contributor

I honestly don't think it's quite important to move solutions to a specific folder. You can easily work around it by using a workspace in vscode for example.

But if we want to move forward with this, I'd probably name the folder observability_solutions in plural. Also would be nice to keep it consistent across the code base:

@CoenWarmer
Copy link
Contributor Author

I honestly don't think it's quite important to move solutions to a specific folder. You can easily work around it by using a workspace in vscode for example.

How would that work with ESLint rule config?

But if we want to move forward with this, I'd probably name the folder observability_solutions in plural. Also would be nice to keep it consistent across the code base:

AFAIU, Elastic speaks about having three solutions: Search, Security and Observability. To my mind observability_solution made more sense.

Yes, I aim do that in a follow up PR.

@cauemarcondes
Copy link
Contributor

How would that work with ESLint rule config?

Do we or will we have any Obs specific rules?

@CoenWarmer
Copy link
Contributor Author

CoenWarmer commented Nov 20, 2023

How would that work with ESLint rule config?

Do we or will we have any Obs specific rules?

We currently do, yes:

* APM, UX and Observability overrides

@CoenWarmer
Copy link
Contributor Author

@elasticmachine merge upstream

@kibana-ci
Copy link
Collaborator

kibana-ci commented Nov 24, 2023

💔 Build Failed

Failed CI Steps

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
apm 3.7MB 3.7MB +29.0B
exploratoryView 203.4KB 203.4KB +1.0B
infra 1.9MB 1.9MB +8.0B
observabilityShared 36.3KB 36.3KB +2.0B
synthetics 868.3KB 868.3KB +2.0B
uptime 480.8KB 480.8KB -3.0B
ux 168.9KB 168.9KB +2.0B
total +41.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
apm 36.6KB 36.6KB +23.0B
exploratoryView 44.3KB 44.3KB -4.0B
observabilityShared 48.0KB 48.0KB +24.0B
total +43.0B

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

gbamparop added a commit that referenced this pull request Jan 26, 2024
- Rename `log_explorer` to `logs_explorer` and move it to an
`observability_solution` subfolder
- Rename `observability_log_explorer` to `observability_logs_explorer`
and move it to an `observability_solution` subfolder
- Use `renameFromRoot` to rename old configs 

Related to #171991 and
#170759

This PR is mostly focused on renaming the plugins, follow ups will be
created to change mentions of `log explorer`, `logExplorer` etc.

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Marco Antonio Ghiani <[email protected]>
CoenWarmer pushed a commit to CoenWarmer/kibana that referenced this pull request Feb 15, 2024
…75510)

- Rename `log_explorer` to `logs_explorer` and move it to an
`observability_solution` subfolder
- Rename `observability_log_explorer` to `observability_logs_explorer`
and move it to an `observability_solution` subfolder
- Use `renameFromRoot` to rename old configs 

Related to elastic#171991 and
elastic#170759

This PR is mostly focused on renaming the plugins, follow ups will be
created to change mentions of `log explorer`, `logExplorer` etc.

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Marco Antonio Ghiani <[email protected]>
@CoenWarmer
Copy link
Contributor Author

Closed, implemented by newer PRs.

@CoenWarmer CoenWarmer closed this Mar 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants