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

Add a new initializer file #4334

Merged
merged 2 commits into from
May 23, 2024
Merged

Add a new initializer file #4334

merged 2 commits into from
May 23, 2024

Conversation

bengl
Copy link
Collaborator

@bengl bengl commented May 21, 2024

Previously, non-programmatic tracer initialization was done via a combination of several command-line options, depending on whether ESM support is required, and what version of Node.js.

This has now been consolidated to a single initialize.mjs file, which can be used either with the --loader option, or the --import option. In either case, it will initialize both the tracer and the ESM loader hook. For versions of Node.js prior to 20.6.0, the --loader option must be used. For versions after that, either may be used, but --import is preferred, since the --loader option will eventually be deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a semver-minor change.

For now, docs are not included, since the current README does not even address non-programmatic initialization.

Future work (for future PRs):

  • Have .init() also call register() for the loader hook if it hasn't been registered, so that CLI options become unnecessary for ESM support in Node.js
  • Allow programmatic config when using non-programmatic initialization.

Previously, non-programmatic tracer initialization was done via a
combination of several command-line options, depending on whether ESM
support is required, and what version of Node.js.

This has now been consolidated to a single `initialize.mjs` file, which
can be used either with the `--loader` option, or the `--import` option.
In either case, it will initialize both the tracer and the ESM loader
hook. For versions of Node.js prior to 20.6.0, the `--loader` option
must be used. For versions after that, either may be used, but
`--import` is preferred, since the `--loader` option will eventually be
deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a
semver-minor change.

For now, docs are not included, since the current README does not even
address non-programmatic initialization.

Future work (for future PRs):
* Have `.init()` also call `register()` for the loader hook if it hasn't
  been registered, so that CLI options become unnecessary for ESM
  support in Node.js
* Allow programmatic config when using non-programmatic initialization.
@bengl bengl requested a review from a team as a code owner May 21, 2024 04:09
Copy link

github-actions bot commented May 21, 2024

Overall package size

Self size: 6.51 MB
Deduped: 60.65 MB
No deduping: 60.93 MB

Dependency sizes

name version self size total size
@datadog/native-iast-taint-tracking 2.1.0 14.91 MB 14.92 MB
@datadog/native-appsec 7.1.1 14.39 MB 14.4 MB
@datadog/pprof 5.3.0 9.85 MB 10.22 MB
protobufjs 7.2.5 2.77 MB 6.56 MB
@datadog/native-iast-rewriter 2.3.1 2.15 MB 2.24 MB
@opentelemetry/core 1.14.0 872.87 kB 1.47 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
@opentelemetry/api 1.8.0 1.21 MB 1.21 MB
import-in-the-middle 1.7.4 70.19 kB 739.86 kB
msgpack-lite 0.1.26 201.16 kB 281.59 kB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.5.4 93.4 kB 123.8 kB
pprof-format 2.1.0 111.69 kB 111.69 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.1.0 60.23 kB 60.23 kB
ignore 5.2.4 51.22 kB 51.22 kB
int64-buffer 0.1.10 49.18 kB 49.18 kB
shell-quote 1.8.1 44.96 kB 44.96 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 kB
tlhunter-sorted-set 0.1.0 24.94 kB 24.94 kB
limiter 1.1.5 23.17 kB 23.17 kB
dc-polyfill 0.1.4 23.1 kB 23.1 kB
retry 0.13.1 18.85 kB 18.85 kB
node-abort-controller 3.1.1 16.89 kB 16.89 kB
jest-docblock 29.7.0 8.99 kB 12.76 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 kB
module-details-from-path 1.0.3 4.47 kB 4.47 kB

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@pr-commenter
Copy link

pr-commenter bot commented May 21, 2024

Benchmarks

Benchmark execution time: 2024-05-21 04:18:44

Comparing candidate commit bd02344 in PR branch bengl/new-initializer with baseline commit a346dd5 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 257 metrics, 9 unstable metrics.

@bengl bengl enabled auto-merge (squash) May 23, 2024 18:33
@bengl bengl merged commit 3db62e3 into master May 23, 2024
108 checks passed
@bengl bengl deleted the bengl/new-initializer branch May 23, 2024 18:46
juan-fernandez pushed a commit that referenced this pull request Jun 4, 2024
Previously, non-programmatic tracer initialization was done via a
combination of several command-line options, depending on whether ESM
support is required, and what version of Node.js.

This has now been consolidated to a single `initialize.mjs` file, which
can be used either with the `--loader` option, or the `--import` option.
In either case, it will initialize both the tracer and the ESM loader
hook. For versions of Node.js prior to 20.6.0, the `--loader` option
must be used. For versions after that, either may be used, but
`--import` is preferred, since the `--loader` option will eventually be
deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a
semver-minor change.

For now, docs are not included, since the current README does not even
address non-programmatic initialization.

Future work (for future PRs):
* Have `.init()` also call `register()` for the loader hook if it hasn't
  been registered, so that CLI options become unnecessary for ESM
  support in Node.js
* Allow programmatic config when using non-programmatic initialization.
juan-fernandez pushed a commit that referenced this pull request Jun 4, 2024
Previously, non-programmatic tracer initialization was done via a
combination of several command-line options, depending on whether ESM
support is required, and what version of Node.js.

This has now been consolidated to a single `initialize.mjs` file, which
can be used either with the `--loader` option, or the `--import` option.
In either case, it will initialize both the tracer and the ESM loader
hook. For versions of Node.js prior to 20.6.0, the `--loader` option
must be used. For versions after that, either may be used, but
`--import` is preferred, since the `--loader` option will eventually be
deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a
semver-minor change.

For now, docs are not included, since the current README does not even
address non-programmatic initialization.

Future work (for future PRs):
* Have `.init()` also call `register()` for the loader hook if it hasn't
  been registered, so that CLI options become unnecessary for ESM
  support in Node.js
* Allow programmatic config when using non-programmatic initialization.
juan-fernandez pushed a commit that referenced this pull request Jun 5, 2024
Previously, non-programmatic tracer initialization was done via a
combination of several command-line options, depending on whether ESM
support is required, and what version of Node.js.

This has now been consolidated to a single `initialize.mjs` file, which
can be used either with the `--loader` option, or the `--import` option.
In either case, it will initialize both the tracer and the ESM loader
hook. For versions of Node.js prior to 20.6.0, the `--loader` option
must be used. For versions after that, either may be used, but
`--import` is preferred, since the `--loader` option will eventually be
deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a
semver-minor change.

For now, docs are not included, since the current README does not even
address non-programmatic initialization.

Future work (for future PRs):
* Have `.init()` also call `register()` for the loader hook if it hasn't
  been registered, so that CLI options become unnecessary for ESM
  support in Node.js
* Allow programmatic config when using non-programmatic initialization.
juan-fernandez pushed a commit that referenced this pull request Jun 5, 2024
Previously, non-programmatic tracer initialization was done via a
combination of several command-line options, depending on whether ESM
support is required, and what version of Node.js.

This has now been consolidated to a single `initialize.mjs` file, which
can be used either with the `--loader` option, or the `--import` option.
In either case, it will initialize both the tracer and the ESM loader
hook. For versions of Node.js prior to 20.6.0, the `--loader` option
must be used. For versions after that, either may be used, but
`--import` is preferred, since the `--loader` option will eventually be
deprecated, and emits a warning as such already.

All previous behavior, and related files, are preserved, so this is a
semver-minor change.

For now, docs are not included, since the current README does not even
address non-programmatic initialization.

Future work (for future PRs):
* Have `.init()` also call `register()` for the loader hook if it hasn't
  been registered, so that CLI options become unnecessary for ESM
  support in Node.js
* Allow programmatic config when using non-programmatic initialization.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants