kibana/x-pack/plugins/uptime
2019-05-16 15:58:57 -04:00
..
common [Uptime] Reduce bucket size for monitor list query (#36071) 2019-05-10 09:23:54 -04:00
public Add monitor list status tooltip. (#36382) 2019-05-16 15:58:57 -04:00
scripts Migrate from tslint (#33826) 2019-04-05 17:45:23 +01:00
server [Uptime] Reduce bucket size for monitor list query (#36071) 2019-05-10 09:23:54 -04:00
index.ts Feature Controls (#31652) 2019-04-12 09:16:13 -07:00
README.md
tsconfig.json

Uptime Monitoring

Purpose

The purpose of this plugin is to provide users of Heartbeat more visibility of what's happening in their infrasturcture. It's primarily built using React and Apollo's GraphQL tools.

Layout

There are three sections to the app, common, public, and server.

common

Contains GraphQL types, constants and a few other files.

public

Components come in two main types, queries and functional. Queries are extended from Apollo's queries type which abstracts a lot of the GraphQL connectivity away. Functional are dumb components that don't store any state.

The lib directory controls bootstrapping code and adapter types.

There is a pages directory; each view gets its own page component.

The principal structure of the app is stored in uptime_app.tsx.

server

There is a graphql directory which contains the resolvers, schema files, and constants.

The lib directory contains adapters, which are connections to external resources like Kibana Server, Elasticsearch, etc. In addition, it contains domains, which are libraries that provide functionality via adapters.

There's also a rest_api folder that defines the structure of the RESTful API endpoints.

Testing

Unit tests

From ~/kibana/x-pack, run node scripts/jest.js.

Functional tests

In one shell, from ~/kibana/x-pack: node scripts/functional_tests-server.js

In another shell, from ~kibana/x-pack: node ../scripts/functional_test_runner.js --grep="{TEST_NAME}".

API tests

In one shell, from ~/kibana/x-pack: node scripts/functional_tests-server.js

In another shell, from ~kibana/x-pack: node ../scripts/functional_test_runner.js --config test/api_integration/config.js --grep="{TEST_NAME}".