Skip to content

Feat refactor advanced network capture #93

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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/thick-snails-explain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@hyperdx/node-opentelemetry': patch
---

Add the networkHeadersCapture and networkBodyCapture flags. Users can decide whether to capture the headers or body information through these two flags.
2 changes: 2 additions & 0 deletions examples/hello-node-express/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ const { context, metrics, propagation, trace } = require('@opentelemetry/api');

initSDK({
// advancedNetworkCapture: true,
networkBodyCapture: false,
networkHeadersCapture: false,
// betaMode: true,
// consoleCapture: true,
});
Expand Down
5 changes: 3 additions & 2 deletions packages/node-opentelemetry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,11 @@ export HDX_NODE_BETA_MODE=1

By enabling advanced network capture, the SDK will additionally capture full HTTP request/response headers
and bodies for all inbound/outbound HTTP requests, to help with more in-depth request debugging.
This can be accomplished by setting `HDX_NODE_ADVANCED_NETWORK_CAPTURE` environment variable to 1.
This can be accomplished by setting `HDX_NODE_NETWORK_HEADERS_CAPTURE` and `HDX_NODE_NETWORK_BODY_CAPTURE` environment variables to 1.

```sh
export HDX_NODE_ADVANCED_NETWORK_CAPTURE=1
export HDX_NODE_NETWORK_HEADERS_CAPTURE=1
export HDX_NODE_NETWORK_BODY_CAPTURE=1
```

By default, all request/response headers will be captured. You can specify a custom list of headers to capture
Expand Down
51 changes: 51 additions & 0 deletions packages/node-opentelemetry/__tests__/packageJsonComp.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { comparePackageVersions } from '../utils/comparison';

describe('comparePackageJsonVersions', () => {
test('equal versions return true for ==', () => {
expect(comparePackageVersions('1.0.0', '==', '1.0.0')).toBe(true);
});

test('different versions return false for ==', () => {
expect(comparePackageVersions('1.0.0', '==', '1.0.1')).toBe(false);
});

test('higher version returns true for >', () => {
expect(comparePackageVersions('1.0.1', '>', '1.0.0')).toBe(true);
});

test('lower version returns false for >', () => {
expect(comparePackageVersions('1.0.0', '>', '1.0.1')).toBe(false);
});

test('higher version returns true for >= when versions are equal', () => {
expect(comparePackageVersions('1.0.0', '>=', '1.0.0')).toBe(true);
});

test('higher version returns true for >=', () => {
expect(comparePackageVersions('1.0.1', '>=', '1.0.0')).toBe(true);
});

test('lower version returns false for >=', () => {
expect(comparePackageVersions('1.0.0', '>=', '1.0.1')).toBe(false);
});

test('lower version returns true for <', () => {
expect(comparePackageVersions('1.0.0', '<', '1.0.1')).toBe(true);
});

test('higher version returns false for <', () => {
expect(comparePackageVersions('1.0.1', '<', '1.0.0')).toBe(false);
});

test('lower version returns true for <= when versions are equal', () => {
expect(comparePackageVersions('1.0.0', '<=', '1.0.0')).toBe(true);
});

test('lower version returns true for <=', () => {
expect(comparePackageVersions('1.0.0', '<=', '1.0.1')).toBe(true);
});

test('higher version returns false for <=', () => {
expect(comparePackageVersions('1.0.1', '<=', '1.0.0')).toBe(false);
});
});
Loading