Skip to content

feat(utils/async/any-by): add instrumentation to measure async operation duration#10910

Closed
MANDEep22332 wants to merge 2 commits intostdlib-js:developfrom
MANDEep22332:feature/telemetry-async-utils
Closed

feat(utils/async/any-by): add instrumentation to measure async operation duration#10910
MANDEep22332 wants to merge 2 commits intostdlib-js:developfrom
MANDEep22332:feature/telemetry-async-utils

Conversation

@MANDEep22332
Copy link

Resolves #5808

Description

What is the purpose of this pull request?

This pull request:

  • {{TODO: Adds a high-resolution timer (instrument.js) to the anyByAsync utility to
    measure the duration of async operations. The timer starts when anyByAsync
    is invoked and stops when the done callback is called, returning elapsed
    time in milliseconds. }}
    ##changes
  • internal/instrument.js: new file — creates a high-resolution timer using
    process.hrtime() and returns elapsed time in milliseconds
  • lib/factory.js: integrate createTimer into anyByAsync; duration is
    passed as a third argument to the done callback
  • test/test.instrument.js: unit tests for the createTimer function

Related Issues

Does this pull request have any related issues?

This pull request has the following related issues:

  • #{{TODO: add related issue number}}

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

  • Duration is forwarded to the caller via done( error, bool, duration )
    rather than logged, keeping the utility side-effect free
  • No changes to the public API of anyByAsync.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

{{TODO: add disclosure if applicable}}


@stdlib-js/reviewers

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: na
  - task: lint_javascript_benchmarks
    status: passed
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: passed
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@stdlib-bot stdlib-bot added First-time Contributor A pull request from a contributor who has never previously committed to the project repository. Needs Review A pull request which needs code review. labels Mar 13, 2026
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is unrelated to this PR.

@kgryte
Copy link
Member

kgryte commented Mar 13, 2026

@MANDEep22332 This PR is not what we are looking for in terms of instrumentation. See the upstream RFC in the GSoC repo: stdlib-js/google-summer-of-code#9. As such, I am going to go ahead and close this PR.

Thank you for your interest, and we look forward to your future contributions.

@kgryte kgryte closed this Mar 13, 2026
@stdlib-bot stdlib-bot removed the Needs Review A pull request which needs code review. label Mar 13, 2026
@kgryte kgryte added Invalid Invalid question, issue, or pull request. Do Not Merge Pull request which should not be merged. labels Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Do Not Merge Pull request which should not be merged. First-time Contributor A pull request from a contributor who has never previously committed to the project repository. Invalid Invalid question, issue, or pull request.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RFC]: Achieve feature parity with async.js

3 participants