From 63432670e267e012044273597bf0d51166f42663 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Tue, 11 Mar 2025 13:15:10 -0500 Subject: [PATCH 1/4] update signals README --- packages/signals/signals/README.md | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/signals/signals/README.md b/packages/signals/signals/README.md index 391fd0a02..c6e251fe8 100644 --- a/packages/signals/signals/README.md +++ b/packages/signals/signals/README.md @@ -82,10 +82,19 @@ https://my-website.com?segment_signals_debug=false * This also logs all signals to the js console. -#### Alternative method of enabling debug mode -In your JS console: +#### Alternative method(s) of enabling debug mode +1. In your JS console: ```js -SegmentSignalsPlugin.debug() +window.SegmentSignalsPlugin.debug() +``` + + +2. Passed as a setting +```js +const signalsPlugin = new SignalsPlugin({ + enableSignalsIngestion: process.env.SIGNALS_DEBUG_ENABLED = 'true' +}) +analytics.register(signalsPlugin) ``` ### Advanced @@ -105,11 +114,9 @@ import { SignalsPlugin, SignalsMiddleware } from '@segment/analytics-signals' class MyMiddleware implements SignalsMiddleware { process(signal: Signal) { - // drop the event if some conditions are met + // drop all instrumentation signals if ( - signal.type === 'network' && - signal.data.action === 'request' && - ... + signal.type === 'instrumentation' ) { return null; } else { @@ -117,7 +124,12 @@ class MyMiddleware implements SignalsMiddleware { } } } -const signalsPlugin = new SignalsPlugin({ middleware: [myMiddleware]}) + +const signalsPlugin = new SignalsPlugin({ + middleware: [ + new MyMiddleware() + ] +}) analytics.register(signalsPlugin) ``` From 95d1d2d4d4873d314ba549a5e4ce9c48885422ca Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Tue, 11 Mar 2025 13:17:21 -0500 Subject: [PATCH 2/4] wip --- packages/signals/signals/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/signals/signals/README.md b/packages/signals/signals/README.md index c6e251fe8..384feee48 100644 --- a/packages/signals/signals/README.md +++ b/packages/signals/signals/README.md @@ -92,7 +92,7 @@ window.SegmentSignalsPlugin.debug() 2. Passed as a setting ```js const signalsPlugin = new SignalsPlugin({ - enableSignalsIngestion: process.env.SIGNALS_DEBUG_ENABLED = 'true' + enableSignalsIngestion: process.env.SEGMENT_SIGNALS_DEBUG }) analytics.register(signalsPlugin) ``` From 5e31ec3ff47ae5e12396efc0c5f25317a5e5c178 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Tue, 11 Mar 2025 13:17:29 -0500 Subject: [PATCH 3/4] wip --- packages/signals/signals/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/signals/signals/README.md b/packages/signals/signals/README.md index 384feee48..fa64f562b 100644 --- a/packages/signals/signals/README.md +++ b/packages/signals/signals/README.md @@ -92,7 +92,7 @@ window.SegmentSignalsPlugin.debug() 2. Passed as a setting ```js const signalsPlugin = new SignalsPlugin({ - enableSignalsIngestion: process.env.SEGMENT_SIGNALS_DEBUG + enableSignalsIngestion: process.env.SEGMENT_SIGNALS_DEBUG === 'true' }) analytics.register(signalsPlugin) ``` From 1d76cf1f7151838624fb1c49da1bd59a18ed9408 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Tue, 11 Mar 2025 13:33:38 -0500 Subject: [PATCH 4/4] wip --- packages/signals/signals/README.md | 42 +++++++++++++----------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/packages/signals/signals/README.md b/packages/signals/signals/README.md index fa64f562b..dec38da7c 100644 --- a/packages/signals/signals/README.md +++ b/packages/signals/signals/README.md @@ -55,23 +55,8 @@ analytics.load({ }) ``` -### Extending / Emitting Custom Signals -```ts -import { signalsPlugin } from './analytics' // assuming you exported your plugin instance. - -signalsPlugin.addSignal({ someData: 'foo' }) - -// emits a signal with the following shape -{ - type: 'userDefined' - data: { someData: 'foo', ... } -} -``` - -### Debugging -#### Enable debug mode -Values sent to the signals API are redacted by default. -This adds a local storage key. To disable redaction, add a magic query string: +### Sending and Viewing Signals on Segment.com (Debug mode) +For privacy reasons, **signals are only to Segment.com when debug mode is on**. You must enable debug mode on the client to send and view those signals on segment.com. To enable debug mode on your client ``` https://my-website.com?segment_signals_debug=true ``` @@ -83,20 +68,29 @@ https://my-website.com?segment_signals_debug=false * This also logs all signals to the js console. #### Alternative method(s) of enabling debug mode -1. In your JS console: +### Enable debug mode from your JS console: ```js window.SegmentSignalsPlugin.debug() ``` +### Extending / Emitting Custom Signals +```ts +import { signalsPlugin } from './analytics' // assuming you exported your plugin instance. -2. Passed as a setting -```js -const signalsPlugin = new SignalsPlugin({ - enableSignalsIngestion: process.env.SEGMENT_SIGNALS_DEBUG === 'true' -}) -analytics.register(signalsPlugin) +signalsPlugin.addSignal({ someData: 'foo' }) + +// emits a signal with the following shape +{ + type: 'userDefined' + data: { someData: 'foo', ... } +} ``` +### Debugging +Debug mode **MUST** be enabled on the client to VIEW signals on segment.com. + + + ### Advanced #### Listening to signals