מדריך הגדרת Datadog APM למעקב מבוזר

כשבקשת עגלה אורכת שניות במקום אלפיות שנייה, מציאת האשם בין מיקרוסרוויסים הופכת לסיפור בלשי. אנו מגדירים Datadog APM עבור distributed tracing כך שתוכלו לראות את המסלול של כל בקשה ולזהות במהירות צווארי בקבוק. הצוות שלנו מספק את הפרויקט במפתח מלא—מהתקנת agent ועד Unified Service Tagging והגדרת adaptive sampling—תוך הבטחת פעילות יציבה ותמיכה מתמשכת.

היכולות שלנו:

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

תארו לעצמכם: בקשת עגלה לוקחת 2 שניות במקום 200 אלפיות השנייה. ללא מעקב (Tracing), אתם מבזבזים יום במעבר בין שירותים. Datadog APM מראה ש-80% מהזמן מושקע בקריאות לשירות inventory-service — ומצביע מיד על שאילתת SQL לא אופטימלית. מתאם בין מעקבים ללוגים חושף את השגיאה המדויקת ללא מעבר בין מערכות, וחוסך עד 4 שעות ביום בניפוי באגים.

אנו מגדירים Datadog APM למעקב מבוזר בארכיטקטורות מיקרוסרוויסים. ללא מעקב תקין, כל עלייה של 500 אלפיות השנייה הופכת לסיפור בלשי. Datadog מציעה מעקב כחלק מפלטפורמה מאוחדת — אין צורך ב-Jaeger collector נפרד או Elasticsearch. סוכן Datadog מקבל מעקבים ושולח אותם לענן, שם הם מתואמים אוטומטית עם מדדים, לוגים ופרופילים. זהו היתרון המרכזי — וגם המגבלה המרכזית: אתם תלויים ב-SaaS ומשלמים על נפח נתונים. אבל עבור 80% מהחברות, זה משתלם בזכות הפחתת MTTR ב-60% וחיסכון של עד $2000 בחודש על תשתית לוגים עבור 10 מיקרוסרוויסים.

כיצד Datadog APM מפשט מעקב מיקרוסרוויסים

ההתקנה פשוטה: dd-agent כ-DaemonSet ב-Kubernetes מקבל מעקבים מיישומים על localhost:8126 (או דרך Unix socket), מאגד אותם, ושולח אותם ל-Datadog. יישומים עוברים אינסטרומנטציה באמצעות ספריית dd-trace. התקינו את סוכן Datadog ב-Kubernetes באמצעות Helm:

helm repo add datadog https://helm.datadoghq.com
helm install datadog datadog/datadog \
  --set datadog.apiKey=${DD_API_KEY} \
  --set datadog.apm.portEnabled=true \
  --set agents.containers.agent.env[0].name=DD_APM_ENABLED \
  --set agents.containers.agent.env[0].value=true

היישום צריך לדעת את כתובת הסוכן. השתמשו ב-Downward API:

env:
  - name: DD_AGENT_HOST
    valueFrom:
      fieldRef:
        fieldPath: status.hostIP
  - name: DD_TRACE_AGENT_PORT
    value: "8126"
  - name: DD_SERVICE
    value: "product-service"
  - name: DD_ENV
    value: "production"
  - name: DD_VERSION
    valueFrom:
      fieldRef:
        fieldPath: metadata.labels['tags.datadoghq.com/version']

ההתקנה אורכת 15 דקות עבור קלאסטר אחד. הסוכן מגלה שירותים אוטומטית באמצעות Service Discovery ומתחיל לקבל מעקבים.

מדוע Unified Service Tagging קריטי לתיאום

Unified Service Tagging הוא הבסיס לתיאום. שלושה תגים — env, service, version — חייבים להיות עקביים בין מדדים, לוגים ומעקבים. אז Datadog יכול לתאם אוטומטית פריסת גרסה עם שינויים בשיעור השגיאות במעקבים. הדרך הטובה ביותר להגדיר תגים היא באמצעות labels על Pods ב-Kubernetes:

---
labels:
  tags.datadoghq.com/env: production
  tags.datadoghq.com/service: product-service
  tags.datadoghq.com/version: "1.4.2"
---

סוכן Datadog קורא את ה-labels הללו ומחיל אותם אוטומטית על מעקבים — אין צורך באינסטרומנטציה ידנית. זה מבטיח שכאשר גרסה חדשה נפרסת, מפת השירותים (Service Map) מציגה מיד שינויים בהתנהגות.

אינסטרומנטציה: אוטומטית לעומת ידנית

עבור רוב הפריימוורקים, Datadog מספקת אינסטרומנטציה אוטומטית:只需 הוסיפו את הספרייה, והיא מתקנת לקוחות HTTP, DB ותורים סטנדרטיים. דוגמה עבור Node.js:

// Должен быть первым импортом
const tracer = require('dd-trace').init({
  service: 'product-service',
  env: process.env.DD_ENV,
  version: process.env.DD_VERSION,
  logInjection: true,
});

helm repo add datadog https://helm.datadoghq.com helm install datadog datadog/datadog \ --set datadog.apiKey=${DD_API_KEY} \ --set datadog.apm.portEnabled=true \ --set agents.containers.agent.env[0].name=DD_APM_ENABLED \ --set agents.containers.agent.env[0].value=true הוא חובה. בלעדיו, תיאום לוג-למעקב לא יעבוד. אינסטרומנטציה אוטומטית מכסה 20+ פריימוורקים, כולל Express, Django, Spring Boot, ואורכת 5-10 דקות לכל שירות.

קריטריון אינסטרומנטציה אוטומטית אינסטרומנטציה ידנית
זמן הגדרה דקות שעות
כיסוי HTTP, DB, תורים (לקוחות סטנדרטיים) כל דבר (spans מותאמים אישית)
גמישות מוגבל לפריימוורקים סטנדרטיים שליטה מלאה
שגיאות אוטומטי דורש קוד טיפול בשגיאות
המלצה לרוב הפרויקטים לפרוטוקולים לא סטנדרטיים

מפת שירותים ומדדי APM

Datadog בונה אוטומטית מפת שירותים (Service Map) ממעקבים — גרף תלות עם זמן אחזור ושיעור שגיאות על כל קצה. זה עובד ללא תצורה נוספת ומתעדכן כל 5 שניות. מדדי APM (trace.http.request.hits, trace.http.request.errors, trace.http.request.duration) נוצרים אוטומטית עם תגי service, resource ו-HTTP status. ניתן לבנות SLOs ישירות ב-Datadog ללא כתיבת כללי Prometheus. שמירת מדדים היא 15 חודשים, שמירת מעקבים היא 30 יום (ברירת מחדל).

השוואה: Datadog APM לעומת OpenTelemetry

קריטריון Datadog APM OpenTelemetry (Jaeger)
תשתית SaaS, אין צורך באחסון נדרש backend משל עצמכם (Jaeger, Tempo)
תיאום מדדים/לוגים מובנה (הכל בפלטפורמה אחת) כלים נפרדים
אינסטרומנטציה אוטומטית מובנה עבור 20+ פריימוורקים דרך SDK, דורש תצורה
דגימה (Sampling) אדפטיבית (אוטומטית) Head-based, דורש הגדרה
עלות מנוי לפי נפח נתונים חינם, אבל עלויות תשתית

Datadog APM מהיר פי 3-5 ליישום מאשר ערימת OpenTelemetry + Jaeger + Prometheus שנבנית עצמאית. הוא מפחית את זמן ההתאוששות הממוצע (MTTR) ב-60% וחוסך עד $2000 בחודש על תשתית לוגים באמצעות תיאום.

דגימה אדפטיבית ותצורה

Datadog משתמשת בדגימה אדפטיבית (Adaptive Sampling) בצד הסוכן: הסוכן מחליט איזה אחוז מעקבים לשלוח בהתבסס על הנפח הנוכחי. עקיפה ידנית באמצעות DD_TRACE_SAMPLE_RATE קובעת חלק קבוע (0.0–1.0). עבור מעקבי שגיאות, Datadog תמיד שומרת 100% — זה לא ניתן להגדרה. אנו ממליצים להשאיר מצב אדפטיבי: הוא מספק כיסוי טוב מבלי לחרוג מהתקציב. צרו קשר לבדיקה חינמית של מערכת המעקב שלכם — ננתח את הנפח הנוכחי ונמטב את הדגימה.

טעויות הגדרה נפוצותבעיה נפוצה היא היעדר תג version, מה שגורם למפת השירותים לא להראות שינויים בעת פריסה. השנייה היא שכחת המשתנה logInjection: true, מה ששובר את התיאום בין מעקב ללוג. השלישית היא שימוש בפורט סוכן שגוי: ברירת המחדל היא 8126, אבל אם הסוכן מוגדר ל-Unix socket, יש לציין את הנתיב.

התהליך שלנו

ההתקנה המלאה שלנו של Datadog APM כוללת את השלבים הבאים:

  • אנליטיקה: בדיקת הארכיטקטורה הנוכחית, זיהוי שירותים מרכזיים, הערכת נפח מעקבים (בדרך כלל 2-3 ימים).
  • עיצוב: תכנית תיוג UST, אסטרטגיית דגימה, אינטגרציה עם CI/CD לתיוג גרסאות אוטומטי.
  • יישום: התקנת dd-agent באמצעות Helm, אינסטרומנטציה של שירותים, הגדרת תיאום לוגים (2-4 ימים עבור 10 שירותים).
  • בדיקות: אימות מעקבים מקצה לקצה בסביבת פיתוח, אימות SLO, בדיקות עומס.
  • פריסה: העברה לייצור, ניטור מדדי APM, הגדרת התראות.

לוח זמנים ומסירה

התקנה בסיסית: dd-agent + אינסטרומנטציה אוטומטית עבור 3-5 שירותים אורכת 2-3 ימים. זה כולל תגי UST, תיאום לוגים, SLOs לשירותים ב-Datadog ותיעוד. עבור 10+ שירותים, זה אורך 5-7 ימים. אנו יכולים להעריך את הפרויקט שלכם — שלחו לנו תיאור של הארכיטקטורה שלכם.

מה כלול

  • התקנה ותצורה של סוכן Datadog ב-Kubernetes (באמצעות Helm).
  • אינסטרומנטציה של מיקרוסרוויסים (אוטומטית או ידנית).
  • הגדרת Unified Service Tagging.
  • תיאום לוג-למעקב (log injection).
  • יצירת SLOs לשירותים בהתבסס על מדדי APM.
  • תיעוד והדרכת צוות.

למהנדסים המוסמכים שלנו יש יותר מ-5 שנות ניסיון עם Datadog ו-Kubernetes, והם ביצעו 50+ פרויקטי ניטור. אנו מבטיחים SLA על היישום — מסירה מלאה בתוך לוח הזמנים המוסכם. בקשו ייעוץ לדיון בפרטים. למידע נוסף על מעקב מבוזר.