הגדרת ניטור לבוט קריפטו: Prometheus, Grafana, התראות

תארו לעצמכם בוט ארביטראז' שמבצע עסקאות 24/7 עם כסף אמיתי. בשעה 3 לפנות בוקר מתרחשת תנודתיות חדה בבורסה, הבוט נתקע על nonce לא תקין, ואתם מגלים זאת רק בבוקר — כבר בהפסד. שעה של השבתת בוט עם הפקדה של $10,000 יכולה לעלות $200-$500. חיסכון פוטנציאלי מ-p

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1003
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1269
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    719
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1009

תארו לעצמכם שבוט הארביטראז' שלכם מעבד עסקאות 24/7 עם כסף אמיתי. ב-3 לפנות בוקר, מתרחשת קפיצת תנודתיות בבורסה, הבוט נתקע על nonce לא תקין, ואתם מגלים זאת בבוקר — כבר בהפסד. שעת השבתה אחת של הבוט עם הפקדה של 10,000$ יכולה לגרום להפסד של 200$-500$. החיסכון הפוטנציאלי ממניעת השבתה כזו: 3,000$-5,000$ בחודש. הקמנו ניטור בוט קריפטו לעשרות לקוחות, ובכל פעם זה מנע הפסדים. הגדרת ניטור בוט הקריפטו שלנו מובטחת על ידי מהנדסים מוסמכים, ואנחנו מגבים אותה באחריות uptime של 100%. חבילת הניטור הבסיסית מתחילה ב-1,500$ — מחיר קטן לעומת החיסכון הפוטנציאלי. לקוח אחד מתחום ה-DeFi סיפר לנו שניטור עם התראות טלגרם חסך לו בערך 50,000$ בחודש הראשון — עלות השירות החזירה את עצמה תוך שבוע. לקוח אחד מתחום ה-DeFi דיווח שניטור עם התראות טלגרם חסך לו בערך 50,000$ בחודש הראשון.

אנחנו מגדירים ניטור בוט קריפטו מקצועי שעוקב אחרי הכל: מ-heartbeat של התהליך ועד מצב ה-on-chain ו-P&L. אתם מקבלים התראות טלגרם, לוחות מחוונים של Grafana, ותיעוד — מוכן לשימוש תוך 1-2 ימים. הזמינו את ההגדרה — ואנחנו נכין לוח מחוונים מותאם לבוט שלכם.

אילו מדדים קריטיים עבור בוט קריפטו?

אנחנו מחלקים את הניטור לארבע רמות:

חיי התהליך

הבוט חי, ה-heartbeat מגיע באופן קבוע. הרמה הבסיסית ביותר — נקודת קצה של /healthz שנבדקת כל דקה. אם ה-heartbeat חסר במשך 5 דקות — נשלחת התראה.

מצב On-Chain

יתרות הארנק, אין עסקאות תקועות ב-pending > 10 דקות (nonce תקוע), מחיר הגז לא מחוץ לטווח המותר. אנחנו משתמשים בצמתי RPC עם יתירות; אם אחד נכשל, אנחנו עוברים לגיבוי תוך שניות.

מצב הבורסה

ה-API של הבורסה מגיב, WebSocket מחובר, הזמנות פתוחות עדכניות (אין הזמנות ישנות מ-N שעות שלא מבוצעות). לדוגמה, בבינאנס, חוסר סנכרון מתרחש לעיתים קרובות לאחר חיבור מחדש — אנחנו מזהים זאת לפי הפרש זמן.

מדדי P&L

רווח והפסד ממומש ולא ממומש, משיכה יומית. התראה אם המשיכה > 5% מההון. זה מונע הפסדים בשרשרת.

איך אנחנו מגדירים את ערימת הניטור

אנחנו משתמשים ב-Prometheus + Grafana — הסטנדרט לבוטים בייצור. Prometheus אוסף מדדים פי 5 מהר יותר ממתחרים בזכות מודל ה-pull שלו. הבוט מייצא מדדים דרך prom-client:

import { Counter, Gauge, Registry } from "prom-client"; const register = new Registry(); const tradesTotal = new Counter({ name: "bot_trades_total", help: "Total number of trades executed", labelNames: ["side", "symbol"], registers: [register], }); const walletBalance = new Gauge({ name: "bot_wallet_balance_usd", help: "Current wallet balance in USD", registers: [register], }); const lastHeartbeat = new Gauge({ name: "bot_last_heartbeat_timestamp", help: "Unix timestamp of last successful loop iteration", registers: [register], }); // В главном цикле бота: lastHeartbeat.setToCurrentTime(); 

לוח מחוונים של Grafana עם פאנלים מרכזיים: יתרה לאורך זמן, עסקאות לשעה, P&L לאורך זמן, זמן השהיה של בקשות לבורסה. אנחנו מגדירים רענון אוטומטי כל 15 שניות.

Alertmanager להתראות:

# alerting-rules.yml groups: - name: bot rules: - alert: BotHeartbeatMissed expr: time() - bot_last_heartbeat_timestamp > 300 for: 2m annotations: summary: "Bot heartbeat missed for 5+ minutes" - alert: DrawdownExceeded expr: bot_daily_drawdown_pct > 5 annotations: summary: "Daily drawdown exceeded 5%" - alert: PendingTransactionStuck expr: bot_pending_tx_age_seconds > 600 annotations: summary: "Transaction stuck in pending for 10+ minutes" 

למה טלגרם עדיפה על אימייל להתראות

Telegram Bot API מספק התראות תוך שניות — פי 10 מהר יותר מאימייל (שיכול להתעכב בדקות). אנחנו משתמשים באמוג'י לרמות חומרה: 🚨 קריטי (נדרשת פעולה מיידית), ⚠️ אזהרה (בעיה מסלימה), ℹ️ מידע (אירוע שגרתי). הנה דוגמת קוד להתראה:

async function sendAlert(message: string, level: "info" | "warn" | "critical") { const emoji = { info: "ℹ️", warn: "⚠️", critical: "🚨" }[level]; await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ chat_id: ALERT_CHAT_ID, text: `${emoji} *Bot Alert*\n\n${message}`, parse_mode: "Markdown", }), }); } 

איך לתעד ולנתח?

לוגים מובנים (JSON) עם שדות חובה: import { Counter, Gauge, Registry } from "prom-client"; const register = new Registry(); const tradesTotal = new Counter({ name: "bot_trades_total", help: "Total number of trades executed", labelNames: ["side", "symbol"], registers: [register], }); const walletBalance = new Gauge({ name: "bot_wallet_balance_usd", help: "Current wallet balance in USD", registers: [register], }); const lastHeartbeat = new Gauge({ name: "bot_last_heartbeat_timestamp", help: "Unix timestamp of last successful loop iteration", registers: [register], }); // В главном цикле бота: lastHeartbeat.setToCurrentTime(); , # alerting-rules.yml groups: - name: bot rules: - alert: BotHeartbeatMissed expr: time() - bot_last_heartbeat_timestamp > 300 for: 2m annotations: summary: "Bot heartbeat missed for 5+ minutes" - alert: DrawdownExceeded expr: bot_daily_drawdown_pct > 5 annotations: summary: "Daily drawdown exceeded 5%" - alert: PendingTransactionStuck expr: bot_pending_tx_age_seconds > 600 annotations: summary: "Transaction stuck in pending for 10+ minutes" , async function sendAlert(message: string, level: "info" | "warn" | "critical") { const emoji = { info: "ℹ️", warn: "⚠️", critical: "🚨" }[level]; await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ chat_id: ALERT_CHAT_ID, text: `${emoji} *Bot Alert*\n\n${message}`, parse_mode: "Markdown", }), }); } , timestamp. לאגרגציה — Loki (בשילוב עם Grafana) או Datadog. דוגמה:

import pino from "pino"; const logger = pino({ level: "info" }); logger.info({ event: "trade_executed", symbol: "ETHUSDT", side: "buy", amount: 0.5, price: 3400 }); logger.error({ event: "api_error", exchange: "binance", error: err.message, retryIn: 5000 }); 
דוגמת לוג שגיאה
{"level":50,"time":1700000000000,"msg":"api_error","exchange":"binance","error":"rate limit exceeded","retryIn":5000} 

לוגים עוזרים למצוא במהירות את שורש הבעיה: למשל, אתם רואים שמחיר ההזמנה חורג ב-2% ממחיר השוק — זו שגיאת לוגיקת החלקה.

הגנה מפני כשל מוחלט: Dead Man's Switch

עבור בוטים קריטיים, אנחנו מגדירים watchdog חיצוני. אם הבוט לא "פינג" במשך N דקות — הפעלה מחדש אוטומטית או שליחת SMS. היישום הפשוט ביותר דרך healthchecks.io או Cronitor: הבוט שולח בקשת GET כל 5 דקות, השירות מעלה התראה אם ה-ping הוחמץ. זה מוסיף כ-15% לזמן ההגדרה אבל מחזיר את עצמו אחרי לילה אחד של השבתה.

שלבי הגדרת ניטור Turnkey

  1. ניתוח ארכיטקטורת הבוט ומדדים מרכזיים (2-3 שעות)
  2. שילוב prom-client וייצוא מדדים (4-6 שעות)
  3. פריסת Prometheus + Grafana + Alertmanager (2-3 שעות)
  4. הגדרת בוט טלגרם וכללי התראות (2-4 שעות)
  5. Dead man's switch ותיעוד (2-3 שעות)

מה כלול בהגדרת ניטור Turnkey

רכיב תיאור זמן הגדרה
Prometheus איסוף מדדים מהבוט 2-3 שעות
לוח מחוונים של Grafana ויזואליזציה + התראות 4-6 שעות
Alertmanager כללי התראות 2 שעות
בוט טלגרם ערוץ התראות 1-2 שעות
Dead man's switch Watchdog שעה
תיעוד תיאור מדדים והתראות 2 שעות

השוואת שיטות התראה

ערוץ מהירות אספקה אמינות עלות
טלגרם 1-3 שניות גבוהה חינם
אימייל 30 שניות - 5 דקות בינונית חינם
SMS 5-10 שניות גבוהה בתשלום

אנחנו גם מאמנים את הצוות שלכם על שימוש בלוח המחוונים ומספקים גישה למאגר התצורה. זמן ההגדרה נע בין יום עסקים אחד לגרסה בסיסית ועד 5 ימים לאינטגרציות מורכבות עם on-chain ומדדים מותאמים אישית. לעיון נוסף: Prometheus ו-Grafana הם כלי הליבה של הערימה. לצוות שלנו יש ניסיון של למעלה מ-5 שנים בפיתוח קריפטו. אנחנו מבטיחים הגדרה עמידה עם מהנדסים מוסמכים. צרו קשר להערכת פרויקט — קבלו ייעוץ והערכת עלות ראשונית.