Sending Performance Data to Aerospike
Aerospike Telemetry is a feature that allows us to collect certain use data - not the database data - on your Aerospike Community Edition server use. We'd like to know when clusters are created and destroyed, cluster size, cluster workload, how often queries are run, whether instances are deployed purely in-memory or with Flash. Aerospike Telemetry collects information from running Community Edition server instances every 10 minutes. The data helps us to understand how the product is being used, identify issues, and create a better experience for the end user.
Aerospike Telemetry anonymizes outgoing data. Machine IP addresses and MAC addresses (collected so we can track cluster members) are run through a one-way hash before sending so you can't be identified.
Our Commitment - We'll Share the Results
On a periodic basis, we'll share the results of our research on Aerospike database use. We'll write a blog post and include key findings. We owe that to the community - it's your data. The more people contribute, the more accurate the research will be.
It's Easy to Verify and to Disable
Aerospike Telemetry runs as a separate process from the Aerospike server. Since it's a separate process - not hidden in complex server code - you can see the statistics it gathers, verify which data it sends, where it sends to, and how often. You can kill the process. You can create your own package that doesn't include the Python script. You can edit a line in its configuration script so that it never starts. It's that simple.
If you turn the Telemetry Agent off, you can still use Aerospike.
How Do I Turn Aerospike Telemetry Off?
There are two ways to enable and disable the Telemetry Agent:
Directly Editing the Configuration File
If the server was installed via DEB or RPM, the configuration file can be found at /etc/aerospike/telemetry.conf. If you're running the server from within the GitHub repository, the relevant configuration file can be found at <repo path>/as/etc/telemetry_dev.conf.
To disable (or enable) the Telemetry Agent, change the "disable" value in the file to true (or false.)
Using the Telemetry Agent Command Line Interface
If the server was installed via DEB or RPM package, run:
$ python /opt/aerospike/telemetry/telemetry.py /etc/aerospike/telemetry.conf --disable
$ python /opt/aerospike/telemetry/telemetry.py /etc/aerospike/telemetry.conf --enable
If you're running from within the repository, run:
$ python <repo path>/modules/telemetry/telemetry.py <repo path>/as/etc/telemetry_dev.conf --disable
$ python <repo path>/modules/telemetry/telemetry.py <repo path>/as/etc/telemetry_dev.conf --enable
Making the Change Take Effect
If Aerospike is already running when using either of the above methods, you must restart Aerospike (or just the Telemetry Agent) for the change to take effect:
$ service aerospike restart
$ service aerospike_telemetry restart
Or, on systemd-based systems (e.g., RedHat Enterprise Linux 7, CentOS 7, and Debian 8):
$ systemctl restart aerospike
$ systemctl restart aerospike_telemetry
Or, when ASD is run from within the open source tree (i.e., GitHub repo.):
$ make stop start
Confirming the Change
Once you have restarted Aerospike, you can confirm that the Telemetry Agent is no longer running by checking the Aerospike log. At the beginning of the log (normally in /var/log/aerospike/aerospike.log), you will see -
Apr 12 2016 21:46:04 GMT: INFO (info): (thr_info.c::4151) Aerospike Telemetry Agent: Aerospike anonymous data collection is INACTIVE. For further information, see https://www.aerospike.com/aerospike-telemetry
Closing the Loop -- Adding Your Email Address
In the Aerospike Community Edition, telemetry goes both ways. If you are willing to share your email address with us, we will be able to locate your specific Aerospike Community Edition cluster performance information, e.g., when investigating issues with you via the Aerospike Community Forum. In the future we intend to offer additional support services linked to your email address.
To add your email address to the anonymized cluster performance data reported to Aerospike, use:
$ python /opt/aerospike/telemetry/telemetry.py --set-email=<MyEmailAddress>
where <MyEmailAddress> is a free-format string, e.g., email@example.com.