درود. امیدوارم که حال دلتون خوب باشه. بعد از کلی وقت بالاخره فرصت شد که دست به کیبورد بشم و یه پست جدید بنویسم. سعی دارم که بیشتر بنویسم و هر موضوع جالبی که برای به اشتراک گذاشتن دارم رو اینجا با شما به اشتراک بگذارم. قبلاً برام مهم بود که حتماً به مقدار زیاد بنویسم و موضوع خاصی داشته باشم اما از این به بعد، چه خیلی کم باشه و یا خیلی زیاد، مایلم راجبش بنویسم و اون رو انتقال بدم.
خب. بریم سراغ بحث اصلی. داستان از اونجایی شروع شد که همین چند روز پیش یه تسک Stress Testing خورد به پستم. منظورم در واقع HTTP Benchmarking هست. اگر با این مورد آشنایی داشته باشید میدونید که ابزارهای زیادی برای انجام این تست موجوده. وقتی با ab یا همون Apache Bench تست رو انجام دادم متوجه شدم که خروجیش فرمت جالبی نداره اصلاً. اولین باری نبود که ازش استفاده میکنم و این خروجی رو میبینم ولی این بار در یک لحظه واقعاً دلمو زد. آره خب میدونم که یه ابزار cli هست ولی بازم خروجیش میتونست قالب مرتبتری داشته باشه. یا مختصر و مفید خروجی بده. جوری که کاربر های عادی هم به راحتی درکش کنن. از تمام اطلاعاتی که از نتیجه تست با Apache Bench موجود بود فقط به موارد کلی بعلاوه میانگین Additional Metric ها برای Connection Time و Processing Time و Waiting Time نیاز داشتم. با خودم گفتم اگر یه اسکریپت بود که نتیجه تست رو بگیره و مواردی که مدنظرمه رو بطور خلاصه چاپ کنه باحال میشه. خب من برنامهنویس که نیستم. این به کنار. خود Shell Scripting رو هم فقط در حد مقدمات آشنایی دارم پس با کمک AI این اسکریپت رو نوشتم. البته توی روند نوشتنش به یه باگ خورد و اونو در نهایت خودم موفق شدم تشخیص بدم و درستش کنم. AI دیگه فقط داشت بدترش میکرد. خب من به هدفم رسیدم اما نیاز داشتم که این خلاصه رو در قالب نمودار داشته باشم. این اولین باری بود که بهم گفته شده بود در کنار نتیجه تست و خلاصه نتیجه تست، یه نمودار ساده هم از خلاصه نتیجه تست لازم داریم. البته در واقع همیشه پیشبینی میکردم که این روز برسه. چون که واقعاً نمودار مورد نیازه. بخصوص برای جلسات ارائه و استفاده در اسلایدها. ولی این قابلیت رو خودش نداره که. قبلاً یکبار درمورد ابزار wrk این نیاز رو حس کردم و بعد از کلی سرچ کردن رسیدم به یه پروژه آزاد در اعماق گیتهاب به اسم wrk2img که میشد باهاش گراف های ساده درست کنی. دقیقاً همونی بود که لازم داشتم اما درمورد Apache Bench چطور؟ اون چیزی که دقیقاً لازم داشتم رو پیدا نکردم. بالاتر گفتم برنامهنویس نیستم. این حقیقت داره ولی خب با matplotlib آشنایی داشتم(در حدی که فقط بدونم در کل چه کارایی میشه باهاش کرد) و پایتون رو هم یه زمانی تا حدودی دنبال کرده بودم. همین باعث شد که ایدش بزنه به سرم. ایده تبدیل همون خلاصه به نمودارهای ساده با یه اسکریپت پایتون که از matplotlib استفاده میکنه. این یکی رو کلا خود AI نوشت. به شخصه آدمی نیستم که از AI فراری باشه. این مورد رو هم قبول دارم که خودت کد بزنی بهتره. حتی بعنوان کسی که اصلا کد نمیزنه! اگر بلد بودم و هزینه زمانیش رو داشتم قطعاً خودم انجامش میدادم. بحث اینه پروژه دیگهای نبود که دقیقاً اونی باشه که نیاز دارم. خب پس باید انگار برنامهنویسی میکردم اما برنامهنویس که نیستم. اشکالی نداره خب میتونستم برم یادش بگیرم. این خیلی خوبه ولی ای بابا هزینه زمانیش رو که نداشتم. و بدین صورت یه دلیل منطقی برای استفاده از AI داشتم. در نهایت تصمیم گرفتم این دو تا اسکریپت رو قرار بدم روی گیتهابم. اسم AB Quick Reporter رو برای این پروژه انتخاب کردم چون به کاربر کمک میکنه خیلی سریع یه خلاصه متنی کلی از گزارش نهایی و یه نمودار قابل فهم ساده از همون خلاصه متنی داشته باشه. لینک پروژه رو در انتهای متن قرار میدم. دوست داشتم این پروژه آزاد هرچند کوچیک و ساده رو باهاتون به اشتراک بزارم و داستان پشتش رو هم تعریف کرده باشم. شاید یه موقعی توی استفاده از Apache Bench به دردتون خورد. ممنون که وقت گذاشتید و مطالعه کردید. امیدوارم همواره در تندرستی کامل به سر ببرید.
راستی اگر دوست داشتید میتونید منو به یه قهوه دعوت کنید :)
این بهم کمک میکنه که با انرژی و قدرت بیشتری ادامه بدم…