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(fix-update): allow user to profile commands with pprof #1685

Merged
merged 1 commit into from
Dec 15, 2023

Conversation

tyler-french
Copy link
Contributor

@tyler-french tyler-french commented Dec 11, 2023

What type of PR is this?

Feature

What package or component does this PR mostly affect?

cmd/gazelle

What does this PR do? Why is it needed?

This adds two flags to the fix and the update command, -cpuprofile and -memprofile, which allow users to create output CPU and memory pprof files to better understand the performance of Gazelle. This is very helpful in debugging issues like #1688, which show up in certain repository setups.

The implementation mostly followed the instructions on https://pkg.go.dev/runtime/pprof#hdr-Profiling_a_Go_program to set up profiling options for the command in the cmd/gazelle.

Tests were added to ensure that the newProfile would return a profile{} that wouldn't panic, even if either provider is empty.

Which issues(s) does this PR fix?

Relates to #1114

README.rst Outdated Show resolved Hide resolved
Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
@tyler-french tyler-french enabled auto-merge (squash) December 15, 2023 18:12
@tyler-french tyler-french merged commit 0737e71 into bazelbuild:master Dec 15, 2023
10 checks passed
tyler-french added a commit to tyler-french/bazel-gazelle that referenced this pull request Dec 18, 2023
…ld#1685)

This adds two flags to the `fix` and the `update` command, `-cpuprofile` and `-memprofile`, which allow users to create output CPU and memory `pprof` files to better understand the performance of Gazelle. This is very helpful in debugging issues like bazelbuild#1688, which show up in certain repository setups.

The implementation mostly followed the instructions on https://pkg.go.dev/runtime/pprof#hdr-Profiling_a_Go_program to set up profiling options for the command in the `cmd/gazelle`.

Tests were added to ensure that the `newProfile` would return a `profile{}` that wouldn't panic, even if either provider is empty.

Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
renovate bot added a commit to kreempuff/rules_unreal_engine that referenced this pull request Dec 21, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) |
http_archive | minor | `v0.34.0` -> `v0.35.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle (bazel_gazelle)</summary>

###
[`v0.35.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.35.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.34.0...v0.35.0)

#### What's Changed

- Don't run on centos7 in BCR presubmit and add maintainers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1663
- update readme for v0.34.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1662
- nit: doc `gazelle_generation_test` use of `arguments.txt` by
[@&#8203;vpanta](https://togithub.com/vpanta) in
[bazelbuild/bazel-gazelle#1660
- feat(bzlmod): allow patches in `archive_override`s by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1665
- fix(bzlmod): fail on unused overrides by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1669
- Annotate more globs with `allow_empty = True` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1674
- Generate BUILD files for grpc compiler by
[@&#8203;mering](https://togithub.com/mering) in
[bazelbuild/bazel-gazelle#1672
- Disable lockfile check for BCR test module by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1673
- Make isolated extensions usable for Go tools by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1678
- bzlmod: support go.mod replace directives with a version qualifier on
the left by [@&#8203;andyscott](https://togithub.com/andyscott) in
[bazelbuild/bazel-gazelle#1679
- fix CI by running both WORKSPACE and Bzlmod on select packages by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1690
- disable lockfile by default by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1692
- feat(resolve): optimize applying overrides to be efficient by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1687
- feat(fix-update): allow user to profile commands with `pprof` by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1685
- Fix partial execution with mapped kinds by
[@&#8203;HALtheWise](https://togithub.com/HALtheWise) in
[bazelbuild/bazel-gazelle#1680
- prepare release 0.35.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1693

#### New Contributors

- [@&#8203;mering](https://togithub.com/mering) made their first
contribution in
[bazelbuild/bazel-gazelle#1672

**Full Changelog**:
bazelbuild/bazel-gazelle@v0.34.0...v0.35.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
cgrindel-self-hosted-renovate bot added a commit to cgrindel/bazel-starlib that referenced this pull request Dec 21, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) |
http_archive | minor | `v0.34.0` -> `v0.35.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle (bazel_gazelle)</summary>

###
[`v0.35.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.35.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.34.0...v0.35.0)

#### What's Changed

- Don't run on centos7 in BCR presubmit and add maintainers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1663
- update readme for v0.34.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1662
- nit: doc `gazelle_generation_test` use of `arguments.txt` by
[@&#8203;vpanta](https://togithub.com/vpanta) in
[bazelbuild/bazel-gazelle#1660
- feat(bzlmod): allow patches in `archive_override`s by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1665
- fix(bzlmod): fail on unused overrides by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1669
- Annotate more globs with `allow_empty = True` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1674
- Generate BUILD files for grpc compiler by
[@&#8203;mering](https://togithub.com/mering) in
[bazelbuild/bazel-gazelle#1672
- Disable lockfile check for BCR test module by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1673
- Make isolated extensions usable for Go tools by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1678
- bzlmod: support go.mod replace directives with a version qualifier on
the left by [@&#8203;andyscott](https://togithub.com/andyscott) in
[bazelbuild/bazel-gazelle#1679
- fix CI by running both WORKSPACE and Bzlmod on select packages by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1690
- disable lockfile by default by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1692
- feat(resolve): optimize applying overrides to be efficient by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1687
- feat(fix-update): allow user to profile commands with `pprof` by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1685
- Fix partial execution with mapped kinds by
[@&#8203;HALtheWise](https://togithub.com/HALtheWise) in
[bazelbuild/bazel-gazelle#1680
- prepare release 0.35.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1693

#### New Contributors

- [@&#8203;mering](https://togithub.com/mering) made their first
contribution in
[bazelbuild/bazel-gazelle#1672

**Full Changelog**:
bazelbuild/bazel-gazelle@v0.34.0...v0.35.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjM2LjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
cgrindel-self-hosted-renovate bot added a commit to cgrindel/rules_swift_package_manager that referenced this pull request Dec 22, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) |
http_archive | minor | `v0.34.0` -> `v0.35.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle (bazel_gazelle)</summary>

###
[`v0.35.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.35.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.34.0...v0.35.0)

#### What's Changed

- Don't run on centos7 in BCR presubmit and add maintainers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1663
- update readme for v0.34.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1662
- nit: doc `gazelle_generation_test` use of `arguments.txt` by
[@&#8203;vpanta](https://togithub.com/vpanta) in
[bazelbuild/bazel-gazelle#1660
- feat(bzlmod): allow patches in `archive_override`s by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1665
- fix(bzlmod): fail on unused overrides by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1669
- Annotate more globs with `allow_empty = True` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1674
- Generate BUILD files for grpc compiler by
[@&#8203;mering](https://togithub.com/mering) in
[bazelbuild/bazel-gazelle#1672
- Disable lockfile check for BCR test module by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1673
- Make isolated extensions usable for Go tools by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1678
- bzlmod: support go.mod replace directives with a version qualifier on
the left by [@&#8203;andyscott](https://togithub.com/andyscott) in
[bazelbuild/bazel-gazelle#1679
- fix CI by running both WORKSPACE and Bzlmod on select packages by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1690
- disable lockfile by default by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1692
- feat(resolve): optimize applying overrides to be efficient by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1687
- feat(fix-update): allow user to profile commands with `pprof` by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1685
- Fix partial execution with mapped kinds by
[@&#8203;HALtheWise](https://togithub.com/HALtheWise) in
[bazelbuild/bazel-gazelle#1680
- prepare release 0.35.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1693

#### New Contributors

- [@&#8203;mering](https://togithub.com/mering) made their first
contribution in
[bazelbuild/bazel-gazelle#1672

**Full Changelog**:
bazelbuild/bazel-gazelle@v0.34.0...v0.35.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjM2LjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
@tyler-french tyler-french deleted the profile branch December 23, 2023 18:41
alexeagle pushed a commit to aspect-build/rules_py that referenced this pull request Feb 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) |
http_archive | minor | `v0.34.0` -> `v0.35.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle (bazel_gazelle)</summary>

###
[`v0.35.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.35.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.34.0...v0.35.0)

#### What's Changed

- Don't run on centos7 in BCR presubmit and add maintainers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1663
- update readme for v0.34.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1662
- nit: doc `gazelle_generation_test` use of `arguments.txt` by
[@&#8203;vpanta](https://togithub.com/vpanta) in
[bazelbuild/bazel-gazelle#1660
- feat(bzlmod): allow patches in `archive_override`s by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1665
- fix(bzlmod): fail on unused overrides by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1669
- Annotate more globs with `allow_empty = True` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1674
- Generate BUILD files for grpc compiler by
[@&#8203;mering](https://togithub.com/mering) in
[bazelbuild/bazel-gazelle#1672
- Disable lockfile check for BCR test module by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1673
- Make isolated extensions usable for Go tools by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/bazel-gazelle#1678
- bzlmod: support go.mod replace directives with a version qualifier on
the left by [@&#8203;andyscott](https://togithub.com/andyscott) in
[bazelbuild/bazel-gazelle#1679
- fix CI by running both WORKSPACE and Bzlmod on select packages by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1690
- disable lockfile by default by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1692
- feat(resolve): optimize applying overrides to be efficient by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1687
- feat(fix-update): allow user to profile commands with `pprof` by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1685
- Fix partial execution with mapped kinds by
[@&#8203;HALtheWise](https://togithub.com/HALtheWise) in
[bazelbuild/bazel-gazelle#1680
- prepare release 0.35.0 by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[bazelbuild/bazel-gazelle#1693

#### New Contributors

- [@&#8203;mering](https://togithub.com/mering) made their first
contribution in
[bazelbuild/bazel-gazelle#1672

**Full Changelog**:
bazelbuild/bazel-gazelle@v0.34.0...v0.35.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/aspect-build/rules_py).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jeromep-stripe pushed a commit to jeromep-stripe/bazel-gazelle that referenced this pull request Mar 22, 2024
…ld#1685)

This adds two flags to the `fix` and the `update` command, `-cpuprofile` and `-memprofile`, which allow users to create output CPU and memory `pprof` files to better understand the performance of Gazelle. This is very helpful in debugging issues like bazelbuild#1688, which show up in certain repository setups.

The implementation mostly followed the instructions on https://pkg.go.dev/runtime/pprof#hdr-Profiling_a_Go_program to set up profiling options for the command in the `cmd/gazelle`.

Tests were added to ensure that the `newProfile` would return a `profile{}` that wouldn't panic, even if either provider is empty.

Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
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

3 participants