Skip to content

installation-telemetry: add customer ID #10629

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

Merged
merged 3 commits into from
Jun 24, 2022
Merged

Conversation

adrienthebo
Copy link
Contributor

@adrienthebo adrienthebo commented Jun 13, 2022

Description

This pull request exposes the GitPod Customer ID field in installation telemetry.

Related Issue(s)

This issue resolves #10183.

How to test

The customerID field will be available in the Gitpod Admin/Settings page, displayed in the installation-telemetry job output, and will be present in the segment.io telemetry.

Telemetry Disabled

Dashboard: Admin/Settings:

Dashboard: Admin/Settings, telemetry disabled

Installation telemetry job:

 {
  "level": "info",
  "message": "installation-telemetry is not permitted to send - exiting",
  "serviceContext": {
    "service": "installation-telemetry",
    "version": "commit-2b1c7e10da04762651d753db7b1fb1b9954b3e70"
  },
  "severity": "INFO",
  "time": "2022-06-24T15:28:09Z"
}
Telemetry enabled, Customer ID disabled

Dashboard: Admin/Settings:

Screen Shot 2022-06-24 at 8 35 23 AM

Installation Telemetry job:

{
  "level": "info",
  "message": "installation-telemetry has successfully sent data - exiting",
  "serviceContext": {
    "service": "installation-telemetry",
    "version": "commit-2b1c7e10da04762651d753db7b1fb1b9954b3e70"
  },
  "severity": "INFO",
  "telemetry": {
    "userId": "cfcc2cfa-9ac6-482f-879e-f327c260c533",
    "event": "Installation telemetry",
    "timestamp": "0001-01-01T00:00:00Z",
    "properties": {
      "totalInstances": 0,
      "totalUsers": 1,
      "totalWorkspaces": 0,
      "version": "gitpod-custom-alt-10183-sh-telem-license.30"
    }
  },
  "time": "2022-06-24T15:36:05Z"
}
Telemetry enabled, Customer ID enabled, empty customer ID

Dashboard: Admin/Settings:
Screen Shot 2022-06-24 at 8 38 03 AM

Installation Telemetry job:

{
  "level": "info",
  "message": "installation-telemetry has successfully sent data - exiting",
  "serviceContext": {
    "service": "installation-telemetry",
    "version": "commit-2b1c7e10da04762651d753db7b1fb1b9954b3e70"
  },
  "severity": "INFO",
  "telemetry": {
    "userId": "cfcc2cfa-9ac6-482f-879e-f327c260c533",
    "event": "Installation telemetry",
    "timestamp": "0001-01-01T00:00:00Z",
    "properties": {
      "customerID": "",
      "totalInstances": 0,
      "totalUsers": 1,
      "totalWorkspaces": 0,
      "version": "gitpod-custom-alt-10183-sh-telem-license.30"
    }
  },
  "time": "2022-06-24T15:39:50Z"
}
Installation telemetry enabled, customer ID enabled, customer ID set

Dashboard: Settings/Admin:

Screen Shot 2022-06-24 at 8 47 52 AM

Installation telemetry job:

{
  "level": "info",
  "message": "installation-telemetry has successfully sent data - exiting",
  "serviceContext": {
    "service": "installation-telemetry",
    "version": "commit-2b1c7e10da04762651d753db7b1fb1b9954b3e70"
  },
  "severity": "INFO",
  "telemetry": {
    "userId": "cfcc2cfa-9ac6-482f-879e-f327c260c533",
    "event": "Installation telemetry",
    "timestamp": "0001-01-01T00:00:00Z",
    "properties": {
      "customerID": "Tessier Ashpool S.A.",
      "totalInstances": 0,
      "totalUsers": 1,
      "totalWorkspaces": 0,
      "version": "gitpod-custom-alt-10183-sh-telem-license.30"
    }
  },
  "time": "2022-06-24T15:48:56Z"
}

Release Notes

[self-hosted] Installation telemetry optionally includes the Gitpod customer ID

Documentation

This change is user facing, and when enabled adds information that removes the pseudononymous guarantees in our documentation. We'll amend that in a separate pull request against the website.

@adrienthebo adrienthebo marked this pull request as ready for review June 14, 2022 01:20
@adrienthebo adrienthebo requested review from a team June 14, 2022 01:20
@github-actions github-actions bot added team: delivery Issue belongs to the self-hosted team team: webapp Issue belongs to the WebApp team labels Jun 14, 2022
@adrienthebo adrienthebo added do-not-merge/hold and removed team: webapp Issue belongs to the WebApp team team: delivery Issue belongs to the self-hosted team labels Jun 14, 2022
@adrienthebo
Copy link
Contributor Author

This looks like the telemetry data provider needs to be relocated into components/server/ee/src/installation-admin, but the overall approach is ready for review.

Copy link
Contributor

@nandajavarma nandajavarma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great! Great work Adrien! 🤩

@lucasvaltl
Copy link
Contributor

Hey @adrienthebo, we originally discussed two implementation paths here - one with the license ID, and one with a newly added customer ID as a (hidden) field in the replicated license. We had plan was to use the customer ID (reasoning was outlined in this comment) but I had failed to transfer this state into the main issue description (Sorry!). Is it possible to switch the implementation to use customer id instead of the license ID?

@nandajavarma nandajavarma self-requested a review June 14, 2022 15:33
@github-actions github-actions bot added the team: webapp Issue belongs to the WebApp team label Jun 14, 2022
@adrienthebo adrienthebo added the team: delivery Issue belongs to the self-hosted team label Jun 14, 2022
@roboquat roboquat added size/S and removed size/XS labels Jun 15, 2022
@adrienthebo adrienthebo force-pushed the alt/10183-sh-telem-license branch from 3dbbc1d to 1d1007d Compare June 15, 2022 20:20
@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-alt-10183-sh-telem-license.7 because the annotations in the pull request description changed
(with .werft/ from main)

@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-alt-10183-sh-telem-license.8 because the annotations in the pull request description changed
(with .werft/ from main)

@adrienthebo adrienthebo changed the title installation-telemetry: add license ID installation-telemetry: add customer ID Jun 15, 2022
@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-alt-10183-sh-telem-license.9 because the annotations in the pull request description changed
(with .werft/ from main)

@lucasvaltl
Copy link
Contributor

This looks good - two things that are missing as per the original ticket:

  • Allow users to specifically opt-out of this identifiable info (@gtsiolis I think it would be great to get your design take on such a two-layer opt out)
    --> How much additional work do you think this is? The reason for including this was to avoid customers opting out completely just because we are now sending data that allows us to know who the owner of an installation is. I was thinking of having an additional checkbox that is ticked by default stating "Include Customer ID". Happy to chat in sync about this - just reach out :)

  • Make sure this is communicated in honesty to users that we are doing this and why we are doing this. Explain to them how they can opt-out.
    --> What are your plans here? We should at the very least update our docs which state that "We do not collect any data that allows conclusions to be drawn about the owner of the installation." and notify #t_customer_experience on slack :)

@corneliusludmann
Copy link
Contributor

Just my 2 cents: Given that the customer ID is included only when we explicitly add it to the license (and we could ask the customers for consent before we do this), in my option we could add this in a separate PR (especially when we want to give George some time to give his input). What do you think?

@roboquat roboquat removed the size/S label Jun 17, 2022
@adrienthebo adrienthebo force-pushed the alt/10183-sh-telem-license branch 2 times, most recently from 536cdbd to f48df1f Compare June 23, 2022 23:57
@adrienthebo adrienthebo force-pushed the alt/10183-sh-telem-license branch 5 times, most recently from 6394f9d to 85f898f Compare June 24, 2022 02:36
@roboquat roboquat added size/M and removed size/L labels Jun 24, 2022
@geropl
Copy link
Member

geropl commented Jun 24, 2022

@adrienthebo I was looking to review, but couldn't because the build seems to fail. 😕

@geropl geropl self-assigned this Jun 24, 2022
@adrienthebo
Copy link
Contributor Author

adrienthebo commented Jun 24, 2022

@adrienthebo I was looking to review, but couldn't because the build seems to fail. 😕

@geropl I'm rebasing onto main to remove a merge conflict, should be fixed up in a bit. Thanks for looking at this!

@adrienthebo adrienthebo force-pushed the alt/10183-sh-telem-license branch from 85f898f to 0fcb0b9 Compare June 24, 2022 17:37
Copy link
Member

@geropl geropl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, tested and works as expected 👍

Copy link
Contributor

@mrsimonemms mrsimonemms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@adrienthebo
Copy link
Contributor Author

/unhold

@roboquat roboquat merged commit d00cebd into main Jun 24, 2022
@roboquat roboquat deleted the alt/10183-sh-telem-license branch June 24, 2022 19:17
@gtsiolis
Copy link
Contributor

Came back a bit late for your comment[1] @lucasvaltl as I was offline for a week, but left some feedback in a relevant discussion (internal). FWIW, using a second checkbox sounds like a good minimal viable change.

Also, thanks @adrienthebo for shipping this and including a helpful section description[1] below the section title that also provides some visual balance. ✨

@roboquat roboquat added the deployed: webapp Meta team change is running in production label Jun 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployed: webapp Meta team change is running in production release-note size/M team: delivery Issue belongs to the self-hosted team team: webapp Issue belongs to the WebApp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Expand Self-Hosted Telemetry With Customer ID
8 participants