Skip to content
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

Telemetry #327

Closed
pstuffa opened this issue Dec 6, 2023 · 6 comments · Fixed by #408
Closed

Telemetry #327

pstuffa opened this issue Dec 6, 2023 · 6 comments · Fixed by #408
Assignees
Labels
enhancement New feature or request

Comments

@pstuffa
Copy link
Contributor

pstuffa commented Dec 6, 2023

When CLI launches, we'll want to track as much info as we can about who's using the CLI and what they're doing. It would be great even as we're testing internally to start reporting on some numbers.

Ideally we could track something like:

  • Command invoked (dev, deploy)
  • Version of the CLI being used
  • General machine information (e.g. number of CPUs, macOS/Windows/Linux)
  • Size of application (total number of pages, a breakdown of types would be great, like for data loaders, whether they're using csv, json, python, R.)

This would be an opt-out.

Heavily borrowed/inspired from Next.js

@pstuffa pstuffa added the enhancement New feature or request label Dec 6, 2023
@Fil
Copy link
Contributor

Fil commented Dec 6, 2023

for Size of application see #320

@visnup visnup self-assigned this Dec 12, 2023
@visnup
Copy link
Member

visnup commented Dec 12, 2023

A few more assumptions…

Also track:

  • Usage in CI
  • Crash/error/signal trap
    • Details of error??

Explicit list of things to never collect:

  • Identifying information
    • IP address
    • Network environment
    • observablehq.com session information
    • Environment variables like $USER or $PWD
    • Paths
    • Filenames
  • Proprietary information
    • File contents
    • File hashes?

Mechanism:

  • collect and send information asynchronously at 2 (more?) checkpoints:
    • process invoked
    • process exit
  • check whether or not enabled/disabled
  • if in debug, print out information we would send and don't send
  • contact https://events.observablehq.com asynchronously
  • analytics server saves telemetry to another table

Do we care about forgery or spam? How would we prevent it??

@visnup
Copy link
Member

visnup commented Dec 12, 2023

Original Next.js RFC issue: vercel/next.js#8442

Taking a few notes from browsing Next.js's telemetry code:

There's a DEBUG flag you can set to see exactly what's being sent (this also disables telemetry). https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L288

Users gets a stdout magenta notification that telemetry is being collected, then a date is saved to not annoy them again. Some how this date is cleared if the team decides telemetry re-notification is warranted? https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L99-L102

A random session id is generated to tie together multiple events? https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L88

They send themselves hashed versions of some values (which ones?), each instance getting its own random salt to discourage un-hashing the values using a dictionary or leveraging all their users' data https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L26-L29
They one-way hash the project string which is git url or cwd.

They spawn a detached process to submit records, seemingly to allow the main process to exit https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L231-L233 😮

There's a queue and flush thing going on https://github.com/vercel/next.js/blob/v14.0.4/packages/next/src/telemetry/storage.ts#L224

@visnup
Copy link
Member

visnup commented Dec 13, 2023

on every message:

(inside Docker)
[telemetry] {
  "context": {
    "anonymousId": "02824ac049c016733ef5e2ffb64b6b743b421d10f16d368cbc79df04a9de9f3d",
    "projectId": "0ca2fe5ec9112ee0293960a85aa99b08fe535868fe3fad25f1ef9b783b5841c7",
    "sessionId": "8db7f20e50aa202d03b844a6dadaa44a0513fbe91c63168bb6273e3d079dc26f"
  },
  "meta": {
    "systemPlatform": "linux",
    "systemRelease": "6.4.16-linuxkit",
    "systemArchitecture": "arm64",
    "cpuCount": 12,
    "cpuModel": "unknown",
    "cpuSpeed": 0,
    "memoryInMb": 15980,
    "isDocker": true,
    "isNowDev": false,
    "isWsl": false,
    "isCI": false,
    "ciName": null,
    "nextVersion": "13.5.6"
  },

(outside Docker)
[telemetry] {
  "context": {
    "anonymousId": "4f0bd796aff470ad3a205d387399a7d7bfb22158e97e2e44fd2cc979795bc1e7",
    "projectId": "af38131f5befbb5063dc887cecb51a35d85b0b4ec741b6aa19b3b78de667812a",
    "sessionId": "b7cababa40809fc4ee16dcd32329fdaee91f3f20550cdc6aaae8071a19380349"
  },
  "meta": {
    "systemPlatform": "darwin",
    "systemRelease": "23.2.0",
    "systemArchitecture": "arm64",
    "cpuCount": 20,
    "cpuModel": "Apple M1 Ultra",
    "cpuSpeed": 2400,
    "memoryInMb": 65536,
    "isDocker": false,
    "isNowDev": false,
    "isWsl": false,
    "isCI": false,
    "ciName": null,
    "nextVersion": "13.5.6"
  },

anonymousId seems to be persistent and identifies me/computer/device?
projectId identifies the project by git url or cwd.
sessionId seems to be unique per process invocation.

next dev:

[telemetry] {
  "eventName": "NEXT_CLI_SESSION_STARTED",
  "payload": {
    "nextVersion": "13.5.6",
    "nodeVersion": "v18.12.1",
    "cliCommand": "dev",
    "isSrcDir": true,
    "hasNowJson": false,
    "isCustomServer": false,
    "hasNextConfig": true,
    "buildTarget": "default",
    "hasWebpackConfig": true,
    "hasBabelConfig": false,
    "imageEnabled": true,
    "imageFutureEnabled": true,
    "basePathEnabled": false,
    "i18nEnabled": false,
    "locales": null,
    "localeDomainsCount": null,
    "localeDetectionEnabled": null,
    "imageDomainsCount": 0,
    "imageRemotePatternsCount": 1,
    "imageSizes": "16,32,48,64,96,128,256,384",
    "imageLoader": "default",
    "imageFormats": "image/webp",
    "nextConfigOutput": null,
    "trailingSlashEnabled": false,
    "reactStrictMode": false,
    "webpackVersion": 5,
    "turboFlag": false,
    "appDir": false,
    "pagesDir": true
  }
}
^C[telemetry] {
  "eventName": "NEXT_CLI_SESSION_STOPPED",
  "payload": {
    "nextVersion": "13.5.6",
    "nodeVersion": "v18.12.1",
    "cliCommand": "dev",
    "durationMilliseconds": 17399,
    "turboFlag": false,
    "pagesDir": true,
    "appDir": false
  }
}

huh running next dev from inside Docker and stopping it seems to kill it without being able to send the stopped event.

next build

bash-5.1# next build
[telemetry] {
  "eventName": "NEXT_CLI_SESSION_STARTED",
  "payload": {
    "nextVersion": "13.5.6",
    "nodeVersion": "v18.12.1",
    "cliCommand": "build",
    "isSrcDir": true,
    "hasNowJson": false,
    "isCustomServer": null,
    "hasNextConfig": true,
    "buildTarget": "default",
    "hasWebpackConfig": true,
    "hasBabelConfig": false,
    "imageEnabled": true,
    "imageFutureEnabled": true,
    "basePathEnabled": false,
    "i18nEnabled": false,
    "locales": null,
    "localeDomainsCount": null,
    "localeDetectionEnabled": null,
    "imageDomainsCount": 0,
    "imageRemotePatternsCount": 1,
    "imageSizes": "16,32,48,64,96,128,256,384",
    "imageLoader": "default",
    "imageFormats": "image/webp",
    "nextConfigOutput": null,
    "trailingSlashEnabled": false,
    "reactStrictMode": false,
    "webpackVersion": 5,
    "turboFlag": false,
    "appDir": false,
    "pagesDir": true
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@lezer/generator",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/prettier-react-tachyons",
    "packageVersion": "^1.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@rollup/plugin-node-resolve",
    "packageVersion": "^8.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@rollup/plugin-replace",
    "packageVersion": "^2.3.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@rollup/plugin-strip",
    "packageVersion": "^2.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@rollup/plugin-terser",
    "packageVersion": "^0.4.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@testing-library/jest-dom",
    "packageVersion": "^6.1.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@testing-library/react",
    "packageVersion": "^14.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@testing-library/user-event",
    "packageVersion": "^14.5.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/acorn",
    "packageVersion": "^4.0.5"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/auth-header",
    "packageVersion": "^1.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/bad-words",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/cookie",
    "packageVersion": "^0.4.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-array",
    "packageVersion": "^3.0.7"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-brush",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-color",
    "packageVersion": "^3.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-dsv",
    "packageVersion": "^3.0.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-ease",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-force",
    "packageVersion": "^3.0.5"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-format",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-random",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-scale",
    "packageVersion": "^4.0.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-scale-chromatic",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-selection",
    "packageVersion": "^3.0.6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-shape",
    "packageVersion": "^3.1.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-time",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-time-format",
    "packageVersion": "^4.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/d3-transition",
    "packageVersion": "^3.0.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/deep-diff",
    "packageVersion": "^1.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/fscreen",
    "packageVersion": "^1.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/gapi",
    "packageVersion": "^0.0.41"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/gapi.client.drive",
    "packageVersion": "^3.0.13"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/glob",
    "packageVersion": "^8.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/google.analytics",
    "packageVersion": "^0.0.42"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/google.picker",
    "packageVersion": "^0.0.39"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/gtag.js",
    "packageVersion": "^0.0.12"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/jest",
    "packageVersion": "^29.5.7"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/linkify-it",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/prettier",
    "packageVersion": "^2.7.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/react",
    "packageVersion": "^18.0.28"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/react-avatar-editor",
    "packageVersion": "^13.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@types/react-dom",
    "packageVersion": "^18.0.11"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@typescript-eslint/eslint-plugin",
    "packageVersion": "^6.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@typescript-eslint/parser",
    "packageVersion": "^6.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "aws-sdk",
    "packageVersion": "^2.1396.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "babel-jest",
    "packageVersion": "^29.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "chokidar",
    "packageVersion": "^3.5.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "contentful-management",
    "packageVersion": "^10.15.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "contentful-typescript-codegen",
    "packageVersion": "^3.2.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "deep-diff",
    "packageVersion": "^1.0.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "dotenv",
    "packageVersion": "^8.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint",
    "packageVersion": "^8.42.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-config-next",
    "packageVersion": "^13.4.5"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-config-prettier",
    "packageVersion": "^8.8.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-eslint-comments",
    "packageVersion": "^3.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-import",
    "packageVersion": "^2.27.5"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-jest",
    "packageVersion": "^27.6.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-jest-dom",
    "packageVersion": "^5.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-jsx-a11y",
    "packageVersion": "^6.7.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-local-rules",
    "packageVersion": "^1.3.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-no-relative-import-paths",
    "packageVersion": "^1.5.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-prettier",
    "packageVersion": "^4.2.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-react",
    "packageVersion": "^7.32.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-react-hooks",
    "packageVersion": "^4.6.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-testing-library",
    "packageVersion": "^5.11.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "eslint-plugin-validate-jsx-nesting",
    "packageVersion": "^0.1.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "glob",
    "packageVersion": "^8.0.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "jest",
    "packageVersion": "^29.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "jest-environment-jsdom",
    "packageVersion": "^29.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "jest-github-actions",
    "packageVersion": "^0.5.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "msw",
    "packageVersion": "^0.36.8"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "postinstall-postinstall",
    "packageVersion": "^2.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "prettier",
    "packageVersion": "2.8.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "rollup",
    "packageVersion": "^2.33.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "stripe",
    "packageVersion": "^8.31.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "ts-morph",
    "packageVersion": "^19.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "ts-node",
    "packageVersion": "^10.9.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "whatwg-fetch",
    "packageVersion": "^3.6.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@braze/web-sdk",
    "packageVersion": "^4.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/autocomplete",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/commands",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/lang-html",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/lang-markdown",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/lang-sql",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/language",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/lint",
    "packageVersion": "^6.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/search",
    "packageVersion": "^6.2.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/state",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@codemirror/view",
    "packageVersion": "6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@contentful/rich-text-react-renderer",
    "packageVersion": "^15.12.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@contentful/rich-text-types",
    "packageVersion": "^15.12.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@lezer/common",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@lezer/highlight",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@lezer/lr",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@lezer/markdown",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@microsoft/microsoft-graph-types",
    "packageVersion": "^2.4.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@microsoft/teams-js",
    "packageVersion": "^1.10.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/compiler",
    "packageVersion": "https://[email protected]/observablehq/compiler#2f3cfe9992214824b4b664b5c095d20594349815"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/diff",
    "packageVersion": "https://[email protected]/observablehq/diff#22b26ead91e3782e45420c01d1d03f91d85829d6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/lezer",
    "packageVersion": "https://[email protected]/observablehq/lezer#f8c6ad8354e88c26a0275eb9526d4c0e4fe6f9a4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/notebook-model",
    "packageVersion": "https://[email protected]/observablehq/notebook-model#b4cbed7c5cba197c4a82695495a94b2e96367579"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/parser",
    "packageVersion": "^6.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/plot",
    "packageVersion": "^0.6.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/prettier",
    "packageVersion": "^2.7.1-alpha.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/runtime",
    "packageVersion": "^5.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/stdlib",
    "packageVersion": "^5.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/tachyons-custom",
    "packageVersion": "https://[email protected]/observablehq/tachyons-custom.git#d3838dc1525520f0d9ec06859ac03561a57fc144"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@observablehq/types",
    "packageVersion": "link:./shared/observablehq-types/"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/accordion",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/combobox",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/dialog",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/disclosure",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/listbox",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/menu-button",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/utils",
    "packageVersion": "^0.16.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@reach/visually-hidden",
    "packageVersion": "^0.18.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@replit/codemirror-vim",
    "packageVersion": "^6.0.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@sentry/nextjs",
    "packageVersion": "^7.80.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@stripe/stripe-js",
    "packageVersion": "^1.15.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "@typescript/vfs",
    "packageVersion": "^1.3.5"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "acorn",
    "packageVersion": "^8.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "auth-header",
    "packageVersion": "^1.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "bad-words",
    "packageVersion": "^3.0.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "bezier-easing",
    "packageVersion": "^2.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "circular-dependency-plugin",
    "packageVersion": "^5.2.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "classnames",
    "packageVersion": "^2.3.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "contentful",
    "packageVersion": "^9.1.33"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "cookie",
    "packageVersion": "^0.4.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-array",
    "packageVersion": "^3.2.4"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-color",
    "packageVersion": "^3.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-dsv",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-ease",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-force",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-format",
    "packageVersion": "^3.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-random",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-scale",
    "packageVersion": "^4.0.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-scale-chromatic",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-selection",
    "packageVersion": "^3.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-shape",
    "packageVersion": "^3.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-time",
    "packageVersion": "^3.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-time-format",
    "packageVersion": "^4.1.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "d3-transition",
    "packageVersion": "^3.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "feed",
    "packageVersion": "^4.2.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "fscreen",
    "packageVersion": "^1.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "highlight.js",
    "packageVersion": "^11.7.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "isoformat",
    "packageVersion": "^0.2.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "linkify-it",
    "packageVersion": "^3.0.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "lru-cache",
    "packageVersion": "^7.14.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "next",
    "packageVersion": "13.5.6"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "patch-package",
    "packageVersion": "^8.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react",
    "packageVersion": "^18.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-avatar-editor",
    "packageVersion": "^13.0.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-dom",
    "packageVersion": "^18.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-dropzone",
    "packageVersion": "^14.2.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-markdown",
    "packageVersion": "^8.0.3"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-redux",
    "packageVersion": "^8.1.2"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "react-swipeable",
    "packageVersion": "^7.0.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "redux",
    "packageVersion": "^4.1.1"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "swr",
    "packageVersion": "^2.2.0"
  }
}
[telemetry] {
  "eventName": "NEXT_PACKAGE_DETECTED",
  "payload": {
    "packageName": "typescript",
    "packageVersion": "^5.1.3"
  }
}
[telemetry] {
  "eventName": "NEXT_LINT_CHECK_COMPLETED",
  "payload": {
    "durationInSeconds": 109,
    "eslintVersion": "8.42.0",
    "lintedFilesCount": 1460,
    "lintFix": false,
    "nextEslintPluginVersion": "13.4.5",
    "nextEslintPluginErrorsCount": 0,
    "nextEslintPluginWarningsCount": 0,
    "nextRulesEnabled": {
      "@next/next/google-font-display": "warn",
      "@next/next/google-font-preconnect": "warn",
      "@next/next/next-script-for-ga": "warn",
      "@next/next/no-before-interactive-script-outside-document": "warn",
      "@next/next/no-css-tags": "warn",
      "@next/next/no-head-element": "warn",
      "@next/next/no-html-link-for-pages": "warn",
      "@next/next/no-img-element": "warn",
      "@next/next/no-page-custom-font": "warn",
      "@next/next/no-styled-jsx-in-document": "warn",
      "@next/next/no-sync-scripts": "warn",
      "@next/next/no-title-in-document-head": "warn",
      "@next/next/no-typos": "warn",
      "@next/next/no-unwanted-polyfillio": "warn",
      "@next/next/inline-script-id": "error",
      "@next/next/no-assign-module-variable": "error",
      "@next/next/no-document-import-in-page": "error",
      "@next/next/no-duplicate-head": "error",
      "@next/next/no-head-import-in-document": "error",
      "@next/next/no-script-component-in-head": "error"
    },
    "buildLint": true
  }
}
 ✓ Linting and checking validity of types    
[telemetry] {
  "eventName": "NEXT_TYPE_CHECK_COMPLETED",
  "payload": {
    "durationInSeconds": 31,
    "typescriptVersion": "5.1.3",
    "inputFilesCount": 1795,
    "totalFilesCount": 3570,
    "incremental": true
  }
}
[telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "build-lint",
    "invocationCount": 1
  }
}
[telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "vercelImageGeneration",
    "invocationCount": 0
  }
}
 ⚠ Compiled with warnings

./node_modules/typescript/lib/typescript.js
Module not found: Can't resolve 'perf_hooks' in '/app/node_modules/typescript/lib'

Import trace for requested module:
./node_modules/typescript/lib/typescript.js
./src/typescript-server/worker.ts
./src/typescript-server/client.ts
./src/hooks/notebook/useEditors.ts

[telemetry] {
  "eventName": "NEXT_BUILD_COMPLETED",
  "payload": {
    "durationInSeconds": 43,
    "totalAppPagesCount": 0,
    "totalPageCount": 86,
    "hasDunderPages": false,
    "hasTestPages": false
  }
}
 ✓ Collecting page data    
[telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "experimental/optimizeCss",
    "invocationCount": 0
  }
}
[telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "experimental/nextScriptWorkers",
    "invocationCount": 0
  }
}
[telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "optimizeFonts",
    "invocationCount": 1
  }
}
   Creating an optimized production build  ..   Generating static pages (0/78)     Generating static pages (25/78) [ ===] 
   Creating an optimized production build  .[warning] Rate limit error occurred. Waiting for 1561 ms before retrying...
[warning] Rate limit error occurred. Waiting for 1596 ms before retrying...
[warning] Rate limit error occurred. Waiting for 1542 ms before retrying...
[warning] Rate limit error occurred. Waiting for 1503 ms before retrying...
[warning] Rate limit error occurred. Waiting for 1629 ms before retrying...
   Generating static pages (57/78) [=== ] 
   Creating an optimized production build  ...[warning] Rate limit error occurred. Waiting for 1663 ms before retrying...
 ✓ Generating static pages (78/78) 
   Creating an optimized production build  ..   Finalizing page optimization  . [telemetry] {
  "eventName": "NEXT_BUILD_OPTIMIZED",
  "payload": {
    "durationInSeconds": 21,
    "staticPageCount": 4,
    "staticPropsPageCount": 14,
    "serverPropsPageCount": 64,
    "ssrPageCount": 4,
    "hasStatic404": true,
    "hasReportWebVitals": false,
    "rewritesCount": 0,
    "headersCount": 7,
    "redirectsCount": 194,
    "headersWithHasCount": 0,
    "rewritesWithHasCount": 0,
    "redirectsWithHasCount": 0,
    "middlewareCount": 1,
    "totalAppPagesCount": 0,
    "staticAppPagesCount": 0,
    "serverAppPagesCount": 0,
    "edgeRuntimeAppCount": 0,
    "edgeRuntimePagesCount": 0,
    "totalPageCount": 86,
    "hasDunderPages": false,
    "hasTestPages": false
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcLoader",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcMinify",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcRelay",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcStyledComponents",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcReactRemoveProperties",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcExperimentalDecorators",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcRemoveConsole",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcImportSource",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swcEmotion",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/x86_64-apple-darwin",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/x86_64-unknown-linux-gnu",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/x86_64-pc-windows-msvc",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/i686-pc-windows-msvc",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/aarch64-unknown-linux-gnu",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/armv7-unknown-linux-gnueabihf",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/aarch64-apple-darwin",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/aarch64-linux-android",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/arm-linux-androideabi",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/x86_64-unknown-freebsd",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/x86_64-unknown-linux-musl",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/aarch64-unknown-linux-musl",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "swc/target/aarch64-pc-windows-msvc",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "turbotrace",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "transpilePackages",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "skipMiddlewareUrlNormalize",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "skipTrailingSlashRedirect",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "modularizeImports",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/image",
    "invocationCount": 1
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/future/image",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/legacy/image",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/script",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/dynamic",
    "invocationCount": 3
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "@next/font/google",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "@next/font/local",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/font/google",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_BUILD_FEATURE_USAGE",
  "payload": {
    "featureName": "next/font/local",
    "invocationCount": 0
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/serverSideKeys"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/dashboard/publicProfile"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/serverSideProps"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/dashboard/dashboardPage"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/user"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/httpError"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/listing/notebookInList"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/explore/authors"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/explore/explore"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/explore/exploreFeature"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/dashboard"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/contentful"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "@sentry/nextjs"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "state/settings/billing/handlers/customer"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/customerStories/content"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/sitemap"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/learn/learn"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/notebookForks/notebookForks"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/notebookSchedules/notebookRuns"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/notebookSchedules/notebookLogs"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/notebook/notebookPage"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/notebookImporters/notebookImporters"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/permissions"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/specifier"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "querystring"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/parse"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/embedSelection"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/status"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/query"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/notebook"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/templates"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "@contentful/rich-text-react-renderer"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "react-dom/server"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "feed"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/stringify"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/features"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "components/settings/secondaryNavigation"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "lib/pricing"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .  [telemetry] {
  "eventName": "NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS",
  "payload": {
    "package": "pages/[at]/[...specifiers]"
  }
}
   Creating an optimized production build  .   Finalizing page optimization  .   ✓ Collecting build traces    
 ✓ Finalizing page optimization    

   Creating an optimized production build  .Route (pages)                                                                     Size     First Load JS
┌ λ /                                                                             566 B          1.34 MB
├   /_app                                                                         0 B             571 kB
├ λ /[at]                                                                         239 B          1.29 MB
├ λ /[at]/[...specifiers]                                                         18.4 kB        1.45 MB
├ λ /[at]/p/[...specifiers]                                                       880 B           571 kB
├ ○ /404                                                                          289 B           571 kB
├ λ /about                                                                        20.7 kB         754 kB
├ λ /ambassadors                                                                  4.34 kB         757 kB
├ λ /api/cms/entries                                                              0 B             571 kB
├ λ /api/revalidate/[...specifier]                                                0 B             571 kB
├ ● /blog (ISR: 60 Seconds) (377 ms)                                              7.18 kB         741 kB
├ ● /blog/[specifier] (ISR: 60 Seconds) (27351 ms)                                307 B          1.04 MB
├   ├ /blog/timeseries-workshop-materials (2001 ms)
├   ├ /blog/linsley-observable-plot (1995 ms)
├   ├ /blog/student-data-jam-sp23-unca-data-dynamically (1951 ms)
├   ├ /blog/august-release-recap (1917 ms)
├   ├ /blog/ai-assist (1907 ms)
├   ├ /blog/r-to-javascript-shapiro (1871 ms)
├   ├ /blog/community-recognition-2022 (1864 ms)
├   └ [+51 more paths]
├ λ /cms-preview/[...specifier]                                                   1.41 kB        1.09 MB
├ λ /cms-preview/blog/[specifier]                                                 315 B          1.04 MB
├ λ /cms-preview/release-notes/[specifier]                                        1.05 kB        1.03 MB
├ λ /collection/[at]/[...specifier]                                               9.35 kB        1.29 MB
├ λ /community                                                                    5.38 kB         758 kB
├ λ /compare/[specifier]                                                          9.74 kB        1.22 MB
├ λ /customer-stories                                                             3.32 kB         600 kB
├ λ /customer-stories/[customer]                                                  2.13 kB         599 kB
├ λ /d/[id]/accept/[invitation]                                                   2.02 kB         573 kB
├ λ /d/[id]/unsubscribe                                                           1.99 kB         573 kB
├ ● /data-integrations (ISR: 60 Seconds) (354 ms)                                 1.4 kB         1.09 MB
├ λ /embed/[...specifiers]                                                        6.85 kB        1.16 MB
├ ● /enterprise (ISR: 60 Seconds) (350 ms)                                        1.4 kB         1.09 MB
├ λ /error                                                                        402 B           571 kB
├ λ /explore                                                                      362 B           753 kB
├ λ /following                                                                    370 B           744 kB
├ λ /forking                                                                      1.51 kB         572 kB
├ λ /guide/[guide]                                                                5.27 kB        1.36 MB
├ λ /guides                                                                       5.64 kB        1.28 MB
├ ● /libraries (ISR: 60 Seconds) (365 ms)                                         1.4 kB         1.09 MB
├ λ /login                                                                        1.46 kB         572 kB
├ λ /login-otp                                                                    981 B           677 kB
├ λ /msteams/[at]/[specifier]                                                     407 B           588 kB
├ λ /msteams/config                                                               198 B           583 kB
├ ○ /msteams/login-success                                                        647 B           571 kB
├ λ /msteams/notebook/[at]/[...specifiers]                                        5.58 kB        1.36 MB
├ λ /msteams/notebooks                                                            204 B           588 kB
├ λ /msteams/remove                                                               1.4 kB          584 kB
├ λ /new                                                                          824 B           571 kB
├ ● /pricing (ISR: 60 Seconds) (426 ms)                                           1.39 kB        1.09 MB
├ ● /product (ISR: 60 Seconds) (350 ms)                                           1.39 kB        1.09 MB
├ λ /reauthenticate                                                               1.35 kB         572 kB
├ λ /recent                                                                       367 B           744 kB
├ ● /release-notes (ISR: 60 Seconds)                                              2.53 kB        1.03 MB
├ ● /release-notes/[specifier] (ISR: 60 Seconds) (930 ms)                         1.04 kB        1.03 MB
├   ├ /release-notes/2023-12-11-better-documentation-and-experience-improvements
├   ├ /release-notes/2023-12-01-new-release-notes-page
├   ├ /release-notes/2023-11-14-scheduled-notifications
├   └ /release-notes/2023-11-07-product-optimizations-2023
├ λ /release-notes/feed.rss                                                       270 B           571 kB
├ ● /resources/[...specifier] (ISR: 60 Seconds)                                   1.41 kB        1.09 MB
├   └ /resources/security
├ λ /search                                                                       14.4 kB         937 kB
├ λ /settings                                                                     422 B          1.29 MB
├ λ /settings/api-keys                                                            248 B          1.28 MB
├ λ /settings/api-keys/generate                                                   3.8 kB          738 kB
├ λ /settings/billing                                                             425 B          1.28 MB
├ λ /settings/confirm-email/[token]                                               1.96 kB         572 kB
├ λ /settings/databases                                                           414 B          1.28 MB
├ λ /settings/databases/choose-account                                            1.53 kB         572 kB
├ λ /settings/moderation                                                          7.73 kB        1.28 MB
├ λ /settings/oauth-tokens                                                        7.54 kB        1.28 MB
├ λ /settings/schedules                                                           421 B          1.29 MB
├ λ /settings/secrets                                                             414 B          1.28 MB
├ λ /signup                                                                       7.11 kB         683 kB
├ λ /sitemap-static.xml                                                           267 B           571 kB
├ ● /solutions/[specifier] (ISR: 60 Seconds)                                      1.4 kB         1.09 MB
├   └ /solutions/developers
├ λ /team/[at]/accept/[token]                                                     2.33 kB         573 kB
├ λ /team/[at]/new                                                                835 B           571 kB
├ λ /team/[at]/settings                                                           431 B          1.29 MB
├ λ /team/[at]/settings/api-keys                                                  320 B          1.28 MB
├ λ /team/[at]/settings/billing                                                   432 B          1.28 MB
├ λ /team/[at]/settings/databases                                                 424 B          1.28 MB
├ λ /team/[at]/settings/membership                                                14.9 kB        1.29 MB
├ λ /team/[at]/settings/permissions                                               5.84 kB        1.28 MB
├ λ /team/[at]/settings/providers                                                 8.76 kB        1.28 MB
├ λ /team/[at]/settings/schedules                                                 429 B          1.29 MB
├ λ /team/[at]/settings/secrets                                                   422 B          1.28 MB
├ λ /team/new                                                                     4.58 kB         681 kB
├ ● /teams (ISR: 60 Seconds)                                                      1.39 kB        1.09 MB
├ λ /templates                                                                    4.88 kB         575 kB
├ ○ /thumbnail/[specifier] (394 ms)                                               5.91 kB        1.16 MB
├ λ /top                                                                          362 B           744 kB
├ λ /trending                                                                     365 B           744 kB
├ λ /tutorials                                                                    2.18 kB         755 kB
├ ○ /twitter                                                                      963 B           571 kB
├ ● /verticals/[specifier]                                                        1.41 kB        1.09 MB
└ ● /why-observable (ISR: 60 Seconds)                                             1.4 kB         1.09 MB
+ First Load JS shared by all                                                     591 kB
  ├ chunks/framework-ca706bf673a13738.js                                          45.3 kB
  ├ chunks/main-09a0dcb1c16a7838.js                                               36.4 kB
  ├ chunks/pages/_app-69fe667421db2850.js                                         487 kB
  ├ chunks/webpack-18901f0a9009878a.js                                            2.21 kB
  └ css/a28d28f00c8309d6.css                                                      20.6 kB

ƒ Middleware                                                                      123 kB

λ  (Server)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
○  (Static)  automatically rendered as static HTML (uses no initial props)
●  (SSG)     automatically generated as static HTML + JSON (uses getStaticProps)
   (ISR)     incremental static regeneration (uses revalidate in getStaticProps)

bash-5.1# 

@visnup
Copy link
Member

visnup commented Dec 13, 2023

next start doesn't seem to send any telemetry.

@visnup visnup mentioned this issue Dec 20, 2023
6 tasks
@visnup
Copy link
Member

visnup commented Jan 16, 2024

Just noticed https://docs.brew.sh/Analytics. A practice from them which is new to me is they try to make sure to banner you before any analytics are ever sent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants