This adds a notification service to Kibana that can be used to send
asynchronous notifications, such as sending email and Slack messages,
which are intended to be configured via a combination of the
`kibana.yml` and Kibana keystore.
Once configured, the actions are automatically added to the notification
service and can be invoked via the server using the `notificationService`
singleton or HTTP to send it directly. See the included README for more
details.
* Add flatten function and list class.
* Rename functions to be more descriptive.
* WIP moving flatten logic to classes.
* Finish moving flatten logic into classes, add tests.
* Simplify flattening, remove non-native dependency. Add more tests.
* Add defaults to simplify function call.
* Refactor two blocks into a function.
* Fixed broken test.
* Update classes based on PR feedback.
* Update module exports, remove obsolete file.
This PR is a pretty small change to the Reporting job complete notification service. It converts the actual code to a simple object, instead of a class that needs to be instantiated. This makes the notification service a singleton, and also exports it so it can be used in non-Angular applications.
- Converts `reportingJobCompletionNotifications` factory to a singleton
- Exports the underlying jobCompletionNotifications
- Allow use in non-angular plugins
Example use:
```js
import { jobCompletionNotifications } from 'plugins/reporting/services/job_completion_notifications';
createReportingJob() // pseudo code function that returns a reporting job id
.then(jobId => jobCompletionNotifications.add(jobId));
```
* [XpackMain] Add _xpack/usage API
* add xpack usage http api integration test
* comment
* misc test describe fixes
* fix integration test
* fix reply called twice
* enable api test
* enable kibana collection for integration test to work
* throw error comment
* Add some collector classes for objects that get registered in a CollectorSet
* comment cleanup
* don't pass an inline-defined logger to collectorSet
* add a helper logger function so collector has access to logger at construction
* Ensure all true/false statements are nested in IfStatements.
* Simplify nested vertex diffing.
* Rename get vertices function and test it.
* Update tests, add more tests.
* Update prompted by review feedback.
* Update tests - add required props to provided objects.
* Remove unneeded function/tests.
* PR Cleanup.
* [ML] Adding jsconfig file for better code navigation in vscode
* removing allowSyntheticDefaultImports as it is defaulted to true
* cleaning up paths
This fixes the component structure of the file type icon: The container component no longer needs to be wrapped inside a span element for the tooltip to work by using the recommendation to pass on the props to the first inner element (see elastic/eui#839). Also adapted a jest test which tests the hovering behavior and fails when the props are not passed on.
Fixes jest tests for the bucket span estimator button. The tests were not correctly considering the way jest runs tests asynchronously. Now each test is self-contained within the test callback.
Migrates the field-type-icon directive to use EUI/React. Instead of the angular/bootstrap tooltip attribute on the directive's tag, there's now an option tooltip-enabled which when true wraps the component inside EuiToolTip.
This migrates the bucket span estimator button to use React/EUI. The existing mlBucketSpanEstimator is refactored to use React without ngReact to have more detailed control in regards to the $scope being transformed to a trimmed down props object with only the information necessary for the React component. This also allows more control in regards to the $scope attributes being watched. Instead of custom styles and classes this now uses the options available for EuiButton. However, there were some minimal overrides necessary to the EUI styles to replicate the narrower height and padding to fit within the input element.
This replaces the angular based tooltip used in the ml-info-icon directive with one based on React/EuiTooltip. It supports transclusion and rendering of angular template snippets inside the tooltip. Because the DOM structure of the EuiTooltips and the angular/bootstrap tooltips is quite different there is a bit more code involved to achieve this, but the result is that for this we don't have to change the markup in the original angular templates where ml-info-icon is used.
* [Monitoring] Add a yellow status phase in the startup lifecycle
* comments
* more comments
* more comment
* undo register => registerType function name change
* capturing refactoring work in progress
* cleanup
* removing 5.0 API
* updating autocomplete aggregations to supported ones
* adding documentation links to generated specs
* progress on ace upgrade
* further progress
* cleaning up
* adding new minified source for worker
* fixing bug with merging API definitions
* addressing PR feedback
* using raw loader to load worker file
* addressing PR feedback
* fixing bad characters in comments
* removing inadvertent change
* fixing scope links
* fixing a couple of scope links
* adding in exists to query dsl
* adding slop param for match_phrase query
* adding autocomplete support for search params
* Revert "using raw loader to load worker file"
This reverts commit 16d33c189c.
* adding rescore API support for autocomplete
* adding index boost API support for autocomplete
* adding collapse to autocomplete
* adding highlight property support to autocomplete
* fixing issue with highlight
* adding support for common terms query
* adding inner hits support for autocomplete
* adding support for newer match options to match and multi_match
* better solution for worker
* [kuery] Remove `byName` dependency
* Remove $http from kuery
* Fix test
* Add request headers
* Replace byName with getFieldByName; add isFilterable
* Replace Angular mock with static mock
* Update index pattern for query bar
* manually attach format.convert method to field
* Use KBN_FIELD_TYPES to determine isFilterable
* Bump yarn.lock file
* Add kfetch (Kibana fetch)
* Moved `getFromLegacyIndexPattern` to static index pattern functions
* Fix tests
* Mock out kfetch
* Move value formatting from getRangeScript to buildRangeFilter
* Remove getFieldByName (over abstraction)
* Split kfetch options into two
* [Monitoring/React] Render ES Indices Listing with Base Controller
Refactors the ES Indices Listing to use Base Controller and a React component instead of an Angular directive
* fix functional tests
* fix another test
* better default for summary status component
* nicer code for whitespace after label
* apiFn => apiUrlFn
* Deleted / Closed
This re-enables the feature flag to support selecting a range of cells in the anomaly explorer. Follow-ups to this PR will tackle limiting the allowed cells to select to avoid problems with too wide selections.
* [Monitoring/Beats] Telemetry Data from Beats
* filter apm-server
* ignore results payload if hitsLength === 0
* process each payload as stats are saved to clusters object
Fixes the data binding of focusForecastData to renderFocusChart(). An update to focusForecastData in MlTimeSeriesExplorerController wasn't correctly picked up by the directive mlTimeseriesChart because the relevant data wasn't being watched.
The mlChartTooltipService's hide() method was inside the show() method scope. If hide() was called before show() was called for the first time this would result in an error. This could have happened in angular directive's which called hide() on some cleanup action without a previous call to show(). This fix moves the hide() method outside the show() method's scope and adds a unit test to check for the correct structure of mlChartTooltipService.
* Change pipeline editor markup so bottom border doesn't hide text on last line.
* Add constants for scroll margin size.
* Add comments to editor constants.
* Add PX units to constant names.
* Update to grok debugger editors: let them grow taller and stop hiding half of bottom line input.
* Update custom pattern size to 10 LOC.
* Remove unnecessary options, add constants for scroll margin.
* Encapsulate editor options in mutate function.
* Move editor helper file and prefer "function" declaration over ES6 const.
* Add test for new helper function.
* [ML] Convert Explorer Influencers List to EUI/React
* [ML] Remove unused abbreviate_whole_number Angular filter
* [ML] Convert React Influencers List to stateless function
* [uiExports] migrate uiApp "uses" to explicit imports in apps
* [uiApp] update tests for getModules() method
* [optimize/uiExports] improve naming and comments
* [uiExports] sort imports so they load in the same order as before
* [testHarness] load hacks when testing in the browser
* [x-pack/uiExports] use new uiExports modules
* [testHarness] describe why we import uiExports/hacks
* [optimize] remove needless [].concat()
* [optimize/createUiExportsModule] string.includes > string.indexOf
* [uiExports/createUiExportsModule] remove needless capture of module exports
Fixes an issue with the anomaly table not correctly updating in the anomaly explorer and the anomaly markers not showing up in the time series viewer.
- moves the initialization of scope.anomalyRecords = []; to the controllers of anomaly explorer and time series viewer. having it in the anomaly table directive caused a race condition to overwrite already fetched records.
- use $watchCollection instead of $watch to track anomalyRecords and focusChartData changes.
replaces $timeouts with scope.$evalAsync
- fixes how focusChartData gets updated correctly to fix missing anomaly markers in the time series viewer.
* [ML] Removing angular from services
* removing commented out code
* fix include path for tests
* adding flag to initPromise
* moving job service for jest tests to pass
* moving initPromise to its own file
Fixes an issue where the anomaly table wouldn't load because a broadcast to renderTable was triggered before the anomaly table directive initialized the corresponding listener. This change replaces the use of broadcast and instead uses $watch to listen on scope changes on the specific attributes relevant to the updates. The updating of code in parent scopes was moved inside the $timeouts instead of the broadcast event.
This adds an additional check and corresponding error message to the validation of the model memory limit. If the parsing of the memory model limit results in 0 bytes the message will be triggered. This behaviour catches both correctly formatted but invalid strings (like 0mb) and invalid strings (like asdf).
Updates the behaviour of the job validation's model memory limit checks: The success messages success_mml gets only returned if the checks were actually run. This omits the success message for example in the single metric and population wizard.
Inconcistencies between AppState and derived custom states for UI components like mlSelectLimit and mlSelectInterval could trigger errors because the parent of a nested object attribute could become undefined. This PR adds additional checks to state_factory.js's get/set/reset methods to reinitialize itself with AppState and fall back to its default state should it not be present within AppState anymore. The original issues were hard to reproduce consistently using the UI only. However the error could be triggered when creating a malformed URL, like replacing the mlSelectInterval:(interval:(display:Auto,val:auto)) part of the URL to something like mlSelectInterval:(undefined). This PR includes additional unit tests which simulate this behaviour and fail without the additional checks provided by this PR.
* [console_extensions] disable when console is disabled
* [console extensions] has console and enabled
* [console_extensions] fix console_extensions.enabled
* Adding basic syntax highlighting for grok expressions
* Use EUI color palette
* Handle regex tokens, escaped and unescaped
* Return token for escaped content
* Add functional test
* Using higher-contrast colors
* Removing comment I used for developing the highlight rules
* Using object destructuring
* Removing unnecessary method
* Extracting constant for reuse
* Keep track of recently-deleted pipelines until Monitoring stops reporting them
* Adding explanatory comment for constant
This reduces the output from the clusters API in the data processing stage.
Mainly, it throws away a lot of unused fields in `elasticsearch.cluster_stats` and `elasticsearch.cluster_state`
cc @rasroh
* update to eui 0.0.44
* keep eui dependency in x-pack
* wrap EuiBasic table column in span to avoid className prop from getting overridden
* remove brittle functional tests that are no longer needed with EUI components
* filter field list instead of chaning table size
* update x-pack snapshots
* [Monitoring/React] Render ES Nodes Listing with Base Controller
Refactors the ES Nodes Listing to use Base Controller and a React component instead of an Angular directive
* remove another obsolete file
This changes the Advanced Node page for Elasticsearch to recognize the
"write" threadpool, while also incorporating the deprecated "index"
threadpool and renamed "bulk" usage (renamed to "write").
This sums the three writing threadpools together and displays it as a
unified view.