הערה: כאשר תהליכי הגרידה שלך מעבדים מיליוני בקשות ביום, אתה עיוור ללא דשבורד. שגיאות מצטברות, פרוקסים נופלים, וייתכן שלא תדע על כך במשך שעה. דשבורד סטטיסטיקות גרידה פותר זאת: ראה את בריאות המערכת בזמן אמת, הגיב לכשלים תוך דקות, ובצע אופטימיזציה למהירות האיסוף. אנו בונים דשבורדים מותאמים אישית כאלה המותאמים למקורות הנתונים ולתשתית שלך. עם ניסיון של 5+ שנים בשוק ו-50+ פרויקטים מוצלחים, הניסיון שלנו מבטיח יציבות. קבל הערכת פרויקט תוך יום אחד. פנה אלינו לייעוץ כדי לדון במשימה שלך.
מדדים מרכזיים
| מדד | תיאור |
|---|---|
| אחוז הצלחה | אחוז הבקשות המוצלחות לאורך תקופה |
| בקשות/דקה | מהירות גרידה (בקשות לדקה) |
| פריטים/שעה | מהירות איסוף הנתונים |
| אחוז שגיאות | אחוז הבקשות עם שגיאות 4xx/5xx |
| בריאות פרוקסי | אחוז הפרוקסים התקינים במאגר |
| עומק תור | אורך תור ה-URL לגרידה |
| זמן תגובה ממוצע | זמן תגובה ממוצע של המקור |
פתרון לכשלי פרוקסי ומדדים קריטיים
תאר לעצמך: מאגר של 200 פרוקסים, 15% מהם נופלים מעת לעת. ללא ניטור, אתה מאבד עד 30% מהתפוקה. אנו מטמיעים את מדד בריאות הפרוקסי בדשבורד שלך: כאשר הוא יורד מתחת ל-95%, נשלחת התראה ל-Telegram. ניתוחים מראים שזמן ההתאוששות הממוצע יורד מ-40 ל-8 דקות. בנוסף, אנו מגדירים רוטציה אוטומטית של פרוקסים: כאשר הבריאות יורדת מתחת לסף, הפרוקסי מוסר מהמאגר והעומס שלו מופץ לכתובות תקינות. זה מפחית בקשות אבודות ב-20%. אנו גם עוקבים אחר זמן תגובה ושגיאות לכל פרוקסי, מה שמאפשר החלפה ממוקדת של כתובות IP בעייתיות. בפרויקט אחרון עבור אגרגטור מסחר אלקטרוני, זה הוריד את אחוז השגיאות הכולל מ-12% ל-3.5% בתוך השבוע הראשון. פנה למהנדסים שלנו כדי לדון במדדים שלך.
מתוך קבוצת המדדים, שים לב במיוחד לאחוז ההצלחה ולבריאות הפרוקסי. אחוז ההצלחה מצביע על שיעור התגובות המוצלחות—אם הוא יורד מתחת ל-90%, המקור חוסם בקשות או שהפרוקסים עמוסים. בריאות הפרוקסי עוקבת אחר תקינות כל פרוקסי: אם הבריאות יורדת, המערכת מסירה אוטומטית את הפרוקסי מהרוטציה. חשוב גם זמן התגובה הממוצע—עלייה חדה לעיתים קרובות מאותתת על בעיות רשת או עומס על השרת של המקור. אנו ממליצים להגדיר את הדשבורד כך שכל שלושת המדדים יוצגו במסך הראשי.
למה TimescaleDB למדדי גרידה?
עבור נתוני סדרות זמן, כלים ייעודיים עולים על PostgreSQL הסטנדרטי. TimescaleDB הוא הרחבה של PostgreSQL עם חלוקה אוטומטית לפי זמן. שאילתות עבור חתכים שבועיים או חודשיים רצות מהר גם עם 10 מיליון שורות. בפרויקט אחד, אחסנו 500 מיליון רשומות—הצבירה ארכה פחות משתי שניות. TimescaleDB תומך גם בדחיסת נתונים, מה שמפחית את גודל האחסון פי 5–10 ללא אובדן ביצועים. בהשוואה ל-PostgreSQL רגיל, TimescaleDB מהיר פי 10 עבור שאילתות סדרות זמן וחוסך 70% בעלויות האחסון.
# TimescaleDB (расширение PostgreSQL) import psycopg2 CREATE TABLE scraper_metrics ( time TIMESTAMPTZ NOT NULL DEFAULT NOW(), scraper_id INTEGER, requests_ok INTEGER DEFAULT 0, requests_fail INTEGER DEFAULT 0, items_scraped INTEGER DEFAULT 0, avg_resp_ms FLOAT, proxy_used TEXT ); SELECT create_hypertable('scraper_metrics', 'time'); CREATE INDEX ON scraper_metrics (scraper_id, time DESC); API וויזואליזציה
@app.get('/api/v1/stats/overview') async def get_overview(scraper_id: int, period: str = '24h'): interval = {'1h': '1 hour', '24h': '24 hours', '7d': '7 days'}[period] rows = await db.fetch(f''' SELECT time_bucket('5 minutes', time) AS bucket, SUM(requests_ok) AS ok, SUM(requests_fail) AS fail, SUM(items_scraped) AS items, AVG(avg_resp_ms) AS avg_ms FROM scraper_metrics WHERE scraper_id = $1 AND time > NOW() - INTERVAL '{interval}' GROUP BY bucket ORDER BY bucket ''', scraper_id) return { 'timeline': [dict(r) for r in rows], 'totals': { 'requests': sum(r['ok'] + r['fail'] for r in rows), 'success_rate': sum(r['ok'] for r in rows) / max(sum(r['ok'] + r['fail'] for r in rows), 1), 'items': sum(r['items'] for r in rows), } } import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts'; function MetricsChart({ data }: { data: TimelinePoint[] }) { return ( <ResponsiveContainer width="100%" height={300}> <LineChart data={data}> <XAxis dataKey="bucket" tickFormatter={d => format(new Date(d), 'HH:mm')} /> <YAxis /> <Tooltip /> <Line dataKey="ok" stroke="#22c55e" name="Успешных" strokeWidth={2} dot={false} /> <Line dataKey="fail" stroke="#ef4444" name="Ошибок" strokeWidth={2} dot={false} /> </LineChart> </ResponsiveContainer> ); } התראות והשוואת אחסון
דוגמה להגדרת התראה
סף אחוז הצלחה < 80% — התראה אוטומטית ל-Telegram עם פרטים: איזה פרוקסי או מקור נכשל. מותאם לתרחישים שלך. לדוגמה, ניתן להגדיר ספים שונים למקורות שונים או להוסיף הסלמה באמצעות דוא"ל לכשלים חוזרים.
| אחסון | ביצועים | מורכבות | מתאים ל | עלות לחודש (1TB) |
|---|---|---|---|---|
| TimescaleDB | גבוהים (חלוקה אוטומטית) | בינונית | סדרות זמן, עד 10M שורות/יום | $200 |
| InfluxDB | גבוהים מאוד | גבוהה יותר (מחסנית נפרדת) | נפחים גדולים מאוד | $500 |
| PostgreSQL | נמוכים (ללא הרחבות) | נמוכה | נפחים קטנים | $100 (אך איטי פי 10) |
איך אנו בונים את הדשבורד שלך: תהליך
- ניתוח — אנו לומדים את מקורות הנתונים ודרישות המדדים שלך. מזהים KPI קריטיים. מעריכים נפח נתונים ותדירות עדכון. מקיימים ראיונות עם הצוות שלך כדי לאתר צווארי בקבוק.
- עיצוב סכמה — בחירת כלים (TimescaleDB, FastAPI, React). עיצוב מבנה טבלאות ונקודות קצה של API. תכנון להרחבה עתידית.
- יישום API — כתיבת backend לאיסוף וצבירת מדדים. טיפול בעד 10,000 בקשות/שנייה. שימוש ב-async workers כדי למזער השהיה.
- Frontend — פיתוח ממשק עם גרפים והתראות. שימוש ב-Recharts לגרפים אינטראקטיביים. הוספת מסננים לפי זמן ו-scraper_id.
- בדיקות — בדיקת עומס עד 1000 בקשות/שנייה. תיקון צווארי בקבוק. ביצוע UAT עם הצוות שלך.
- פריסה — פריסה על השרת שלך או בענן. ניטור ביצועי הדשבורד. מתן הוראות תפעול.
מה כלול ולוחות זמנים
- תיעוד OpenAPI
- קוד מקור של הדשבורד (backend ו-frontend)
- מדריך פריסה
- הדרכת צוות (עד שעתיים)
- אחריות לקוד למשך 3 חודשים
דשבורד עם TimescaleDB, REST API וויזואליזציה ב-React: 5–8 ימי עבודה. אנו מעריכים את הפרויקט שלך תוך יום אחד. באמצעות הדשבורד שלנו, לקוחות מפחיתים עלויות השבתה בממוצע של $2,000 לחודש. פנה אלינו לייעוץ כדי לקבל הצעת ארכיטקטורה לעומס שלך. בקש הערכה מותאמת אישית תוך יום אחד—שלח לנו את הפרטים שלך.







