چطور تسلا با ClickHouse یک پلتفرم مشاهدهپذیری در مقیاس نجومی ساخت؟
در این مقاله نگاهی گذرا داریم به پروژه Comet در تسلا که برای مهاجرت سیستم نظارتی و مشاهدهپذیری تسلا از پرومتئوس به کلیک هوس طراحی و پیاده سازی شده است.

How Tesla built a quadrillion-scale observability platform on ClickHouse
“Data in ClickHouse is better than data anywhere else. No other system lets you slice and dice your data, ask interesting questions, and get answers in an acceptable amount of time. There’s nothing out there that competes with ClickHouse.” Alon Tal, Senio
داستان تغییر زیرساخت observability تسلا از کجا شروع شد ؟
چند میلیون خودرو متصل، هزاران زیرسیستم توزیعشده، و گیگافکتوریهایی که شبانهروز داده میفرستند. تسلا در چنین مقیاسی نمیتوانست روی Prometheus حساب باز کند…
مهندس ارشد تسلا Alon Tal، میگوید:
«ما به سیستمی نیاز داشتیم که بتونه دهها میلیون ردیف در ثانیه را ingest کنه، سالها داده رو نگه داره، و همچنان real-time پاسخ بده.»
چرا Prometheus کافی نبود؟
مقیاسپذیری افقی محدود
وابستگی به یک سرور واحد (ریسک از دست دادن کل متریکها)
مشکلات نگهداری بلندمدت و زبان کوئری محدود
راهحل: ساخت یک سیستم جدید به نام Comet
با استفاده از ClickHouse به عنوان هستهی اصلی، تسلا یک پلتفرم metrics محور ساخت که:
دادهها را از طریق OTLP و Kafka ingest میکند
با ETLهای سفارشی دادهها را به شکل ساختیافته وارد ClickHouse میکند
و مهمتر از همه:
کوئریهای PromQL را به SQL معادل در ClickHouse ترجمه میکند بدون اینکه مهندسان متوجه تفاوت شوند!
یعنی داشبوردهای موجود (Grafana، Alertmanager، و…) بدون تغییر کار میکنند!
مقیاس واقعی؟
یک میلیارد ردیف در ثانیه! به مدت ۱۱ روز پیاپی!
نتیجه؟
بدون یک خطا
مصرف ثابت RAM و CPU
بیش از ۱ کوادریلیون رکورد با موفقیت ingest شده!
سیستم هنوز هم در حال scale شدن برای تیمهای داخلی تسلاست!
چرا ClickHouse؟
سرعت بیرقیب در پاسخ به کوئریهای پیچیده
UDFهای اجرایی برای کوئریهای غیر trivial
پشتیبانی از PromQL و TraceQL
نگهداری بلندمدت دادهها با حجم بالا
و مهمتر از همه: قابلیت اطمینان بالا در مقیاس تسلا!
آیندهی Comet؟
پشتیبانی از distributed tracing
احتمال open-source شدن
گسترش به دیگر واحدهای عملیاتی در تسلا
جمعبندی
تسلا با پروژهی Comet ثابت کرد که observability در مقیاس سیارهای ممکن است—اگر ابزار مناسب انتخاب شود!
حالا واقعا پرومتئوس حذف شد؟
تسلا Prometheus رو بهطور مستقیم حذف نکرد، ولی:
دیگه از خود Prometheus برای ذخیرهسازی و کوئری استفاده نمیکنه.

بهجاش، پلتفرمی به نام Comet ساخت که خودش میتونه PromQL (زبان کوئری Prometheus) رو اجرا کنه و پشت صحنه با کلیکهوس ارتباط بگیره و خروجی بده بدون اینکه واقعاً Prometheus وجود داشته باشه!


