Parsley is the UI for Evergreen's log viewer. It will eventually replace Lobster.
- Clone this GitHub repository.
- Ensure you have Node.js 16.13+ and Yarn installed.
- Run
yarn
. - Run
yarn run dev
. This will launch the app.
Parsley is capable of fetching logs from both evergreen and logkeeper. If you would like to develop against them you will need to run both of the servers locally.
Evergreen
- Clone the Evergreen Repository
- Follow the setup instructions in the README to set up your environment.
- Run
make local-evergreen
to start the local evergreen server
Logkeeper
-
Clone the Logkeeper Repository
-
Run
yarn bootstrap-logkeeper
to download some sample resmoke logs from s3. -
Run the command outputted by the previous step to seed the env variables and start the local logkeeper server
LK_CORS_ORIGINS=http:\/\/localhost:\\d+ LK_EVERGREEN_ORIGIN=http://localhost:8080 LK_PARSLEY_ORIGIN=http://localhost:5173 go run main/logkeeper.go --localPath {abs_path_to_parsley}/bin/_bucketdata
Note that all log output is piped to a file named
logkeeperapp.log
. You can usetail -f logkeeperapp.log
to view the log output.
To be able to use code generation, you'll need to create a symlink to the
schema
folder in Evergreen. This folder contains the definitions for our
GraphQL queries, mutations, and types.
To create a symlink, run the following command:
ln -s <path_to_evergreen_repo>/graphql/schema sdlschema
env-cmd is used to configure
build environments for production, staging and development. We use two files to
represent these various environments: .cmdrc-local.json
for local builds with
non-sensitive information, and .env-cmdrc.json
for builds deployed to S3. This
file is git ignored because it contains API keys that we do not want to publish.
It should be named .env-cmdrc.json
and placed at the root of the project. This
file is required to deploy Parsley to production and to staging. The credential
file is located in the R&D Dev Prod 1password vault.
- Sometimes you may run into an error where a dependency is out of date or in a
broken state. If you run into this issue try running
yarn install
to reinstall all dependencies. If that does not work try deleting yournode_modules
folder and runningyarn install
again. You can use theyarn clean
command to do this for you.
You must be on the main
Branch if deploying to prod.
A .env-cmdrc.json
file is required to deploy because it sets the environment
variables that the application needs for a given deployment environments. See
Environment Variables section for more info about this
file.
Run the deploy:<env>
yarn command
yarn deploy:prod
= deploy to https://parsley.mongodb.com- Deploying to production involves following the prompts in the cli command which kicks off an evergreen task that performs the deploy
yarn deploy:beta
= deploy to https://parsley-beta.corp.mongodb.comyarn deploy:staging
= deploy to https://parsley-staging.corp.mongodb.com