* Make sure `to` is 'now' and not the same as `from`
* Revert "Make sure `to` is 'now' and not the same as `from`"
This reverts commit 48e8d08213.
* Ensure `to` is properly rounded up to prevent `from` and `to` being identical
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Register advanced settings in server startup that show in the Kibana advanced settings UI. (Fixes #81396.)
* Format settings pages to be more consistent.
* Add uri decode to es_ui_shared and fix data stream issue with % name
* Add a test for data streams tab opened for name with a dollar sign
* Import uri decode function from es_ui_shared and fix navigation issues for filters
* Add tests for data streams with special characters in name
* Revert react router navigate changes (is done in a separate PR)
* Reverting changes to dataManagement es client and get data stream api route
* Fix data stream name filter when activated from a url parameter
* Clean up for better consistency and fixes after
https://github.com/elastic/kibana/pull/81664
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* `getBoundingClientRect` is now accessed through `SideEffectContext`.
* `writeText` from the `Clipboard` API is now accessed through the
`SideEffectContext`
* No longer using `@testing-library/react` and `@testing-library/react-hooks`
* No longer using `jest.spyOn` (mostly) or `jest.clearAllMocks`
The motivation for this PR:
* We already have `SideEffectContext`, which is meant to be an alternative to using `jest.spyOn`. This PR uses the `SideEffectContext` for `getBoundingClientRect` and `navigator.clipboard.writeText`.
* We have been using `enzyme` lately. This removes uses of `@testing-library/react` and `@testing-library/react-hooks` in favor of `enzyme`.
## Summary
**Bug fix addressed in this PR:**
- fixes https://github.com/elastic/kibana/issues/63203
- in the backend, we were only fetching status data for enabled rules, changed to fetch status data regardles of whether rule is enabled or disabled
## Summary
How to test this performance issue? Ensure that you add extra mappings of mapping-test-1k-block-1, 2, 3,4, etc.. that I have included within your advanced settings like below to a Kibana space:
```ts
apm-*-transaction*, auditbeat-*, endgame-*, filebeat-*, logs-*, packetbeat-*, winlogbeat-*, mapping-test-1k-block-1, mapping-test-1k-block-2, mapping-test-1k-block-3, mapping-test-1k-block-4
```
<img width="1331" alt="Screen Shot 2020-10-26 at 11 35 12 AM" src="https://user-images.githubusercontent.com/1151048/97224071-3a904a00-1796-11eb-8870-6de35fc2f115.png">
Modify these lines to add manual perf lines like so for the before numbers:
file: x-pack/plugins/security_solution/public/common/containers/source/index.tsx
```ts
export const getBrowserFields = memoizeOne(
(_title: string, fields: IndexField[]): BrowserFields => {
console.time('getBrowserFields'); // Start time
const value =
fields && fields.length > 0
? fields.reduce<BrowserFields>(
(accumulator: BrowserFields, field: IndexField) =>
set([field.category, 'fields', field.name], field, accumulator),
{}
)
: {};
console.timeEnd('getBrowserFields'); // End time
return value;
},
// Update the value only if _title has changed
(newArgs, lastArgs) => newArgs[0] === lastArgs[0]
);
```
Then load any of the SIEM webpages or create a detection engine rule and change around your input indexes.
Perf of this before the fix is going to show up in your dev tools console output like this:
```ts
getBrowserFields: 7875.5009765625 ms
```
Now, checkout this branch and change the code to be like so for the perf test of the mutatious version for after:
file: x-pack/plugins/security_solution/public/common/containers/source/index.tsx
```ts
/**
* HOT Code path where the fields can be 16087 in length or larger. This is
* VERY mutatious on purpose to improve the performance of the transform.
*/
export const getBrowserFields = memoizeOne(
(_title: string, fields: IndexField[]): BrowserFields => {
console.time('getBrowserFields'); // Start time
// Adds two dangerous casts to allow for mutations within this function
type DangerCastForMutation = Record<string, {}>;
type DangerCastForBrowserFieldsMutation = Record<
string,
Omit<BrowserField, 'fields'> & { fields: Record<string, BrowserField> }
>;
// We mutate this instead of using lodash/set to keep this as fast as possible
const value = fields.reduce<DangerCastForBrowserFieldsMutation>((accumulator, field) => {
if (accumulator[field.category] == null) {
(accumulator as DangerCastForMutation)[field.category] = {};
}
if (accumulator[field.category].fields == null) {
accumulator[field.category].fields = {};
}
if (accumulator[field.category].fields[field.name] == null) {
(accumulator[field.category].fields as DangerCastForMutation)[field.name] = {};
}
accumulator[field.category].fields[field.name] = (field as unknown) as BrowserField;
return accumulator;
}, {});
console.timeEnd('getBrowserFields'); // End time
return value;
},
// Update the value only if _title has changed
(newArgs, lastArgs) => newArgs[0] === lastArgs[0]
);
```
Re-load any and all pages and you should see this now:
```ts
getBrowserFields: 11.258056640625 ms
```
### Checklist
Delete any items that are not applicable to this PR.
- [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Change an example in embeddable to use controls instead of knobs
* Add controls to SyncBadge APM story
* Convert both to [CSF](https://storybook.js.org/docs/react/api/csf)
* Remove the Knobs addon from the default Storybook configuration
Do not remove the Knobs addon package, since Canvas is still using it and this does not change anything in Canvas.
This PR adds an an internal monitoring mechanism in Task Manager which keep track of a variety of metrics and a health api endpoint which makes the monitored statistics accessible.
# Conflicts:
# x-pack/test/plugin_api_integration/test_suites/task_manager/index.ts
* Added functional test for alerts list filters by status, alert type and action type. Did a code refactoring and splitting for alerts tests.
* -
* fixed failing tests
* fixed type checks
* minor naming fixes
* Use displayName in field list in visualize editor
* Set key in combo box
* Fix jest tests
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>