From bd35ead3705085c87164f4cdc7781fc66ca68dfb Mon Sep 17 00:00:00 2001 From: Jarmo Isotalo Date: Tue, 29 Sep 2020 18:21:24 +0300 Subject: [PATCH 1/3] Add siteHash and userAgent --- packages/gatsby-telemetry/src/telemetry.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/gatsby-telemetry/src/telemetry.ts b/packages/gatsby-telemetry/src/telemetry.ts index aa1d7cfc15256..9ee0391c8d8bf 100644 --- a/packages/gatsby-telemetry/src/telemetry.ts +++ b/packages/gatsby-telemetry/src/telemetry.ts @@ -73,6 +73,8 @@ export interface ITelemetryTagsPayload { name?: string starterName?: string siteName?: string + siteHash?: string + userAgent?: string pluginName?: string exitCode?: number duration?: number From 94edfa8784b9be543257b8a000277ec9b574ff47 Mon Sep 17 00:00:00 2001 From: Jarmo Isotalo Date: Tue, 29 Sep 2020 18:26:49 +0300 Subject: [PATCH 2/3] Track user-agent --- packages/gatsby-telemetry/src/index.ts | 6 ++++-- packages/gatsby-telemetry/src/telemetry.ts | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/gatsby-telemetry/src/index.ts b/packages/gatsby-telemetry/src/index.ts index e0eb6224fe4df..a44f7d2ec6281 100644 --- a/packages/gatsby-telemetry/src/index.ts +++ b/packages/gatsby-telemetry/src/index.ts @@ -84,9 +84,11 @@ export function addSiteMeasurement(event: string, obj): void { } export function expressMiddleware(source: string) { - return function (_req: Request, _res: Response, next): void { + return function (req: Request, _res: Response, next): void { try { - instance.trackActivity(`${source}_ACTIVE`) + instance.trackActivity(`${source}_ACTIVE`, { + userAgent: req.headers[`user-agent`], + }) } catch (e) { // ignore } diff --git a/packages/gatsby-telemetry/src/telemetry.ts b/packages/gatsby-telemetry/src/telemetry.ts index 9ee0391c8d8bf..0bcbfa897ff06 100644 --- a/packages/gatsby-telemetry/src/telemetry.ts +++ b/packages/gatsby-telemetry/src/telemetry.ts @@ -371,7 +371,7 @@ export class AnalyticsTracker { return osInfo } - trackActivity(source: string): void { + trackActivity(source: string, tags: ITelemetryTagsPayload = {}): void { if (!this.isTrackingEnabled()) { return } @@ -381,7 +381,7 @@ export class AnalyticsTracker { const debounceTime = 5 * 1000 // 5 sec if (now - last > debounceTime) { - this.captureEvent(source) + this.captureEvent(source, tags) } this.debouncer[source] = now } From 2a5eae617a172a4682e84ba1cbaf5c577fe71e27 Mon Sep 17 00:00:00 2001 From: Jarmo Isotalo Date: Wed, 30 Sep 2020 12:12:37 +0300 Subject: [PATCH 3/3] capture siteHash --- packages/gatsby-telemetry/src/index.ts | 2 +- packages/gatsby-telemetry/src/telemetry.ts | 17 ++++++++++++++++- yarn.lock | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/gatsby-telemetry/src/index.ts b/packages/gatsby-telemetry/src/index.ts index 7c5452bc73aad..807a090dc6f83 100644 --- a/packages/gatsby-telemetry/src/index.ts +++ b/packages/gatsby-telemetry/src/index.ts @@ -38,7 +38,7 @@ export function trackCli( tags?: ITelemetryTagsPayload, opts?: ITelemetryOptsPayload ): void { - instance.captureEvent(input, tags, opts) + instance.trackCli(input, tags, opts) } export function captureEvent( diff --git a/packages/gatsby-telemetry/src/telemetry.ts b/packages/gatsby-telemetry/src/telemetry.ts index 0bcbfa897ff06..8c05655df27af 100644 --- a/packages/gatsby-telemetry/src/telemetry.ts +++ b/packages/gatsby-telemetry/src/telemetry.ts @@ -1,6 +1,6 @@ import uuidv4 from "uuid/v4" import os from "os" -import { isCI, getCIName } from "gatsby-core-utils" +import { isCI, getCIName, createContentDigest } from "gatsby-core-utils" import { getRepositoryId as _getRepositoryId, IRepositoryId, @@ -120,6 +120,7 @@ export class AnalyticsTracker { repositoryId?: IRepositoryId features = new Set() machineId: string + siteHash?: string = createContentDigest(process.cwd()) constructor({ componentId, @@ -204,6 +205,20 @@ export class AnalyticsTracker { return `-0.0.0` } + trackCli( + type: string | Array = ``, + tags: ITelemetryTagsPayload = {}, + opts: ITelemetryOptsPayload = { debounce: false } + ): void { + if (!this.isTrackingEnabled()) { + return + } + if (typeof tags.siteHash === `undefined`) { + tags.siteHash = this.siteHash + } + this.captureEvent(type, tags, opts) + } + captureEvent( type: string | Array = ``, tags: ITelemetryTagsPayload = {}, diff --git a/yarn.lock b/yarn.lock index bb5e07f54ab21..b792d8fbe3a15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20725,7 +20725,7 @@ remark-mdx@1.6.16: remark-parse "8.0.3" unified "9.1.0" -remark-mdx@^1.6.18, remark-mdx@^1.6.6: +remark-mdx@^1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.18.tgz#d8c76017c95824cc7fb853bb2759add8ba0cf319" integrity sha512-xNhjv4kJZ8L6RV68yK8fQ6XWlvSIFOE5VPmM7wMKSwkvwBu6tlUJy0gRF2WiZ4fPPOj6jpqlVB9QakipvZuEqg==