58 Commits

Author SHA1 Message Date
Rafael Silva
eaa709bb8e
feat: add stop delay arg (#331)
* feat: add stop-delay option

* doc: stop-delay option documentation

* chore: upgrade minimum v12 version

* tests: improve test to stop-delay
2022-02-07 10:16:03 -03:00
Rafael Gonzaga
cfaf8da110
feat(flame): add kernel-tracing option (#319) 2021-12-30 18:17:57 -03:00
Rafael Gonzaga
93ea3711d1
bump v10 (#299)
* update: use clinic scoped packages

* 10.0.0
2021-11-15 08:16:53 -03:00
Rafael Gonzaga
dd04d9be15
bump 9.1.0 (#297)
* 9.1.0

* chore: bump 9.1.0
2021-11-11 14:19:08 -03:00
Rafael Gonzaga
87e8a215dc
chore: add ci support node 16 (#292)
* chore: bump tap version

* chore: add v16 to test matrix

* chore: update coverage settings to latest tap version

* chore: use taprc

* chore: support v17

* chore: updade coverage settings
2021-10-28 09:41:21 -03:00
James M Snell
53a58b5a97
Drop Node.js 10, bump to 9.0.0 (#283) 2021-05-13 16:17:00 -07:00
Shogun
a4ac25cb88
Add heap profiler to the CLI (#273)
Signed-off-by: James M Snell <jasnell@gmail.com>
2021-05-13 13:42:27 -07:00
Salman Mitha
99269cc567
Removed upload/auth functionalities (#263) 2020-11-24 15:47:30 -08:00
Renée Kooi
351c1eb8c7
Revert "Print next step recommendation to console (#229)"
This reverts commit b4bab3b403e5ef0cd2ec104f2bbb7ef8c835fe50.
2020-05-29 19:15:57 +02:00
Renée Kooi
8f47ecddc2
Revert "Pass collectDelay arg to Clinic Doctor/Flame (#208)"
This reverts commit e6db361ead8d78c8adca8c9d6d11af82d4da3918.
2020-05-29 16:09:34 +02:00
Renée Kooi
16c4c867e7
ci: switch to Github Actions (#244) 2020-05-26 11:00:52 +02:00
Conor
b4bab3b403
Print next step recommendation to console (#229)
* print next step recommendation to console

* update messages

* add check for collect only argument

* remove whitespace
2020-04-27 17:38:59 +01:00
Renée Kooi
9f1e90ff09
Tweak node argument check (#230) 2020-04-23 13:18:13 +02:00
DylanC
e6db361ead
Pass collectDelay arg to Clinic Doctor/Flame (#208)
* Pass timeoutDelay arg to Clinic Doctor

* Update -t arg to --on-timeout

* Change timeout parameter to collectDelay

* Validate usage of the on-port flag

* Run linter

* Update path for collect_timeout_feature branches

* Update arg to match collect-delay in 0x

* Add the collect-delay flag

* Update docs with collect-delay arg

* Add DS_Store to the ignore list

* Bubbleprof doesn't have a matching branch
2020-03-26 14:55:20 +00:00
Dylan
20a3a93512 Fix minor typo for checkArgs 2020-02-21 12:46:55 +00:00
DylanC
4708a5a97d
Add absolute path for file to the terminal output (#209)
* Add absolute path for file to the terminal output

* Fix generation of the file path regarding the url

* Remove usage of resolve here
2020-02-11 09:55:41 +00:00
Dylan Coakley
52125ec149 Remove change from master 2020-02-03 12:01:23 +00:00
Dylan Coakley
533e791420 Remove change from master 2020-02-03 11:58:32 +00:00
Renée Kooi
ac8b4a4fbc
Upgrade standard. 2019-10-24 11:59:45 +02:00
Renée Kooi
19131a3fd3
Automatically privately upload profiles using `clinic $tool --up… (#180)
* Promisify command handlers

* Implement --upload

* tweak UI, delete files after upload

* Revert to previous phrasing so i dont have to update a million tests

* lint fix

* add --upload test

* lint fix
2019-10-15 16:47:50 +02:00
Renée Kooi
1bba02a828
Switch opn to open (#177)
* Switch `opn` to `open`

`opn` is no longer maintained and moved to the `open` package name.

* Fix lint
2019-07-16 12:09:55 +02:00
greenkeeper[bot]
c4e6fcb284 Update standard to the latest version 🚀 (#175)
* chore(package): update standard to version 13.0.1

* standard --fix
2019-07-12 09:48:37 +02:00
Renée Kooi
03c4613113
Set default output directory to $cwd/.clinic (#136)
* Set default output directory to $cwd/.clinic

* Fix tests on windows

* consistent quotes
2019-03-21 16:29:01 +01:00
Stuart Wilson
d8c19ed743 Node Clinic => Clinic.js (#138) 2019-03-21 16:27:40 +01:00
Mihovil Rister
2d40aa8440 Hide stack traces on upload error for non dev environments (#125)
Hide stack traces in non dev environments
2019-03-19 18:43:29 +01:00
Renée Kooi
0ca696d118
Let users specify custom Ask message on CLI (#126)
* Let users specify custom Ask message on CLI

Opens the $EDITOR in order to add a message.

A temporary file is placed in `profiledir/ASK_MESSAGE`. If the profile
is super broken and didn't output a directory, it uses a temporary file
… somewhere (whatever the `tmp` module decides to do).

* handle empty message

* Expand initial message and fix trailing newlines

* Ask usability updates

- `getAskMessage` gets its own file
- vim starts in insert mode with the cursor at the end of the file
- VS Code forks and returns control to the CLI on start, so we can't
easily wait for it to exit; instead, we wait for user confirmation if
the editor closed within 2 seconds without updating the ASK_MESSAGE file.

* reword to avoid 'no quotes' stuff

Co-Authored-By: goto-bus-stop <renee@kooi.me>
2019-03-06 13:38:06 +01:00
Renée Kooi
3cbe86ec5d
Next (#118)
* clinic ask (#66)

The `ask` command is used to upload on the private area, e.g.: 
```
clinic ask --upload-url=http://localhost:3000 11213.clinic-bubbleprof
```
This will:
- Start the authentication on upload server to obtain a JWT token
- Upload the data to the protected API `/protected/data` on upload server

On the server side, the API can extract the user email from the JWT token to correctly identify the "private" folder for the user

* Authenticate for public uploads and support private uploads without `ask`ing (#102)

`clinic upload xyz.clinic-doctor` now also requires authentication.

A new `clinic upload --private` flag uploads to your private area.

`clinic ask` does `clinic upload --private` and then calls a currently-noop function that can be implemented once we have a `/ask` endpoint on the server.

* Store auth tokens in ~/.node-clinic-rc (#108)

Stores the JWT in ~/.node-clinic-rc after logging in. ~/.node-clinic-rc is a JSON file with upload URLs as keys, JWTs as values.

Use `clinic login` to login manually. Optionally specify an `--upload-url`.
Use `clinic logout` to logout manually. Optionally specify an `--upload-url`. Add `--all` to log out of all Clinic Upload servers, this deletes the ~/.node-clinic-rc file.
Use `clinic user` to show a list of current sessions. Optionally specify an `--upload-url` to only show that session.

You can use the `CLINIC_CREDENTIALS` environment variable to point to a different file. I added this for tests, maybe it's also useful in programmatic environments and warrants docs?

`clinic upload` and `clinic ask` automatically do what `clinic login` does at the start.

* Feature/ask auth flag (#114)

* [666] - Add ask param flag to login URL when authenticating using ask command

* [666] - Factor user terms acceptance into CLI login when validating JWT payload against upload type

* Implement ask with placeholder message (#115)

Means we'll have to reply first to figure out what someone needs help with but it's better than not getting a message at all

* 3.0.0-beta.0@next

* Fix/private public auth redirect (#116)

* Re #99 - Pass flag for private uploads to login URL so app can differentiate intent

* Re #97 - Open new tab on upload callback and create flag to prevent this behaviour if desired

* Re #97 - Update browser open flag to use recommended minimist syntax

* Revert "Disable clinic upload in old CLI. (#117)"

This reverts commit 75f80771b4741a4927788a2d492566d04416e1b7.

* Update tool versions.

* remove weird test? unsure what this was for
2019-02-13 14:34:53 +01:00
Renée Kooi
75f80771b4
Disable clinic upload in old CLI. (#117)
Tell users to update because the Upload Server requires authentication
now.

![image](https://user-images.githubusercontent.com/1006268/52706545-f7705200-2f85-11e9-9235-0105f51261e0.png)
2019-02-13 12:52:08 +01:00
Stuart Wilson
b341e19ea6
[638] - Ensure standard pageview is recorded in analytics along with specific event for each tool (#111) 2019-01-29 09:27:54 +00:00
Renée Kooi
72472d0756
Fix infinite spinner on --collect-only (#101)
In --collect-only, the CLI wasn't stopping the spinner after it completed. The spinner uses `setInterval` so it would just keep going indefinitely, preventing the process from exiting. Now it's correctly stopped.
2018-12-12 09:52:35 +01:00
Renée Kooi
70bb8ed828
show ctrl+c and process exit messages, + a spinner during analysis (#98)
improve our CLI messaging a bit by
- immediately showing a message when we receive a Ctrl+C
- showing the "Analysing data" message ASAP when the profiled process exits (requires https://github.com/nearform/node-clinic-bubbleprof/pull/286, https://github.com/nearform/node-clinic-doctor/pull/209, https://github.com/nearform/node-clinic-flame/pull/63)
- showing a loading "spinner" (its a bar really) during the analysis. for fun, its colour is the logo colour of the tool you're running 😛

![ui](https://user-images.githubusercontent.com/1006268/49518814-d8778480-f89f-11e8-942c-ee71f63583d2.gif)

<details><summary>and for bubbleprof</summary>

![ui-bubble](https://user-images.githubusercontent.com/1006268/49519031-5b98da80-f8a0-11e8-80ea-e15c9ffd51c0.gif)

</details>
<details><summary>and for doctor</summary>

![ui-doctor](https://user-images.githubusercontent.com/1006268/49519042-62275200-f8a0-11e8-83ca-85bbcf8fb40a.gif)

</details>
2018-12-05 22:12:43 +01:00
Renée Kooi
c179ffeb45
Add --autocannon flag for tools (#88)
* Add --autocannon flag, shorthand to '--on-port autocannon'

* Mention --autocannon in wrk/autocannon explanation

* fix --autocannon check

* Fix arg list in autocannon test

* wtf is this doing in my commit
2018-11-27 16:49:53 +01:00
Renée Kooi
7de857a053
Remove coverage ignore comments for Flame. (#84) 2018-11-27 10:55:22 +01:00
Conor O'Neill
adf8ba8398
new GA code dedicated to the tools and separate from Upload (#83)
* new GA code dedicated to the tools and separate from Upload

* now without the VSCode reformatting
2018-11-26 15:28:55 +00:00
Renée Kooi
e64653efc9
Strip trailing slash from --visualize-only. (#81)
* Strip trailing slash from --visualize-only.

* add --visualize-only tests for flame

* Use platform path separator in test.

* Support windows path separators.
2018-11-20 12:06:56 +01:00
Renée Kooi
1355b44f1e
Pass through --dest to Flame and Bubbleprof (#76)
* Add --dest to clinic flame.

* Add --dest to clinic bubbleprof.

* Add cli-flame-full test.

* Add --dest tests for each tool.

* Update tools to versions that have --dest.
2018-11-20 11:36:39 +01:00
Renée Kooi
551c824e7a Add CLI metrics and update notifications (#68)
* Track tool use.

* Wait for permission before starting tools.

* Add update-notifier.

* Only ask for metrics permission if we'd actually use it.

Not for basic stuff like --help and --version.

* Disable Insight in tests.

* Avoid swallowing errors in Promise chains.

* Fix Insight optOut override for tests.

* Stub GA tracking code.

* Remove unused errors from callbacks.

* 100% cov

* Configure GA tracking code.
2018-10-25 16:07:17 +02:00
Luca Maraschi
2ae5bd2a96 Added data-path command line argument (#53)
* Added dest command line argument

* Added CLI test
2018-09-27 23:36:10 +02:00
Ruben Bridgewater
66237079cc
Update standard to v.12 and add lint script (#50) 2018-08-29 12:05:02 +02:00
Ruben Bridgewater
be6c77ad4d
Improve description with a note how to generate the output (#44)
* Improve description with a note how to generate the output

This also adds the debug mode to the documentation.
2018-08-27 15:49:37 +02:00
Mathias Buus
667d4bd915 if tool warns, print it (#62)
* if tool warns, print it

* yolo
2018-08-10 21:48:39 +02:00
Ruben Bridgewater
0ad51edfc9 check for valid input arguments 2018-08-07 17:52:40 +02:00
Mathias Buus
c02b39923b use updated package names 2018-07-23 23:30:20 +02:00
Mathias Buus
1768d0d4e5 Print upload link (#50)
* print upload link

* disable appveyor cache
2018-07-23 20:03:18 +02:00
Mathias Buus
68ea758e9f use new upload url (#61) 2018-07-23 20:02:21 +02:00
Kamil Mech
45a23a6495 Provide upload command after generating sample (#60) 2018-07-23 20:01:10 +02:00
Mathias Buus
6aecda0f70 use @nearform/clinic-flame (#57)
* use @nearform/clinic-flame

* use clinic-flame/version
2018-07-23 19:56:52 +02:00
Mathias Buus
b4ac363834 add info footer (#56) 2018-07-23 19:55:52 +02:00
Mathias Buus
bbc6a6e6a7 use xargv to support cmd.exe better (#54) 2018-07-05 14:28:00 +02:00
Mathias Buus
ec66e9db40 use port event cb to signal subprocess kill (#52) 2018-06-25 20:32:28 +02:00