DEV Community

Cover image for What's behind the Call Home option?
Franck Pachot for YugabyteDB

Posted on

1

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.

Inviter.co | The YugabyteDB Community

YugabyteDB is the high-performing, PostgreSQL-compatible, distributed database for building cloud-native apps at scale.

inviter.co

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay