GH GambleHub

עקבות מבוזרות

עקבות מבוזרות

1) מדוע ומהו

איתור מבוזר הוא דרך לקשר בין פעולות לאורך כל נתיב הבקשה: front ach API patheway # microservices _ microsurvices _ packs # backers _ jabs/pyplines.
התוצאה היא עקבות של מרחב (span), שבו כל מרחב תופס את פעולת הרכיב עם תכונות, אירועים ומעמד. זה מאיץ את RCA, עוזר לשמור על SLOs ומפחית את MTR.

מטרות מפתח:
  • ראות של נתיב קריטי וצווארי בקבוק.
  • מתאם של תסמינים (metrics) עם סיבות (תוחלת) ופרטים (יומנים).
  • אנליטיקה של מגשים מחדש, תורים, DLQ, מאווררים, ”מסורים” של איחור.

2) מודל מידע עקבות

trace - call graph עם "trace _ id'.
Span - ראשי תיבות של: ”שם”, ”סוג” (Server/Client/Productor/CONSER/INTERMIAL), ”התחלה/סוף”, ”סטטוס”, ”תכונות”, ”אירועים”, ”קישורים [ ]”.
תכונות - מפתח ערך (מסלול, db. מערכת, הודעות. מערכת, ענן. אזור, וכו ').
אירועים - תגיות מיידיות בתוך התוחלת (לדוגמה, ”retry”, ”cache _ miss”).
Span Links - קשרים מחוץ ל ”הורה-ילד” (batchi, retrai, fund-in/out).
משאב - תהליך/שירות metadata ("שירות. שם, גרסה, סביבה).

3) הקשר וסובלנות

3. 1 הקשר איתור W3C

כותרים:
  • 'tracepart':' גרסה-traceid-spanid-דגלים '(דגלים כוללים דגימה).
  • 'עקבות': ספק-מדינה ספציפית (מינימום).
  • מטען - מפתחות להקשר עסקי (מוגבל, ללא סודות מח "ש).

3. 2 זריקה של הקשר

HTTP: "tracepart'/" tracestate"; GRPC: metadata; שקע רשת: בעת שדרוג ובהודעות;

הודעות: בכותרות (Kafka/NATS/RabbitMQ) - שמור את ההקשר המקורי עם יצרן והעברה עם CONSUMER.
בסיסים: אל ”תישא” את ההקשר - אנו רושמים תכונות לתוחלת (שאילתות, שורות, db. ), אבל לא את הערכים.

4) דוגמית: איך לא להתרושש

דגימת ראש: הסתברות/על ידי כללים (מסלול, דייר, סוף נקודה).
דגימת זנב (על האספן): שמירת שבילים ”מעניינים” - שגיאות, p95/p99 ארוכות, מסלולים נדירים.
מופת: Histogram metrics מאחסן התייחסויות ל ־ "trace _ id' ספציפי.
המלצה: שילוב - ראש 5-20% + כללי זנב 100% עבור 5xx/timeout/p99.

5) תכונות וטקסונומיה (מינימום נדרש)

כללי:
  • 'service. שם, 'שירות. גרסה ”, פריסה”. סביבה ”, ענן”. אזור ", http. מסלול ", http. שיטה ", http. status_code', 'db. מערכת ", 'db. הצהרה '(מקוצר/ללא נתונים),' הודעות. מערכת ',' הודעות. מבצע ',' עמית. שירות ”,” נטו. עמיתים. שם, 'דייר. תעודת זהות, בקשה. תעודה מזהה.

תוויות עסקיות: מסודרות, ללא מח "ש. דוגמה: "סדר. חלק ”, תוכנית”. רובד ".

6) תסריטים אסינכרונים, תורים וקבוצות

יצרן = צרכן: צור יצרן מרווח עם הקשר; בהודעה - כותרות (טרקפרנט, מטען). הצרכן מתחיל לשרת/צרכן-מרווח מקישור ליצרן (אם אין היררכיה קפדנית).
מאוורר-out: קלט אחד - תפוקות רבות = תוחלת ילד או קישורים.
Batch: צרכן קורא פרץ של N הודעות = תוחלת אחת עם 'events' עבור כל avents Id או' links' עבור N הקשרים נפרדים.
DLQ: הספה נפרדת. Diq. לפרסם "סיבה לספור.
רטריי: "אירוע: נסה מחדש" + "retry. הרוזן "מאפיין; עדיף מוטת ילד חדשה לנסות.

7) אינטגרציה עם יומנים ומדדים

אנו כותבים לוגים JSON עם 'trace _ id'/' span _ id'.
מדדים של RED/USE מכילים מופת.
עקבות מייצרות אותות טכניים (שגיאות תלות) ואותות עסקיים (המרה) באמצעות אירועים.

8) ביצועים ועלות

דגימת אירועים וחנק.
צמצום קרדינליות של תכונות (no 'user _ id '/' session _ id' as label!).
דחיסה/חבטה על ידי היצואן; לייצא גבולות זמן.
אחסון: חם 1-7 ימים, ואז - יחידות/רק ”בעיה” שבילים.
קטגוריות של הוצאות: אספנים, אינדקסים, אחסון, יציאה.

9) ביטחון ופרטיות

בטרנזיט: TLS 1. 3/mTLS kollektor↔agenty; במנוחה: הצפנה, מפתחות פרטיים (ראה ”הצפנה במעבר/במנוחה”).
PII וסודות: לא לכתוב בתכונות/אירועים; טוקניזציה/מיסוך על המפיק.
ריבוי דירות: "דייר. Id' כתווית משאב ובידוד של חללים, קריאת מדיניות; גישת שמירת עקבות (ראו ביקורת ויומנים לא מותאמים).

10) תוכניות יישום (התייחסות)

10. 1 OpenTelemetry SDK (פסאודוקודה)

python from opentelemetry import trace from opentelemetry. sdk. trace import TracerProvider from opentelemetry. sdk. resources import Resource from opentelemetry. sdk. trace. export import BatchSpanProcessor from opentelemetry. exporter. otlp. proto. grpc. trace_exporter import OTLPSpanExporter

provider = TracerProvider(resource=Resource. create({
"service. name":"checkout","service. version":"1. 12. 0","deployment. environment":"prod"
}))
provider. add_span_processor(BatchSpanProcessor(OTLPSpanExporter(endpoint="otel-collector:4317", insecure=True)))
trace. set_tracer_provider(provider)
tr = trace. get_tracer("checkout")

with tr. start_as_current_span("POST /pay", attributes={
"http. route":"/pay","http. method":"POST","tenant. id":"t-42"
}):
business logic, external API call and pass DB

10. 2 Otel אספן - דגימת זנב (שבר)

yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_codes: [ERROR]
- type: latency threshold_ms: 900
- type: probabilistic sampling_percentage: 10 exporters:
otlphttp: { endpoint: http://trace-backend:4318 }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tailsampling]
exporters: [otlphttp]

10. 3 קפקא - העברת הקשר (קונספט)

מפיק: הוסף כותרות ”טרקפרנט”, ”מטען”.
צרכן: אם ההודעה מתחילה זרם חדש - תוחלת שרת/צרכן חדשה מקישור להקשר מכותרות.

11) Data/ETL ETML

עבור צינורות: תוחלת על אצווה/מחיצה עם 'dataset. כד ',' לרוץ. זיהוי, שורות. In/out ',' רעננות. לג '.
עבור ML: תוחלת של אימון/הסקה, גרסת מודל, latency, חנות תכונה.
קישור לשושלת: 'לרוץ. האם 'Dataset'. הרשה לך לקפוץ מן העקבות לגרף מקור הנתונים.

12) עקבות פלטפורמת SLO

בליעת זמינות: 99. 9%

עיכוב לאינדקס: balland 60 s p95

כיסוי דגימת ראש: 5-10% ממסלולי המפתח

100% שמירת שבילים עם סטטוס IRI ועם latency> סף לפי ”נתיבים קריטיים”

התראות על מצע: גידול של טיפות, זמן ייצוא, פיגור באינדקסר, חימום יתר של הקרדינליות.

13) בדיקות ואימות

חוזה עקבות ב CI: נוכחות של תוחלת על נקודות קצה מפתח, תכונות חובה, נכון "tracepart' זבובים דרך השער/פרוקסי.
דוגמיות רום סינתטי: לאסוף שבילים מבחוץ.
כאוס/תקריות: ניתוק תלות, בדיקה שדגימת הזנב ”קולטת” טעויות.
עשן במכירות: לאחר השחרור - ”האם יש תוחלת” ועקבות למופת.

14) רשימות בדיקה

לפני המכירה

[ ] W3C Trace מושלך לכל עבר; להודעות - כותרות.
[ ] דוגמית ראש בסיסית מופעלת; כללי הזנב של 5xx/p99 מוגדרים.

התכונות המנדטוריות [ ] הן תוואי, שיטה, מעמד, שירות. גרסה, דיירת. זיהוי.

[ ] JSON יומנים עם 'trace _ id'/' span _ id', מדדים עם מופת.
[ ] חיטוי PII; הצפנה על מדיניות Go/במנוחה גישה.
[ ] Dashboards: ”דרך קריטית”, ”שגיאות תלות”, ”retras/timeouts”.

מבצע

[ סקירה חודשית ] של סמכויות; מכסות.
[ ] כוונון זנב דגימה על ידי SLO (פחות רעש, כל ”חם” - בדגימה).
[ ] אימון RCAs עם Transfetric _ extemplar = עקבות = יומנים.
[ ] בודק תורים, תורים, עבודות ETL.

15) runbook 'office

RCA: p99 עלה על/שלם

1. פתח את לוח המחוונים האדום; מ בן p99 ללכת על מופת לאיתור.
2. מצא מרווח-לקוח ”צר” (לדוגמה, שער. שיחה '), לבדוק מחדש. לספור, פסק זמן.
3. השווה גרסאות שירות/תלויות, אזור/אזור.
4. אפשר הידרדרות (הגבלת תגובת מטמון/RPS), הודע לבעלי התלות.
5. לאחר התיקון - RCA וכרטיסי אופטימיזציה.

נחשול DLQ

1. עקבות מסנן על ידי 'מסרה. Diq. לפרסם '.
2. בדוק את הסיבות (אירועים), להתאים עם השחרור.
3. להתחיל בעיבוד חוזר, להגביר זמנית את הזמן עבור CONSUMER, להודיע לבעלים במורד הזרם.

16) שגיאות תכופות

אין תחזית הקשר דרך שערים/ברוקרים. פתרון: תוכנות בינוניות/בין-ספריות, ספריות בודדות.
כל השבילים 100%. דגימת זנב יקרה וחסרת טעם.
יומנים ללא "trace _ id'. המתאם = MTTR laught אבד.
מח "ש בתכונות. מסכה/אסימון; שמור רק את ההקשר הטכני.
”אילם” דקירות רקע. הוסף תוספות לקבץ/מחיצה ו 'רון. תעודה מזהה.
שם אי התאמה. הכנס מילון של תוחלת ומפתחות מאפיינים.

17) FAQ

קיו: האם ראש או זנב מדגימים טוב יותר? ‏

א ': שילוב. הראש נותן את שכבת הבסיס, הזנב מבטיח שימור של חריגות/שגיאות.

קיו: איך אני עוקב אחרי קפקא ללא היררכיה נוקשה?
A: השתמש בקישורים בין יצרן לצרכן; הקשר - בכותרות.

Q: מה לעשות עם SQL רגיש?
A: 'db. הצהרה מקוצרת/מנורמלת (ללא ערכים), או 'db. מבצע '+ ממדים/זמן.

קיו: איך אתה מתייחס למדדים עסקיים?
A: הוספת תכונות של התחום ללא PII (תוכנית/מקטע), שימוש באירועים של ”שלבים עסקיים” בתוך התוחלת ועבור ממטרי המרה למופת.

חומרים קשורים:
  • ”יכולת תצפית: יומנים, מדדים, עקבות”
  • ”ביקורת ויומנים בלתי ניתנים לשינוי”
  • ”בהצפנת מעבר/במנוחה”
  • ”מקור נתונים (לינאז ')”
  • ”פרטיות בעיצוב (GDPR)”
  • ‏ ”ניהול סודי” ‏
Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.