Add ClickStack Chrome extension sample dataset guide#6345
Conversation
Document installing and configuring the HyperDX Chrome extension for session replay and RUM, including collector setup and extension UI screenshot. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Someone is attempting to deploy a commit to the ClickHouse Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Pull request overview
Adds a new ClickStack “sample dataset” guide showing how to generate session replay/RUM data by injecting the HyperDX Browser SDK via a Chrome extension, and links it from the example-datasets index.
Changes:
- Added a new MDX guide page for the HyperDX Chrome extension workflow (setup, configuration, verification, troubleshooting, privacy).
- Added a new entry in the sample datasets index linking to the new guide.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docs/use-cases/observability/clickstack/example-datasets/index.md | Adds a table row linking to the new Chrome extension guide. |
| docs/use-cases/observability/clickstack/example-datasets/chrome-extension.md | New guide documenting the Chrome extension-based instrumentation flow, including screenshot and stepper-based setup steps. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| The [HyperDX Chrome extension](https://github.com/kyreddie/hyperdx-chrome-extension) injects the [@hyperdx/browser](https://github.com/hyperdxio/hyperdx-js) SDK into pages you visit. It is useful when you want to debug session replay, RUM, or trace propagation on a site without modifying its codebase — for example, a third-party application, a production build, or a local dev server with strict Content Security Policy (CSP). | ||
|
|
||
| The SDK is bundled inside the extension (~480 KB), so pages do not need to load scripts from a CDN at runtime. The extension tries external `chrome-extension://` script injection first and falls back to inline injection when CSP blocks extension-origin scripts. |
|
|
||
| - Google Chrome or a Chromium-based browser (Edge, Brave, etc.) | ||
| - [Docker](https://docs.docker.com/get-docker/) installed, if running ClickStack locally | ||
| - Ports 4317, 4318, and 8080 available (for local ClickStack) |
There was a problem hiding this comment.
@kyreddie to confirm if this is a valid suggestion or not
| ### Start ClickStack {#start-clickstack} | ||
|
|
||
| If you already have a ClickStack or HyperDX ingestion endpoint, skip to [Configure the extension](#configure-extension). | ||
|
|
||
| For a local ClickStack stack, start the OpenTelemetry collector. Replace `{{CLICKHOUSE_ENDPOINT}}` and `{{CLICKHOUSE_PASSWORD}}` with your ClickHouse connection details: | ||
|
|
||
| ```shell | ||
| export CLICKHOUSE_ENDPOINT={{CLICKHOUSE_ENDPOINT}} | ||
| export CLICKHOUSE_PASSWORD={{CLICKHOUSE_PASSWORD}} | ||
|
|
||
| docker run \ | ||
| -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} \ | ||
| -e CLICKHOUSE_USER=default \ | ||
| -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} \ | ||
| -p 8080:8080 \ | ||
| -p 4317:4317 \ | ||
| -p 4318:4318 \ | ||
| clickhouse/clickstack-otel-collector:latest | ||
| ``` | ||
|
|
||
| Open HyperDX at [http://localhost:8080](http://localhost:8080) to confirm the UI is running. | ||
|
|
||
| For a full local deployment with ClickHouse and HyperDX UI, see [Getting started with ClickStack](/use-cases/observability/clickstack/getting-started/oss). | ||
|
|
Specify `text` language for the fenced code block in verify injection. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Eddie Kyriacou seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Blargian
left a comment
There was a problem hiding this comment.
LGTM as is, left a few minor suggestions
|
|
||
| Click **Save Configuration**, then reload any tabs you want to instrument. | ||
|
|
||
| <Image img={extension_config} alt="HyperDX Chrome extension configuration popup with local ClickStack settings" size="md" /> |
There was a problem hiding this comment.
| <Image img={extension_config} alt="HyperDX Chrome extension configuration popup with local ClickStack settings" size="md" /> | |
| <Image img={extension_config} alt="HyperDX Chrome extension configuration popup with local ClickStack settings" size="sm" /> |
The screenshot shows quite large for me even at md - might be better at sm
| ### Sessions not appearing in HyperDX {#sessions-not-appearing} | ||
|
|
||
| 1. Check the browser console for `[HyperDX Extension]` log messages or errors | ||
| 2. Confirm **Enable HyperDX Monitoring** is on and **Service Name** is set | ||
| 3. Verify ClickStack is running and the collector URL is correct (e.g. `http://localhost:4318`) | ||
| 4. Adjust the time range in the Client Sessions view (try **Last 15 minutes**) | ||
| 5. Hard refresh the browser: `Cmd+Shift+R` (Mac) or `Ctrl+Shift+R` (Windows/Linux) | ||
|
|
||
| ### `chrome-extension://invalid/` errors {#extension-invalid} | ||
|
|
||
| Reload the extension at `chrome://extensions`, then hard-refresh the tab. This happens when the extension was updated or reloaded while tabs were still open. | ||
|
|
||
| ### No injection on a site {#no-injection} | ||
|
|
||
| 1. Check that monitoring is enabled and a service name is configured | ||
| 2. If **Only inject on matching URLs** is on, confirm the current page URL matches one of your patterns | ||
| 3. Some sites block both extension-origin and inline script injection via CSP — injection may not be possible on those pages | ||
|
|
||
| ### `HyperDX: Missing apiKey` in console {#missing-api-key} | ||
|
|
||
| Expected when the API key field is empty. Add an ingestion API key from HyperDX for cloud endpoints, or ignore if your self-hosted collector accepts unauthenticated local traffic. |
There was a problem hiding this comment.
I'm wondering if we shouldn't make these detail drop downs rather than H3s, similar to how we have it on https://www.clickhouse.com/docs/use-cases/observability/clickstack/faq
That way the user just sees the information for the item they expand
| ### Sessions not appearing in HyperDX {#sessions-not-appearing} | |
| 1. Check the browser console for `[HyperDX Extension]` log messages or errors | |
| 2. Confirm **Enable HyperDX Monitoring** is on and **Service Name** is set | |
| 3. Verify ClickStack is running and the collector URL is correct (e.g. `http://localhost:4318`) | |
| 4. Adjust the time range in the Client Sessions view (try **Last 15 minutes**) | |
| 5. Hard refresh the browser: `Cmd+Shift+R` (Mac) or `Ctrl+Shift+R` (Windows/Linux) | |
| ### `chrome-extension://invalid/` errors {#extension-invalid} | |
| Reload the extension at `chrome://extensions`, then hard-refresh the tab. This happens when the extension was updated or reloaded while tabs were still open. | |
| ### No injection on a site {#no-injection} | |
| 1. Check that monitoring is enabled and a service name is configured | |
| 2. If **Only inject on matching URLs** is on, confirm the current page URL matches one of your patterns | |
| 3. Some sites block both extension-origin and inline script injection via CSP — injection may not be possible on those pages | |
| ### `HyperDX: Missing apiKey` in console {#missing-api-key} | |
| Expected when the API key field is empty. Add an ingestion API key from HyperDX for cloud endpoints, or ignore if your self-hosted collector accepts unauthenticated local traffic. | |
| <details> | |
| <summary>Sessions not appearing in HyperDX</summary> | |
| 1. Check the browser console for `[HyperDX Extension]` log messages or errors | |
| 2. Confirm **Enable HyperDX Monitoring** is on and **Service Name** is set | |
| 3. Verify ClickStack is running and the collector URL is correct (e.g. `http://localhost:4318`) | |
| 4. Adjust the time range in the Client Sessions view (try **Last 15 minutes**) | |
| 5. Hard refresh the browser: `Cmd+Shift+R` (Mac) or `Ctrl+Shift+R` (Windows/Linux) | |
| </details> | |
| <details> | |
| <summary>`chrome-extension://invalid/` errors </summary> | |
| Reload the extension at `chrome://extensions`, then hard-refresh the tab. This happens when the extension was updated or reloaded while tabs were still open. | |
| </details> | |
| <details> | |
| <summary>No injection on a site</summary> | |
| 1. Check that monitoring is enabled and a service name is configured | |
| 2. If **Only inject on matching URLs** is on, confirm the current page URL matches one of your patterns | |
| 3. Some sites block both extension-origin and inline script injection via CSP — injection may not be possible on those pages | |
| 4. | |
| </details> | |
| <details> | |
| <summary>`HyperDX: Missing apiKey` in console </summary> | |
| Expected when the API key field is empty. Add an ingestion API key from HyperDX for cloud endpoints, or ignore if your self-hosted collector accepts unauthenticated local traffic. | |
| </details> |
…e-extension.md Co-authored-by: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
…e-extension.md Co-authored-by: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
…e-extension.md Co-authored-by: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
|
Docs PR opened: ClickHouse/mintlify-docs-dev#127 Added a ClickStack sample dataset guide for using the HyperDX Chrome extension to instrument any website for session replay. |
Summary
Test plan
yarn copy-clickhouse-repo-docs,yarn autogenerate-table-of-contents, andyarn start/docs/use-cases/observability/clickstack/example-datasets/chrome-extensionMade with Cursor
Note
Low Risk
Documentation-only changes with no runtime, auth, or data-path impact.
Overview
Adds a Chrome extension sample-dataset guide that walks through installing the HyperDX extension, pointing it at a local or cloud ClickStack collector, browsing any site to generate RUM/session data, and viewing replays in HyperDX—without changing the target app’s code. The page mirrors other example guides (
VerticalStepper, config table, URL filters, DevTools verification, troubleshooting, privacy) and includes a configuration screenshot.The sample datasets landing table gains a row linking to
chrome-extension.md.Reviewed by Cursor Bugbot for commit 0872cbd. Bugbot is set up for automated code reviews on this repo. Configure here.