Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(console) error handling improvements #365

Merged
merged 4 commits into from Aug 5, 2022
Merged

feat(console) error handling improvements #365

merged 4 commits into from Aug 5, 2022

Conversation

hawkw
Copy link
Member

@hawkw hawkw commented Aug 5, 2022

This branch makes a number of small improvements to the
console CLI's error reporting:

  • feat(console): only suggest opening issues for panics

  • feat(console): init error handling before subcmds

    This way, if running a subcommand panics/errors, we still get nice
    color-eyre reports.

  • feat(console): filter out boring frames in backtraces

  • feat(console): include config options in autogenerated issues

    This adds a dump of all the console's config options to the issue
    metadata for GitHub issues generated using color_eyre's GitHub issue
    generation on panics.

    Example issue Markdown:

    Error

    lol
    

    Metadata

    key value
    version 0.1.6
    config.subcmd None
    config.target_addr Some(http://127.0.0.1:6669/)
    config.env_filter None
    config.log_directory Some("/tmp/tokio-console/logs")
    config.retain_for None
    config.view_options.no_colors false
    config.view_options.lang Some("en_US.UTF-8")
    config.view_options.ascii_only Some(false)
    config.view_options.truecolor Some(true)
    config.view_options.palette Some(All)
    config.view_options.toggles.color_durations Some(false)
    config.view_options.toggles.color_terminated Some(false)
    location tokio-console/src/main.rs:36:5

@hawkw hawkw requested a review from a team as a code owner August 5, 2022 20:12
@hawkw hawkw force-pushed the eliza/nicer-errors branch 2 times, most recently from dee279e to 0730b6b Compare August 5, 2022 20:15
@hawkw hawkw enabled auto-merge (rebase) August 5, 2022 20:16
This changes the console CLI's error handling so that GitHub issues are
only suggested for panics, not for recoverable errors (such as "no
config file found", "couldn't connect to remote host", etc).
This way, if running a subcommand panics/errors, we still get nice
`color-eyre` reports.
This commit adds `color_eyre`'s default backtrace frame filters, so we
skip stuff that's not relevant.
This adds a dump of all the console's config options to the issue
metadata for GitHub issues generated using `color_eyre`'s GitHub issue
generation on panics.

<details>

<summary>Example issue Markdown:</summary>

## Error
```
lol
```

## Metadata
|key|value|
|--|--|
|**version**|0.1.6|
|**config.subcmd**|`None`|
|**config.target_addr**|`Some(http://127.0.0.1:6669/)`|
|**config.env_filter**|`None`|
|**config.log_directory**|`Some("/tmp/tokio-console/logs")`|
|**config.retain_for**|`None`|
|**config.view_options.no_colors**|`false`|
|**config.view_options.lang**|`Some("en_US.UTF-8")`|
|**config.view_options.ascii_only**|`Some(false)`|
|**config.view_options.truecolor**|`Some(true)`|
|**config.view_options.palette**|`Some(All)`|
|**config.view_options.toggles.color_durations**|`Some(false)`|
|**config.view_options.toggles.color_terminated**|`Some(false)`|
|**location**|tokio-console/src/main.rs:36:5|

</summary>
@hawkw hawkw disabled auto-merge August 5, 2022 20:24
@hawkw hawkw merged commit fcb54df into main Aug 5, 2022
@hawkw hawkw deleted the eliza/nicer-errors branch August 5, 2022 20:24
hawkw added a commit that referenced this pull request Aug 5, 2022
This changes the console CLI's error handling so that GitHub issues are
only suggested for panics, not for recoverable errors (such as "no
config file found", "couldn't connect to remote host", etc).
hawkw added a commit that referenced this pull request Aug 5, 2022
This way, if running a subcommand panics/errors, we still get nice
`color-eyre` reports.
hawkw added a commit that referenced this pull request Aug 5, 2022
This commit adds `color_eyre`'s default backtrace frame filters, so we
skip stuff that's not relevant.
hawkw added a commit that referenced this pull request Aug 10, 2022
<a name="0.1.7"></a>
## 0.1.7 (2022-08-10)

#### Features

*  include config options in autogenerated issues (#365)
   ([fcb54df](fcb54df))
*  filter out boring frames in backtraces (#365) ([523a44a](523a44a))
*  init error handling before subcmds (#365) ([6646568](6646568))
*  only suggest opening issues for panics (#365) ([23cb6bf](23cb6bf))
*  update `tonic` to `0.8` (#364) ([40e2f6f](40e2f6f))
*  update `console-api` to `0.4` (#364) ([40e2f6f](40e2f6f))
hawkw added a commit that referenced this pull request Aug 10, 2022
<a name="0.1.7"></a>
## 0.1.7 (2022-08-10)

#### Features

*  include config options in autogenerated issues (#365)
   ([fcb54df](fcb54df))
*  filter out boring frames in backtraces (#365) ([523a44a](523a44a))
*  init error handling before subcmds (#365) ([6646568](6646568))
*  only suggest opening issues for panics (#365) ([23cb6bf](23cb6bf))
*  update `tonic` to `0.8` (#364) ([40e2f6f](40e2f6f))
*  update `console-api` to `0.4` (#364) ([40e2f6f](40e2f6f))
hawkw added a commit that referenced this pull request Sep 29, 2023
This changes the console CLI's error handling so that GitHub issues are
only suggested for panics, not for recoverable errors (such as "no
config file found", "couldn't connect to remote host", etc).
hawkw added a commit that referenced this pull request Sep 29, 2023
This way, if running a subcommand panics/errors, we still get nice
`color-eyre` reports.
hawkw added a commit that referenced this pull request Sep 29, 2023
This commit adds `color_eyre`'s default backtrace frame filters, so we
skip stuff that's not relevant.
hawkw added a commit that referenced this pull request Sep 29, 2023
This adds a dump of all the console's config options to the issue
metadata for GitHub issues generated using `color_eyre`'s GitHub issue
generation on panics.

<details>

<summary>Example issue Markdown:</summary>

## Error
```
lol
```

## Metadata
|key|value|
|--|--|
|**version**|0.1.6|
|**config.subcmd**|`None`|
|**config.target_addr**|`Some(http://127.0.0.1:6669/)`|
|**config.env_filter**|`None`|
|**config.log_directory**|`Some("/tmp/tokio-console/logs")`|
|**config.retain_for**|`None`|
|**config.view_options.no_colors**|`false`|
|**config.view_options.lang**|`Some("en_US.UTF-8")`|
|**config.view_options.ascii_only**|`Some(false)`|
|**config.view_options.truecolor**|`Some(true)`|
|**config.view_options.palette**|`Some(All)`|
|**config.view_options.toggles.color_durations**|`Some(false)`|
|**config.view_options.toggles.color_terminated**|`Some(false)`|
|**location**|tokio-console/src/main.rs:36:5|

</summary>
hawkw added a commit that referenced this pull request Sep 29, 2023
<a name="0.1.7"></a>
## 0.1.7 (2022-08-10)

#### Features

*  include config options in autogenerated issues (#365)
   ([fcb54df](fcb54df))
*  filter out boring frames in backtraces (#365) ([523a44a](523a44a))
*  init error handling before subcmds (#365) ([6646568](6646568))
*  only suggest opening issues for panics (#365) ([23cb6bf](23cb6bf))
*  update `tonic` to `0.8` (#364) ([40e2f6f](40e2f6f))
*  update `console-api` to `0.4` (#364) ([40e2f6f](40e2f6f))
hawkw added a commit that referenced this pull request Sep 29, 2023
# Changelog

All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## tokio-console-v0.1.10 - (2023-09-29)

[7d009f8](https://github.com/tokio-rs/console/commit/7d009f87120ce0c89f5f9c5311f05b6756ca770f)...[7d009f8](https://github.com/tokio-rs/console/commit/7d009f87120ce0c89f5f9c5311f05b6756ca770f)

### <a id = "tokio-console-v0.1.10-breaking"></a>Breaking Changes
- **Update Tonic and Prost dependencies ([#364](#364 ([f9b8e03](https://github.com/tokio-rs/console/commit/f9b8e03bd7ee1d0edb441c94a93a350d5b06ed3b))<br />This commit updates the public dependencies `prost` and `tonic` to
semver-incompatible versions (v0.11.0 and v0.8.0, respectively). This is
a breaking change for users who are integrating the `console-api` protos
with their own `tonic` servers or clients.
- **Update `tonic` to v0.10 and increase MSRV to 1.64 ([#464](#464 ([96e62c8](https://github.com/tokio-rs/console/commit/96e62c83ef959569bb062dc8fee98fa2b2461e8d))<br />This is a breaking change for users of `console-api` and
`console-subscriber`, as it changes the public `tonic` dependency to a
semver-incompatible version. This breaks compatibility with `tonic`
0.9.x and `prost` 0.11.x.

### Added

- [**breaking**](#tokio-console-v0.1.10-breaking) Update Tonic and Prost dependencies ([#364](#364)) ([f9b8e03](f9b8e03))
- Only suggest opening issues for panics ([#365](#365)) ([da2a89c](da2a89c))
- Init error handling before subcmds ([#365](#365)) ([ec66eda](ec66eda))
- Filter out boring frames in backtraces ([#365](#365)) ([95a5e54](95a5e54))
- Include config options in autogenerated issues ([#365](#365)) ([3244a1f](3244a1f))
- Reduce decimal digits in UI ([#402](#402)) ([c13085e](c13085e))
- Use tokio task ids in task views ([#403](#403)) ([f5b06d2](f5b06d2))
- Add support for Unix domain sockets ([#388](#388)) ([a944dbc](a944dbc), closes [#296](#296))
- Add scheduled time per task ([#406](#406)) ([f280df9](f280df9))
- Add task scheduled times histogram ([#409](#409)) ([d92a399](d92a399))
- Update `tonic` to 0.9 ([#420](#420)) ([48af1ee](48af1ee))
- Update MSRV to Rust 1.60.0 ([b18ee47](b18ee47))
- Migrate to `ratatui` and update `crossterm` ([#425](#425)) ([b209dd6](b209dd6))
- Help view modal ([#432](#432)) ([359a4e7](359a4e7))
- Add way to inspect details of task from resource view ([#449](#449)) ([132ed4e](132ed4e), closes [#448](#448))
- Add warning for tasks that never yield ([#439](#439)) ([d05fa9e](d05fa9e))
- [**breaking**](#tokio-console-v0.1.10-breaking) Update `tonic` to v0.10 and increase MSRV to 1.64 ([#464](#464)) ([96e62c8](96e62c8))

### Documented

- Update screenshots in README ([#419](#419)) ([e9bcd67](e9bcd67))
- Revert "update screenshots in README ([#419](#419))" ([993a3d9](993a3d9))
- Update screenshots in README ([#421](#421)) ([8a27f96](8a27f96))
- Add column descriptions for all tables ([#431](#431)) ([e3cf82b](e3cf82b))
- Update MSRV version docs to 1.64 ([#467](#467)) ([94a5a51](94a5a51))

### Fixed

- Fix ascii-only flipped input ([#377](#377)) ([652ac34](652ac34))
- Declare `tokio-console` bin as `default-run` ([#379](#379)) ([9ce60ec](9ce60ec))
- Make `retain_for` default to 6s if not specfied ([#383](#383)) ([0a6012b](0a6012b), fixes [#382](#382))
- Enable view-switching keystrokes on details views ([#387](#387)) ([f417d7a](f417d7a))
- Fix `ViewOptions` default lang' ([#394](#394)) ([a1cf1b8](a1cf1b8), fixes [#393](#393))
- Remove `tracing-subscriber` 0.2 from dependencies ([#404](#404)) ([768534a](768534a))
- Fix calculation of busy time during poll ([#405](#405)) ([e2c536a](e2c536a))
- Remove histogram minimum count ([#424](#424)) ([02cf8a6](02cf8a6))
- Remove trailing space from task/resource location ([#443](#443)) ([90e5918](90e5918))
- Make long locations readable ([#441](#441)) ([9428d7f](9428d7f), closes [#411](#411))
- Fix task detail view Id to display remote tokio::task::Id ([#455](#455)) ([70c3952](70c3952))

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant