
Usage Data Collector
********************

The Crate Data Usage Data Collector (UDC) is a sub-system that gathers
usage data, reporting it to the UDC server at https://udc.crate.io. It
is easy to disable, and does not collect any data that is
confidential. For more information about what is being sent, see
below.

Crate uses this information as a form of automatic, effortless
feedback from the community. We want to verify that we are doing the
right thing by matching download statistics with usage statistics.
After each release, we can see if there is a larger retention span of
the server software.

The data collected is clearly stated here. If any future versions of
this system collect additional data, we will clearly announce those
changes.

Crate is very concerned about your privacy. We do not disclose any
personally identifiable information.


Technical Information
=====================

To gather good statistics about Crate Data usage, UDC collects this
information:

   +------------------+-------------------------------------------------------------------------------+
   | Name             | Description                                                                   |
   +==================+===============================================================================+
   | Kernel Version   | The build number, and if there are any modifications to the kernel.           |
   +------------------+-------------------------------------------------------------------------------+
   | Cluster Id       | A randomized globally unique id created every time the whole cluster is       |
   +------------------+-------------------------------------------------------------------------------+
   | Master           | Boolean whether the current node is master.                                   |
   +------------------+-------------------------------------------------------------------------------+
   | Ping Count       | UDC holds an internal counter per node which is incremented for every ping,   |
   +------------------+-------------------------------------------------------------------------------+
   | Crate Version    | The crate version.                                                            |
   +------------------+-------------------------------------------------------------------------------+
   | Java Version     | The Java version crate is currently running with.                             |
   +------------------+-------------------------------------------------------------------------------+
   | Hardware Address | MAC address to uniquely identify instances behind firewalls.                  |
   +------------------+-------------------------------------------------------------------------------+

After startup, UDC waits for 10 minutes before sending the first ping.
It does this for two reasons; first, we don't want the startup to be
slower because of UDC, and secondly, we want to keep pings from
automatic tests to a minimum. By default, UDC is sending pings every
24 hours. The ping to the UDC servers is done with a HTTP GET.


Configuration
=============

The Usage Data Collector can be configured by following parameters:

   +-------------------+----------------------+------------------------------------------+
   | Name              | Default Value        | Description                              |
   +===================+======================+==========================================+
   | udc.enabled       | true                 | Disable/Enable UDC.                      |
   +-------------------+----------------------+------------------------------------------+
   | udc.initial_delay | 10 Minutes           | The delay for first ping after start-up. |
   +-------------------+----------------------+------------------------------------------+
   | udc.interval      | 24 Hours             | The interval a ping is sent.             |
   +-------------------+----------------------+------------------------------------------+
   | udc.url           | https://udc.crate.io | The url the ping is sent to.             |
   +-------------------+----------------------+------------------------------------------+


How to disable UDC
==================

Below are two ways you can disable UDC. However we hope you support us
offering the open source edition, and leave UDC on, so we learn how
many people use Crate.


By configuration
----------------

Just add following to your "crate.yml" configuration file:

   udc.enabled:  false


By system property
------------------

If you do not want to make any change to the jars or to the
configuration, a system property setting like this will also make sure
that UDC is never activated:

   -Dudc.enabled=false
