یکبار دنبال راهی برای گرفتن الرت در صورت طولانی شدن زمان پاسخ گویی رست هام بودم و در نهایت تبدیل به این کویری الستیک شد:
به زبان ساده، در قسمت source اطلاعات url, duration, timestamp, client IP رو در خروجی خواهم داشت. بعد تعداد با size مشخص میشود که باید جایگزین result_size کنیم، در قسمت کویری هم url.path به صورت regex مشخص میشود. range-transaction.duration.us مقدارهای بالاتر از این مقدار باید در خروجی بیایند با واحد میکرو ثانیه. در بلاک بعدی مدت زمان، مثلا سی دقیقه یا یک ساعت قبل مشخص میشود و method هم get, post, ... در نهایت اسم سرویس که در apm agent در اپلیکیشن تعیین کردیم. اگریگیشن در نهایت مقدار مینیمم و ماکزیمم تمام موارد را به ما میدهد.
خروجی نمونه:
با کمک یک اسکریپت میتونید تک تک موارد رو چک کنید و یا اگر max_duration بیشتر از زمان مورد نظر هست یک الرت کلی بدید برای بازه مورد نظر حالا در اسلک یا زبیکس . یک ایده دیگه هم اینه یک وب سرویس بنویسیم که اگر زمان از حدی بیشتر شد رسپانس کدی غیر از ۲۰۰ بده و از یک سایت مانیتورینگ رست کال کنیم و مثلا اگر غیر از ۲۰۰ گرفتیم الرت بده. امیدوارم با این پست و پست قبلی با قابلیتهای apm و الستیک بیشتر آشنا شده باشید.