Add client ip parsing and reporting
What does this PR do?
Add a parsing algorithm to heuristically find the real client ip from headers when behind a proxy, and report it by default. Also add an env var to force which header should the IP be sourced from.
Motivation
AppSec backend WAF and APM tags unification.
Codecov Report
Merging #2166 (d0f239b) into master (ada0716) will increase coverage by
0.02%. The diff coverage is90.74%.
@@ Coverage Diff @@
## master #2166 +/- ##
==========================================
+ Coverage 92.70% 92.73% +0.02%
==========================================
Files 224 227 +3
Lines 8718 8819 +101
==========================================
+ Hits 8082 8178 +96
- Misses 636 641 +5
| Impacted Files | Coverage Δ | |
|---|---|---|
| packages/dd-trace/src/plugins/util/ip_blocklist.js | 44.44% <44.44%> (ø) |
|
| packages/dd-trace/src/config.js | 99.02% <100.00%> (+0.03%) |
:arrow_up: |
| packages/dd-trace/src/plugin_manager.js | 100.00% <100.00%> (ø) |
|
| packages/dd-trace/src/plugins/util/web.js | 92.06% <100.00%> (+1.15%) |
:arrow_up: |
| packages/dd-trace/src/ritm.js | 87.65% <0.00%> (-0.66%) |
:arrow_down: |
| packages/dd-trace/src/iitm.js | 100.00% <0.00%> (ø) |
|
| packages/dd-trace/src/exporters/common/request.js | 96.55% <0.00%> (ø) |
|
| packages/dd-trace/src/telemetry.js | ||
| packages/dd-trace/src/telemetry/send-data.js | 100.00% <0.00%> (ø) |
|
| packages/dd-trace/src/telemetry/index.js | 95.91% <0.00%> (ø) |
|
| ... and 1 more |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
I got a review from Ugaitz but I'd still like your eyes @rochdev
Overall package size
Self size: 2.64 MB Deduped: 30.27 MB No deduping: 30.92 MB
Dependency sizes
| name | version | self size | total size |
|---|---|---|---|
| @datadog/pprof | 1.0.2 | 8.74 MB | 14.46 MB |
| @datadog/native-metrics | 1.4.2 | 6.61 MB | 7.04 MB |
| @datadog/native-appsec | 1.2.1 | 5.1 MB | 5.43 MB |
| cidr-matcher | 2.1.1 | 224.94 kB | 451.39 kB |
| opentracing | 0.14.7 | 194.81 kB | 194.81 kB |
| @datadog/sketches-js | 2.0.0 | 105.44 kB | 105.44 kB |
| lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB |
| semver | 5.7.1 | 61.58 kB | 61.58 kB |
| ignore | 5.2.0 | 48.87 kB | 48.87 kB |
| import-in-the-middle | 1.3.1 | 30.44 kB | 34.91 kB |
| istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB |
| retry | 0.10.1 | 27.44 kB | 27.44 kB |
| lodash.uniq | 4.5.0 | 25.01 kB | 25.01 kB |
| limiter | 1.1.5 | 23.17 kB | 23.17 kB |
| lodash.kebabcase | 4.1.1 | 17.75 kB | 17.75 kB |
| lodash.pick | 4.4.0 | 16.33 kB | 16.33 kB |
| crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB |
| diagnostics_channel | 1.1.0 | 7.07 kB | 7.07 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