mirror of https://github.com/apache/druid.git
84c1c2505d
Load data and query (i.e., automate https://druid.apache.org/docs/latest/tutorials/tutorial-batch.html) to have some basic checks ensuring the web console is wired up to druid correctly. The new end-to-end tests (tutorial-batch.spec.ts) are added to `web-console/e2e-tests`. Within that directory: - `components` represent the various tabs of the web console. Currently, abstractions for `load data`, `ingestion`, `datasources`, and `query` are implemented. - `components/load-data/data-connector` contains abstractions for the different data source options available to the data loader's `Connect` step. Currently, only the `Local file` data source connector is implemented. - `components/load-data/config` contains abstractions for the different configuration options available for each step of the data loader flow. Currently, the `Configure Schema`, `Partition`, and `Publish` steps have initial implementation of their configuration options. - `util` contains various helper methods for the tests and does not contain abstractions of the web console. Changes to add the new tests to CI: - `.travis.yml`: New "web console end-to-end tests" job - `web-console/jest.*.js`: Refactor jest configurations to have different flavors for unit tests and for end-to-end tests. In particular, the latter adds a jest setup configuration to wait for the web console to be ready (`web-console/e2e-tests/util/setup.ts`). - `web-console/package.json`: Refactor run scripts to add new script for running end-to-end tests. - `web-console/script/druid`: Utility scripts for building, starting, and stopping druid. Other changes: - `pom.xml`: Refactor various settings disable java static checks and to disable java tests into two new maven profiles. Since the same settings are used in several places (e.g., .travis.yml, Dockerfiles, etc.), having them in maven profiles makes it more maintainable. - `web-console/src/console-application.tsx`: Fix typo ("the the"). |
||
---|---|---|
.. | ||
assets | ||
e2e-tests | ||
lib | ||
script | ||
src | ||
.gitignore | ||
.stylelintrc.json | ||
README.md | ||
babel.config.js | ||
console-config.js | ||
favicon.png | ||
jest.common.config.js | ||
jest.e2e.config.js | ||
jest.unit.config.js | ||
package-lock.json | ||
package.json | ||
pom.xml | ||
sasslint.json | ||
tsconfig.json | ||
tslint.json | ||
unified-console.html | ||
webpack.config.js |
README.md
Apache Druid web console
This is the unified Druid web console that servers as a data management layer for Druid.
How to watch and run for development
- You need to be withing the
web-console
directory - Install the modules with
npm install
- Run
npm start
will start in development mode and will proxy druid requests tolocalhost:8888
Note: you can provide an environment variable to proxy to a different Druid host like so: druid_host=1.2.3.4:8888 npm start
Note: you can provide an environment variable use webpack-bundle-analyzer as a plugin in the build script or like so: BUNDLE_ANALYZER_PLUGIN='TRUE' npm start
To try the console in (say) coordinator mode you could run it as such:
druid_host=localhost:8081 npm start
Description of the directory structure
A lot of the directory structure was created to preserve the existing console structure as much as possible.
As part of this repo:
console.html
- Entry file for the overlord consolelib/
- A place where some overrides to the react-table stylus files live, this is outside of the normal SCSS build system.old-console/
- Files for the overlord consolepublic/
- The compiled destination of the file powering this consoleassets/
- The images (and other assets) used within the consolescript/
- Some helper bash scripts for running this consolesrc/
- This directory (together withlib
) constitutes all the source code for this console
Generated/copied dynamically
index.html
- Entry file for the coordinator consolepages/
- The files for the older coordinator consolecoordinator-console/
- Files for the coordinator console
List of non SQL data reading APIs used
GET /status
GET /druid/indexer/v1/supervisor?full
POST /druid/indexer/v1/worker
GET /druid/indexer/v1/workers
GET /druid/indexer/v1/tasks
GET /druid/coordinator/v1/loadqueue?simple
GET /druid/coordinator/v1/config
GET /druid/coordinator/v1/metadata/datasources?includeUnused
GET /druid/coordinator/v1/rules
GET /druid/coordinator/v1/config/compaction
GET /druid/coordinator/v1/tiers
Updating the list of license files
From the web-console directory run script/licenses