Repository navigation
Add Uptime Monitoring - #25480
Add Uptime Monitoring#25480
Conversation
💔 Build Failed |
mattapperson
left a comment
There was a problem hiding this comment.
Overall I would say this Is looking good, just the one major thing with regards to memory leaking but otherwise I like it
| this.register(component); | ||
| }; | ||
|
|
||
| private register = (rootComponent: React.ReactElement<any>) => { |
There was a problem hiding this comment.
The mounting you do here is good, but it does not take into consideration the needed unmounting. Otherwise angular will keep this in memory and navigating away and back will result in multiple allocations. To avoid this you will need something like the code we have in BeatsCM:
private manageAngularLifecycle($scope: any, $route: any, elem: any) {
const lastRoute = $route.current;
const deregister = $scope.$on('$locationChangeSuccess', () => {
const currentRoute = $route.current;
// if templates are the same we are on the same route
if (lastRoute.$$route.template === currentRoute.$$route.template) {
// this prevents angular from destroying scope
$route.current = lastRoute;
}
});
$scope.$on('$destroy', () => {
if (deregister) {
deregister();
}
// manually unmount component when scope is destroyed
if (elem) {
ReactDOM.unmountComponentAtNode(elem);
}
});
}
There was a problem hiding this comment.
Does 42a087e look like a step in the right direction?
There was a problem hiding this comment.
@mattapperson any further thoughts on this issue, or is it resolved now?
💔 Build Failed |
2ba5f90 to
42a087e
Compare
💔 Build Failed |
💔 Build Failed |
chrisronline
left a comment
There was a problem hiding this comment.
Looks pretty good. I haven't really seen a typescript/graphql plugin code before (I know we have them, but I haven't looked). It does seem like a lot of boilerplate, but maybe I'm misunderstanding. How much of this would you say is pure copy/paste boilerplate?
|
@chrisronline fair question.
|
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
* Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter.
* Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols.
* Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
* Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * [Uptime Monitoring] Add Overview and Monitor pages (#27279) * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
* Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * [Uptime Monitoring] Add Overview and Monitor pages (elastic#27279) * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
* Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * [Uptime Monitoring] Add Overview and Monitor pages (#27279) * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (#26070) * Add Uptime Monitoring (#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
* Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * [Uptime Monitoring] Add Overview and Monitor pages (elastic#27279) * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add GQL query components. * Remove reference to dedicated histogram resolver. * Update formatting of displayed dates and columns for monitor statuses. * Add UI import for framework adapter. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add React Router and some basic breadcrumbs. * Update application flow to subscribe to use K7 if available. * Rename a type. * Update to work with K7. * Update breadcrumb module to export functions per uptime page. * Add explicit type to object. * HTML-encode a symbol. * Extract router basename to prop/constant. * Add autorefresh control and state variables. * Support passing monitor ID to route. * Mock up some charts in the Monitor page. * Add spacer. * Enlarge spacer. * Add ID to sample link. * Replace div with fragment. * Remove unused text. * Add GQL components/resolvers/queries for PingList and MonitorSelect. * Add MonitorStatusBar GQL component, update GQL schema + resolver. * Add GQL support for Monitor charts. * Add auto-polling for Monitor Page components. * Fix routing bug. * Remove outdated code. * Add beaker icon. * Add snapshot component to Overview page. * Update snapshot histogram to display monitors up/down. Update types. * Update typings for adapters/libs. * Move monitor list to Overview page. Update formatting of snapshot component. * Include link from monitor table to monitor page. * Add help link to app header. * Remove unneeded title from Overview page. * Update the data shown in checks list. * Put limit on check query size. * Remove obsolete code. * Add filtering to Overview page. * Add Monitor List component. * Add filtering capabilities to errors list. * Add pagination, sorting, and status code to errors list. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Fix broken test. * Add more tests for pings ES adapter. * Remove obsolete code. * Track autorefresh state in localStorage. * Shrink top visualizations. * Fix typings in monitor charts component. * Fix typings in monitor status bar. * Fix typings in monitor select component. * Fix typings for monitor memory adapter. * Update error list column ordering. Fix broken API test. * Clean up names. * Refactor snapshot histogram into dedicated component, make histogram data nullable. * Add API test. * Add Uptime Monitoring (elastic#25480) * Initial commit. * Add heartbeat app to Kibana. * Add routing architecture. * Add graphQL endpoint. * Rename app to be 'uptime monitoring' instead of 'heartbeat'. * Add server tests. * Standardize interface/class/route naming. * Clean up GraphQL type inference script. * Update gql schema. * Rename classes/interfaces. Add tests for ES ping adapter. * Rename more symbols. * Improve angular lifecycle management. * Move angular lifecycle management code to framework adapter. * [Uptime Monitoring] Add user auth checks (elastic#26070) * Add Uptime Monitoring (elastic#25480) * Add authentication checks and tests. WIP. * Add auth adapter types. Finish work on adapter and update tests. * Add route errors. Rename license symbols. * Add test for ES pings adapter. * Add empty prompt when no index found. * Place limits on filtering capabilities. * Update plugin order. * Add date picker. * Fix bug setting date range. Update chart color. * Downgrade apollo cache package to avoid bumping other clients. * Extract reference to chrome API from app startup to kibana adapter. * Update framework_adapter_types.ts Remove unneeded comment via GitHub web UI. * Extract data formatting function to dedicated file to improve modularity. * Add a TODO. * Add TODO for moving formatting code to server. * Switch to use auto_date_histogram agg. * Add filter schema. * Add pagination and sorting to Monitor List component. * Add latest timestamp to errors list. * Add code to default the date range's end to be greater than 'now' to avoid the user missing latest information on refresh. * Delete console.log call from code.
Summary
Add a new plugin to x-pack for Uptime Monitoring.
At the moment there are
common,public, andserverdirectories. The majority of changes here are inserver. There's also ascriptsdirectory that is just set up to derive static types from the GraphQL schema.Common
There are
constantsanddomain_typesthat will be shared by bothpublicandserver. These are straightforward. The third subfolder,graphql, contains generated files that will provide typings and introspection for the GraphQL client once it's been added.Public
At the moment the client does not do much. In the
libfolder you'll find somewhat typical Kibana boilerplate to hook into Angular and render a React component in the root of the application section of the page. Theappsdir contains the actual startup code.Server
The majority of the new code lives here. There is a new REST API, a GraphQL Endpoint, and a
libfolder that contains the business logic.lib
This is the code responsible for facilitating connection to/from
elasticsearch,graphql, the REST API. This is also where the backend framework is mocked out for testing.The
adaptersection is responsible for connections, i.e. querying ES, hooking the Kibana server to the REST paths, or establishing the GraphQL endpoint.The
composedirectory contains the startup code where the various framework adapters are invoked.The
domainfolder contains code designed for the creation oflibs, which exposeadapterfunctionality to consumers.libs enable mocking of the backend, as they can take anyadaptermatching their expected interface.graphql
Uses the apollo server. Declares a schema, the required resolver (only 1 at the moment), and hooks into Kibana via a
hapiplugin that is declared inlib.rest_api
This is pretty straightforward; each part of the API is split into domains, at the moment we only have
pings, with one route, which gets all of the pings. These are hooked intohapiby the Kibana adapter.Recommendations for reviewing
Test the API/GraphQL endpoints.
api/uptime_monitoring/pings.api/uptime_monitoring/graphql. An example query:Checklist
Use
strikethroughsto remove checklist items you don't feel are applicable to this PR.there is no code that will render defined in this PR, aside from the Angular hookup code which is based on existing plugins that are cross-browser tested already
- [ ] This was checked for cross-browser compatibility, including a check against IE11there is no text that will be user-facing defined in this PR
- [ ] Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n supportThe project should have a README added, tracked in #25479
- [ ] Documentation was added for features that require explanation or tutorialsirrelevant, no UI functionality in this PR
- [ ] This was checked for keyboard-only and screenreader accessibilityFor maintainers