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

[Tracing] Add Elasticsearch instrumentation support to @elastic/kbn-es #138418

Closed
wants to merge 562 commits into from

Conversation

Mpdreamz
Copy link
Member

@Mpdreamz Mpdreamz commented Aug 9, 2022

This automatically sets up APM in any Elasticsearch instance that Kibana starts through @elastic/kbn-es. This includes integration and e2e tests.

It respects the same configuration as kibana and can be locally overridden in kibana.dev.yml as per #127892.

It will bootstrap secret_token and api_key in the local Elasticsearch secret store but as this appears to be broken for now these are passed directly to Elasticsearch as well.

image

@Mpdreamz Mpdreamz requested review from a team and vigneshshanmugam as code owners August 9, 2022 15:15
@Mpdreamz Mpdreamz added release_note:skip Skip the PR/issue when compiling release notes backport:skip This commit does not require backporting labels Aug 9, 2022
@Mpdreamz
Copy link
Member Author

@elastic/kibana-core i can't get this PR stable after bringing it up to date. Are these known flakey tests?

@rudolf
Copy link
Contributor

rudolf commented Aug 12, 2022

@Mpdreamz these tests seem to fail consistently:

[[job]](https://buildkite.com/elastic/kibana-pull-request/builds/64474#01828c33-e39b-4b61-beb5-302175316e69) [[logs]](https://buildkite.com/organizations/elastic/pipelines/kibana-pull-request/builds/64474/jobs/01828c33-e39b-4b61-beb5-302175316e69/artifacts/01828c60-4516-41b6-bf52-feb561d2b1c7) FTR Configs #29 / machine learning - short tests model management trained models for ML power user with imported models starts deployment of the imported model pt_tiny_fill_mask
[[job]](https://buildkite.com/elastic/kibana-pull-request/builds/64474#01828c60-745a-4167-8644-5b46a8257a85) [[logs]](https://buildkite.com/organizations/elastic/pipelines/kibana-pull-request/builds/64474/jobs/01828c60-745a-4167-8644-5b46a8257a85/artifacts/01828c68-8276-4430-a053-4440b5859227) FTR Configs #29 / machine learning - short tests model management trained models for ML power user with imported models starts deployment of the imported model pt_tiny_fill_mask

If these are also failing on main then the build output should have read something like "Build passed but some tests were flaky".

@elastic/ml-ui It appears as if this PR is causing the test to fail because it's expecting a toast to appear. It's not obvious how these changes could cause that, could someone please help and take a look?

lukeelmers and others added 20 commits September 6, 2022 17:41
Co-authored-by: Tyler Smalley <tyler.smalley@elastic.co>
Updated the KibanaPageTemplate imports from the deprecated path.
* Removed file-type from package.json deps.
Updated jimp to 0.16.1.
Updated light & dark dashboard baseline screenshots to resolve failure due to resize degradation.

* Replaced jimp with sharp and pixelmatch. Eliminates several deps, including file-type.
Eliminates quality degradation from image resizing.

* Fixed copy paste error, which lead to pass positives and errors.

* Integrated updateBaselines flag into dashboards report testing.
Fixed sharp resize to fit and not truncate the original image.

* Removed accidental '.only'

* Reverted area chart baseline.

* Removed explicit declaration of sharp from package.json.

* Adjusted dashboard screenshot size in attempt to eliminate layout scaling issues in CI testing.

* Reverted dashboard screenshot size. Lowered tolerance in dashboard PNG reporting tests to force failure and collect CI screenshots.

* Changed session save location for dashboard report images for better CI reporting.

* Fixed small dashboard baseline screenshot with correct aspect ratio.

* Updated 2 basline screenshots from CI. Lowered PNG match tolerance for dashboard screenshots to 1% for investigation of remaining screens.

* Update of dashboard controls light mode baseline.
Change of forced container width size in large dashboard layout test.

* Updated dashboard controls dark mode baseline screenshot.
Adjusted forced container width in large dashboard layout test for troubleshooting.

* Lowering tolerance of PNG compare tests from 9% to 1% for troubleshooting.
Replaced references to dedundant image service with existing, more adopted reporting service.
Ideally, the PNG functions of the reporting service would be merged with the screenshot service as an image service.

* Reverting tolerance of PNG compares to 0.09. Will create GH issues for specific teams to investigate.

* Implemented PngService to provide an accessible single reference to PNG compare testing.
Removed redundant implementations and references.

* Updated service reference and call to png compare function left out of last commit.

* Updated another missed PNG reference.

* Removed superfluous parameter.

* Update after bootstrap

* Updated area chart baseline to match new render with panel filters.

* Reverted limits in dashboard snapshot tests to original values.

* Merge and rebuild.

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* eui to v62.2.0

* i18n updates

* EuiDescriptionListProps imports

* eui to v62.2.1

* euitoast selector updates

* more EuiDescriptionListProps imports

* eui to v62.2.2

* snapshot updates

* snapshot updates

* toast selector updates

* more snapshot updates

* toast selector

* TRIAL: timeout for loading spinner

* do not assume a popover is closed before attempting to open it again

* Revert "do not assume a popover is closed before attempting to open it again"

This reverts commit 1b23165.

* remove wait

* eui to v62.2.3

* Fixx fleet unit test

* eui to v62.2.4

* snapshot updates

Co-authored-by: Nicolas Chaulet <nicolas.chaulet@elastic.co>
* Don't truncate name or ID columns of watches table.
…amic content (elastic#139079)

## Summary

Issue elastic#133186 ( as shown in below video) demonstrates couple of issues and this PR tries to fix those.

https://user-images.githubusercontent.com/61860752/171141631-f633a223-af76-457d-bed2-6bd8ea418a0e.mp4

**ISSUE - 1**

When in host details flyout, clicking on `show Top N`, the datagrid will flicker scrolling from right to left and then back to its original position.

**Solution** : This issue was not reproducible so I am assuming this has been already resolved. ( See below video for more details)

 
**ISSUE - 2**

When in host details flyout, clicking on `show Top N`, the popup hides behind the bottom screen edge. This is because initially the popup was small but when `Show TopN` is clicked, the content of Popup is changed and popup becomes bigger in size forcing it to exceed out of the screen's real estate.

**Solution** : This PR makes sure that, if hover actions Popup's content changes, Popup is re-positioned according to its new dimensions. Checkout below demonstration.


https://user-images.githubusercontent.com/7485038/185380538-d8fb159a-d666-4be2-b3b0-161a21d1b9d6.mov
* Create Entity analytics page

* Add Hosts risk dashboard to Entity analytics page

* Add entity analytics to the old menu

* Add entity analytics dashboard header

* Add User risk dashboard to Entity analytics

* Add entityAnalyticsDashoardEnabled feature flag

* Move useEnableHostRiskFromUrl to a shared folder

* Upgrade Entity analytics license to platinum

* Add ml permission check for entity analytics dashboard old menu

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
…astic#139345)

* [ML] Improves messaging when an anomaly detection forecast errors

* [ML] Edits following review
* ceses wip

* cases flyout and modal

* add theme provider

* render embeddable component

* update context menu

* basic embeddable props description

* update icons

* set absolute time range

* get permissions

* update actions compatibility

* add path to tsconfig

* check permission for attach action

* refactor

* use fieldFormats for dates

* functional tests

* revert test subj

* add generalCases

* hide panel on action click

* improve assertion

* asserting case content

* wip asserting swim lane content in Cases

* unique id for embeddable, fix types

* assert embeddable id and swim lane

* resolve nit comments
…lastic#139377)

* chore: remove `isQueryLoading`

`isQueryLoading` is the same as `loading` so we can remove the extra state and effect

* chore: document `isFirstUpdate`

By reading the source code, it wasn't clear why `isFirstUpdate` is necessary. I added a comment that explains why it's there. Also moved the effect closer to its dependencies.

* chore: remove `isFirstUpdate` in favor of showFullLoading

`showFullLoading` is the non-effect equivalent of `isFirstUpdate`

* chore: update comment

* chore: remove unnecessary comment

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
…astic#4666 (elastic#138378)

* [Security Solution Platform] Allow customizable plugin page layout elastic#4666

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
* [TIP] cover every IoC type in display_name logic

* [TIP] avoid having displa name field mapping separately from value mappers

* [TIP] return {field,value} object from getDisplayName

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

* [TIP] rename file from displa_value into displa_name

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
…d rules (elastic#139427)

* Adding migration

* Removing timer

* Adding functional test

* Adding another test
…ealthStatus (elastic#139274)

* Task health calculation never returns Error or Warning but logs the HealthStatus.
gbamparop and others added 11 commits September 6, 2022 17:43
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: boriskirov <boris.kirov@elastic.co>
…tic#139443)

* Removing check to see if user is a cloud user before activating

* Update x-pack/plugins/security/server/authentication/authenticator.test.ts

Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
* Add tips and best practices to e2e tests readme

* review suggestions
* move scss to styles folder

* create empty packages

* move code to packages

* adapt usages

* fix scss import path

* update packages and readmes

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
… circuit breaker (elastic#139501)

* Adding service functions to alert factory

* Fixing types

* Fixing types

* Small refactor

* Adding functional test

* Cleanup

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
…lastic#138964)

* query for data_stream datasets

* support package collection mode

* build index with metrics pattern

* trailing comma

* use getNewIndexPatterns everywhere

* Include new stack_monitoring infix in healthcheck dataset name

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Mat Schaffer <mat@elastic.co>
* update risk score to useSearchStrategy

* remove console

* fix types

* unit tests

* unit tests

* fix cypress tests

* cypress test

* unit tests and cypress tests

* fix type error

* cypress

* fix cypress

* fix up

* fix unit tests

* fix import

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
@Mpdreamz Mpdreamz requested a review from a team September 6, 2022 15:46
@Mpdreamz Mpdreamz requested review from a team and dgieselaar as code owners September 6, 2022 15:46
@spalger spalger closed this Sep 6, 2022
@kibana-ci
Copy link
Collaborator

kibana-ci commented Sep 6, 2022

⏳ Build in-progress, with failures

Failed CI Steps

Test Failures

  • [job] [logs] Jest Integration Tests #2 / #run() allows Java heap to be overwritten
  • [job] [logs] Jest Integration Tests #2 / #run() doesn't setup SSL when disabled
  • [job] [logs] Jest Integration Tests #2 / #run() rejects if #run() was called previously
  • [job] [logs] Jest Integration Tests #2 / #run() rejects if #start() was called previously
  • [job] [logs] Jest Integration Tests #2 / #run() rejects when bin/elasticsearch exists with 1
  • [job] [logs] Jest Integration Tests #2 / #run() resolves when bin/elasticsearch exists with 0
  • [job] [logs] Jest Integration Tests #2 / #run() resolves when bin/elasticsearch exists with 130
  • [job] [logs] Jest Integration Tests #2 / #run() resolves when bin/elasticsearch exists with 143
  • [job] [logs] Jest Integration Tests #2 / #run() sets default Java heap
  • [job] [logs] Jest Integration Tests #2 / #run() sets up SSL when enabled
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) allows overriding search.check_ccs_compatibility
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) doesn't setup SSL when disabled
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects if #run() was called previously
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects if #start() was called previously
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects when bin/elasticsearch exists with 0 before starting
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects when bin/elasticsearch exists with 1 before starting
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects when bin/elasticsearch exists with 130 before starting
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) rejects when bin/elasticsearch exists with 143 before starting
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) resolves when bin/elasticsearch logs "started"
  • [job] [logs] Jest Integration Tests #2 / #start(installPath) sets up SSL when enabled
  • [job] [logs] Jest Integration Tests #1 / createOrUpgradeSavedConfig() upgrades the previous version on each increment
  • [job] [logs] Jest Integration Tests #1 / daily rollups integration test deletes documents older that 3 days from the saved objects repository
  • [job] [logs] Jest Integration Tests #1 / default route provider consumes valid values
  • [job] [logs] Jest Integration Tests #1 / default route provider ignores invalid values
  • [job] [logs] Jest Integration Tests #1 / default route provider redirects to the configured default route respecting basePath
  • [job] [logs] Jest Integration Tests #1 / elasticsearch clients does not return deprecation warning when x-elastic-product-origin header is set
  • [job] [logs] Jest Integration Tests #1 / File HTTP API find combination
  • [job] [logs] Jest Integration Tests #1 / File HTTP API find file kind
  • [job] [logs] Jest Integration Tests #1 / File HTTP API find names
  • [job] [logs] Jest Integration Tests #1 / File HTTP API find status
  • [job] [logs] Jest Integration Tests #1 / File HTTP API find without filters
  • [job] [logs] Jest Integration Tests #1 / File HTTP API metrics returns usage metrics
  • [job] [logs] Jest Integration Tests #1 / File HTTP API public download it returns 400 for an invalid token
  • [job] [logs] Jest Integration Tests #1 / FileService creates file metadata awaiting upload
  • [job] [logs] Jest Integration Tests #1 / FileService deletes files
  • [job] [logs] Jest Integration Tests #1 / FileService enforces max size settings
  • [job] [logs] Jest Integration Tests #1 / FileService ES blob integration and file kinds passes blob store settings
  • [job] [logs] Jest Integration Tests #1 / FileService lists files
  • [job] [logs] Jest Integration Tests #1 / FileService retrieves a file
  • [job] [logs] Jest Integration Tests #1 / FileService Sharing files creates a file share object
  • [job] [logs] Jest Integration Tests #1 / FileService Sharing files deletes a file share object
  • [job] [logs] Jest Integration Tests #1 / FileService Sharing files lists all file share objects for a file
  • [job] [logs] Jest Integration Tests #1 / FileService Sharing files retrieves a a file share object
  • [job] [logs] Jest Integration Tests #1 / FileService Sharing files updates a file share object
  • [job] [logs] Jest Integration Tests #1 / FileService updates files
  • [job] [logs] Jest Integration Tests #1 / FileService uploads file content
  • [job] [logs] Jest Integration Tests #2 / Fleet preconfiguration reset Reset all policy Works and reset all preconfigured policies
  • [job] [logs] Jest Integration Tests #2 / Fleet preconfiguration reset Reset one preconfigured policy Works and reset one preconfigured policies if the policy is already deleted (with a ghost package policy)
  • [job] [logs] Jest Integration Tests #2 / Fleet preconfiguration reset Reset one preconfigured policy Works and reset one preconfigured policies if the policy was deleted with a preconfiguration deletion record
  • [job] [logs] Jest Integration Tests #2 / Fleet preconfiguration reset Reset one preconfigured policy Works if the preconfigured policies already exists with a missing package policy
  • [job] [logs] Jest Integration Tests #2 / Fleet setup preconfiguration with multiple instances Kibana preconfiguration setup sets up Fleet correctly when multiple Kibana instaces are started in serial
  • [job] [logs] Jest Integration Tests #2 / Fleet setup preconfiguration with multiple instances Kibana preconfiguration setup sets up Fleet correctly when multiple Kibana instances are started at the same time
  • [job] [logs] Jest Integration Tests #2 / Fleet setup preconfiguration with multiple instances Kibana preconfiguration setup sets up Fleet correctly with single Kibana instance
  • [job] [logs] Jest Integration Tests #1 / isInlineScriptingEnabled returns false when script.allowed_types is `none
  • [job] [logs] Jest Integration Tests #1 / isInlineScriptingEnabled returns false when script.allowed_types is stored
  • [job] [logs] Jest Integration Tests #1 / isInlineScriptingEnabled returns true when script.allowed_types is inline
  • [job] [logs] Jest Integration Tests #1 / isInlineScriptingEnabled returns true when script.allowed_types is unset
  • [job] [logs] Jest Integration Tests #3 / migration actions cloneIndex resolves left cluster_shard_limit_exceeded when the action would exceed the maximum normal open shards
  • [job] [logs] Jest Integration Tests #3 / migration actions cloneIndex resolves left index_not_found_exception if the source index does not exist
  • [job] [logs] Jest Integration Tests #3 / migration actions cloneIndex resolves left with a index_not_green_timeout if clone target already exists but takes longer than the specified timeout before turning green
  • [job] [logs] Jest Integration Tests #3 / migration actions cloneIndex resolves right if clone target already existed after waiting for index status to be green
  • [job] [logs] Jest Integration Tests #3 / migration actions cloneIndex resolves right if cloning into a new target index
  • [job] [logs] Jest Integration Tests #3 / migration actions initAction resolves left when cluster.routing.allocation.enabled is incompatible
  • [job] [logs] Jest Integration Tests #3 / migration actions initAction resolves right empty record if no indices were found
  • [job] [logs] Jest Integration Tests #3 / migration actions initAction resolves right record with found indices
  • [job] [logs] Jest Integration Tests #3 / migration actions initAction resolves right when cluster.routing.allocation.enabled=all
  • [job] [logs] Jest Integration Tests #3 / migration actions reindex & waitForReindexTask resolves right when reindex succeeds without reindex script
  • [job] [logs] Jest Integration Tests #3 / migration actions removeWriteBlock rejects if there is a non-retryable error
  • [job] [logs] Jest Integration Tests #3 / migration actions removeWriteBlock resolves right if successful when an index already has a write block
  • [job] [logs] Jest Integration Tests #3 / migration actions removeWriteBlock resolves right if successful when an index does not have a write block
  • [job] [logs] Jest Integration Tests #3 / migration actions setWriteBlock once resolved, prevents further writes to the index
  • [job] [logs] Jest Integration Tests #3 / migration actions setWriteBlock resolves left index_not_found_exception when the index does not exist
  • [job] [logs] Jest Integration Tests #3 / migration actions setWriteBlock resolves right when setting a write block on an index that already has one
  • [job] [logs] Jest Integration Tests #3 / migration actions setWriteBlock resolves right when setting the write block succeeds
  • [job] [logs] Jest Integration Tests #3 / migration actions waitForIndexStatus resolves left with "index_not_green_timeout" after waiting for an index status to be green timeout
  • [job] [logs] Jest Integration Tests #3 / migration actions waitForIndexStatus resolves left with "index_not_yellow_timeout" after waiting for an index status to be yellow timeout
  • [job] [logs] Jest Integration Tests #3 / migration actions waitForIndexStatus resolves right after waiting for an index status to be yellow if the index already existed
  • [job] [logs] Jest Integration Tests #2 / trace execution context does not affect "x-opaque-id" set by user
  • [job] [logs] Jest Integration Tests #2 / trace execution context does not break on non-ASCII characters within execution context
  • [job] [logs] Jest Integration Tests #2 / trace execution context execution context is the same for all the lifecycle events
  • [job] [logs] Jest Integration Tests #2 / trace execution context execution context is uniq for concurrent requests
  • [job] [logs] Jest Integration Tests #2 / trace execution context execution context is uniq for concurrent requests when "x-opaque-id" provided
  • [job] [logs] Jest Integration Tests #2 / trace execution context execution context is uniq for sequential requests
  • [job] [logs] Jest Integration Tests #2 / trace execution context parses the parent context if present
  • [job] [logs] Jest Integration Tests #2 / trace execution context passes "x-opaque-id" if no execution context is registered
  • [job] [logs] Jest Integration Tests #2 / trace execution context propagates context to Elasticsearch scoped client
  • [job] [logs] Jest Integration Tests #2 / trace execution context propagates context to Elasticsearch unscoped client
  • [job] [logs] Jest Integration Tests #2 / trace execution context sets execution context for a sync request handler
  • [job] [logs] Jest Integration Tests #2 / trace execution context sets execution context for an async request handler
  • [job] [logs] Jest Integration Tests #2 / trace execution context supports UTF-8 characters
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id can be overridden during Elasticsearch client call
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id ExecutionContext Service is disabled does not pass context if ExecutionContext Service is disabled
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id ExecutionContext Service is disabled passed to Elasticsearch scoped client calls even if ExecutionContext Service is disabled
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id generated and attached to Elasticsearch scoped client calls if not specifed
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id generated and attached to Elasticsearch unscoped client calls if not specifed
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id passed to Elasticsearch scoped client calls
  • [job] [logs] Jest Integration Tests #2 / trace x-opaque-id passed to Elasticsearch unscoped client calls
  • [job] [logs] Jest Integration Tests #1 / ui settings migrations migrates ml:fileDataVisualizerMaxFileSize
  • [job] [logs] Jest Integration Tests #1 / ui settings migrations migrates siem:* configs
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists delete route returns a 200 and deletes the setting
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists delete route returns a 400 if deleting overridden value
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists get route returns a 200 and includes userValues
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists set route returns a 200 and all values including update
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists set route returns a 400 if trying to set overridden value
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists setMany route returns a 200 and all values including updates
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc exists setMany route returns a 400 if trying to set overridden value
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc missing delete route creates doc, returns a 200 with just buildNum
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc missing get route creates doc, returns a 200 with settings
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc missing set route creates doc, returns a 200 with value set
  • [job] [logs] Jest Integration Tests #1 / uiSettings/routes doc missing setMany route creates doc, returns 200 with updated values
  • [job] [logs] Jest Integration Tests #2 / upgrade agent policy schema version with package installed with outdated schema version should correctly upgrade schema version
  • [job] [logs] Jest Integration Tests #2 / Uprade package install version with package installed with a previous format install version should upgrade package install version for outdated packages

History

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting release_note:skip Skip the PR/issue when compiling release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.