What's behind the Call Home option?

franckpachot

Franck Pachot

Posted on November 7, 2024

What's behind the Call Home option?

When you start YugabyteDB using the yugabyted command, there's a --callhome option set to true by default. You might be curious about where it sends information and what data is transmitted. Rest assured, no big brother is watching you. The open-source database allows you to see precisely what it does. You can find the relevant code in call_home.cc.

Another way is to look at the information sent by TCP. What yugabyted does is start the tablet servers with the following flags:

--callhome_collection_level=medium
--callhome_enabled=true
--callhome_interval_secs=3600
--callhome_tag=
--callhome_url=https://diagnostics.yugabyte.com
Enter fullscreen mode Exit fullscreen mode

In this blog post, I'll trace the TCP packets to diagnostics.yugabyte.com, but I'll set HTTP instead of HTTPS to read it without playing with certificates.

I ran the following in a container started with docker run -it yugabytedb/yugabyte bash:


sed -e '/diagnostics.yugabyte.com/s/https/http/' bin/yugabyted

dnf install -y tcpdump

tcpdump -A -i any dst host $(host diagnostics.yugabyte.com | awk '{print $NF}') &

yugabyted start \
 --tserver_flags='callhome_url=http://diagnostics.yugabyte.com' \
 --master_flags='callhome_url=http://diagnostics.yugabyte.com'

Enter fullscreen mode Exit fullscreen mode

Here is what I see with the default medium collection level:

 POST / HTTP/1.1
Host: diagnostics.yugabyte.com
Accept: */*
Content-Type: application/json
Content-Length: 1406

{
    "gflags": "--cql_proxy_bind_address=172.17.0.2:9042 --default_memory_limit_to_ram_ratio=0.59999999999999998 --enable_ysql_conn_mgr_stats=false --fs_data_dirs=/root/var/data --instance_uuid_override=d1ab793f63a548fe802ac438e4ae5e39 --mem_tracker_tcmalloc_gc_release_bytes=134217728 --metrics_snapshotter_interval_ms=11000 --metrics_snapshotter_tserver_metrics_whitelist=handler_latency_yb_tserver_TabletServerService_Read_count,handler_latency_yb_tserver_TabletServerService_Write_count,handler_latency_yb_tserver_TabletServerService_Read_sum,handler_latency_yb_tserver_TabletServerService_Write_sum,disk_usage,cpu_usage,node_up --pgsql_proxy_bind_address=172.17.0.2:5433 --placement_uuid=00ea815e-ef3c-43b1-81cb-7378ea76ad85 --redis_proxy_bind_address=172.17.0.2:6379 --server_broadcast_addresses=172.17.0.2:9100 --server_dump_info_path=/root/var/data/tserver-info --server_tcmalloc_max_total_thread_cache_bytes=438034882 --start_pgsql_proxy=true --start_redis_proxy=false --stop_on_parent_termination=true --tserver_enable_metrics_snapshotter=true --tserver_master_addrs=172.17.0.2:7100 --undefok=stop_on_parent_termination --yb_num_shards_per_tserver=1 --ysql_num_shards_per_tserver=1 ",
    "cluster_uuid": "9a4ef104-eb56-4506-a3a689d7f487b48b",
    "node_uuid": "d1ab793f63a548fe802ac438e4ae5e39",
    "server_type": "tserver",
    "hostname": "bdd6c75ff51c",
    "current_user": "root",
    "timestamp": "1730900490.057335",
    "tablets": 9
}

Enter fullscreen mode Exit fullscreen mode

As you can see, not much information is sent besides the startup flags and the number of tablets. Yugabyte might like to know the flags usage in case there are future deprecations.

I've also run the same with the high collection level:

yugabyted start  \
--tserver_flags='callhome_url=http://diagnostics.yugabyte.com,callhome_collection_level=high'  \
--master_flags='callhome_url=http://diagnostics.yugabyte.com,callhome_collection_level=high'

Enter fullscreen mode Exit fullscreen mode

This sends the performance metrics similar to those that you can see from the /metrics endpoints:
Image description

Nothing is hidden, and you can disable the Call Home. You can also tell us how you use YugabyteDB in our community channels (Slack, forum, social network). Feedback helps improve the product, and that's why YugabyteDB is Open-Source.

Join yugabyte-db on Slack - Community Inviter

Join yugabyte-db on Slack. Powered by Community Inviter. You will get an invitation soon. Check your inbox.

favicon communityinviter.com
💖 💪 🙅 🚩
franckpachot
Franck Pachot

Posted on November 7, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

What's behind the Call Home option?
yugabyted What's behind the Call Home option?

November 7, 2024