This blog has been edited on September 5, 2018 to include the data sharing updates released in GoCD 18.8.

GoCD started collecting and analyzing usage data in 18.7. If you are a GoCD System Administrator, you will be able to see a notification that pops up when you upgrade to version 18.7 or newer.

GoCD collecting usage analytics

Why are we collecting data?

We strive to understand our users better and provide the best product experience. Having data like number of pipelines and agents on an instance helps us optimize the GoCD experience for scale. We will never collect any private or personal information, and we will always be transparent about what is being shared. We take privacy seriously and can confirm that since this isn’t personally identifiable information, we comply with general data protection regulations (GDPR).

What data is being shared?

This is a rundown of all the information that we currently collect:

  • Number of pipelines (pipeline_count): This allows the calculation of the average number of pipelines a GoCD instance has. Knowing the average number of pipelines helps us optimize the GoCD experience.
  • Number of agents (agent_count): This allows the calculation of the average number of agents a GoCD instance has. This will help us ensure GoCD can handle a reasonable number of requests from the average number of agents.
  • Oldest pipeline run time (oldest_pipeline_execution_time): This provides data around the age of the GoCD instance. Along with the number of pipelines data point, it helps establish an expected growth in the number of pipelines.
  • GoCD version (gocd_version): This is the version of GoCD the server is on.
  • Server ID (server_id): A randomly-generated identifier for this instance of GoCD to help correlate the data. This does not tie into any other ID in this instance.
  • Message version (message_version): This is the JSON Schema version number for this message.
  • Number of config repo pipelines (config_repo_pipeline_count): This is the number of pipelines added through config repo. It helps us gauge the effectiveness of the pipeline as code feature.
  • Number of elastic agent jobs (job_count and elastic_agent_job_count): These counts provides a measure of usefulness of elastic agent plugins. This helps decide which plugins to put more effort into and improve.

The data that gets sent looks like this:

{
    "server_id": "2ab54f99-5fb5-4a5b-850b-ac790aba52b4",
    "message_version": 2,
    "data": {
        "pipeline_count": 139,
        "config_repo_pipeline_count": 63, 
        "agent_count": 43,
        "oldest_pipeline_execution_time": 1398322181981,
        "job_count": 506,
        "elastic_agent_job_count": [
            { "plugin_id": "cd.go.contrib.elasticagent.kubernetes", "job_count": 2 }
        ]
        "gocd_version": "18.8.0-7433"
    }
}

Turning data sharing off

You can absolutely turn this off, if you’d like. The toggle to turn off the data collection is accessible by the GoCD System Administrator under Admin > Data Sharing. You’ll be able to change this at any time and don’t forget to hit ‘Save’ when you’re done.

GoCD usage analytics

If you have any questions or would like more clarity about how and why we collect this information, chat with us on our discussion forum.