-
Notifications
You must be signed in to change notification settings - Fork 318
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
refactor custom metrics to be self-contained #5061
Conversation
Overall package sizeSelf size: 8.41 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.3.0 | 29.43 MB | 29.43 MB | | @datadog/native-appsec | 8.3.0 | 19.37 MB | 19.38 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 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 | | 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.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 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 |
BenchmarksBenchmark execution time: 2024-12-31 05:42:50 Comparing candidate commit 8c89cf4 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 776 metrics, 21 unstable metrics. scenario:log-without-log-20
|
@@ -190,6 +190,14 @@ class CustomMetrics { | |||
constructor (config) { | |||
const clientConfig = DogStatsDClient.generateClientConfig(config) | |||
this.dogstatsd = new DogStatsDClient(clientConfig) | |||
|
|||
this._boundFlush = this.flush.bind(this) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are _boundFlush
and _flushInterval
object level properties, and not just const boundFlush
and const flushInterval
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM % comment. I would definitely prefer not to add any properties that are not absolutely needed
this._boundFlush = this.flush.bind(this) | ||
|
||
// TODO(bengl) this magic number should be configurable | ||
this._flushInterval = setInterval(this._boundFlush, 10 * 1000) | ||
this._flushInterval.unref() | ||
|
||
process.once('beforeExit', this._boundFlush) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this._boundFlush = this.flush.bind(this) | |
// TODO(bengl) this magic number should be configurable | |
this._flushInterval = setInterval(this._boundFlush, 10 * 1000) | |
this._flushInterval.unref() | |
process.once('beforeExit', this._boundFlush) | |
const flush = this.flush.bind(this) | |
// TODO(bengl) this magic number should be configurable | |
setInterval(flush, 10 * 1000).unref() | |
process.once('beforeExit', flush) |
This had no real business being in
Proxy#init()
, so I moved it to where it makes more sense.