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

אתגרים ייחודיים של מחשוב ללא Serverless Computing

פונקציות ללא שרת הן חסרות מצב ואפסמרמליות. פונקציה של AWS Lambda עשויה לרוץ עבור כמה מאות אלפי שניות, ואז להיעלם.טבע טרנסי הופך את זה קשה לצבור מדדים על פני ייעודים, במיוחד כאשר פונקציות מופעלות על ידי אירועים ממקורות מרובים.סביבת הביצוע משותפת גם, כלומר מתחיל קר - העיכוב כאשר פונקציה חדשה עולה - יכול להציג לא צפוי שרת ניטור, אשר מסתמך על תהליכים ארוכים ולא קבוע, פשוט להחיל תהליכים קבועים.

יתר על כן, אדריכלות ללא שרת לעתים קרובות כרוך שירותים קטנים, מזוג באופן חופשי.לפרק עסקה מעבר ל- API Gateway, Lambda, DynamoDB ו-Step function דורשות כלים מבוזרים.ללא לוח נתונים מגובש, מהנדסים מבזבזים זמן לקפוץ בין ממשקי ניטור נפרדים. A מסדיר מותאם אישית פותרת זאת על ידי משיכת מדדים משירותי ענן מרובים, כלי ניטור של צד שלישי, ויישומים לתוך מבט אחד משותף.

למה ג'נרי דשורד קצר

ספקי ענן כמו AWS, Azure ו-Google Cloud מציעים לוחות ניטור שנבנו מראש עבור השירותים ללא השרתים שלהם.לדוגמה, AWS CloudWatch מספק לוח מחוונים למודה עם סעיפים ייעודיים, שיעורי שגיאה, ו- 0% משך השימוש עבור בדיקת בריאות מהירה, לוחות נתונים גנריים אלה יש כמה מגבלות:

  • (FLT:0) להקשר בין שירות בין-חלקי: FIRLT:1) בקשת משתמש אחת עשויה לכלול את שער ה- API, Lambda, SQS, ו-DudmoDB.
  • (ב) ,0) ,ההתאמה אישית: לא ניתן לסנן בקלות על ידי תגים מותאמים אישית (למשל, סביבה, צוות, דגל תכונה) או ליצור מדדים מורכבים.
  • (FLT:0) ללא שילוב עם כלים חיצוניים: FLT:1ir ייתכן שיהיה עליך לקשור מדדי ענן עם נתוני ביצועי יישומים מכלי APM או יומנים של אגרורגטור מרכזי.
  • (FLT:0) , 000 מהירויות של קיבולת: ההרחבה של ההרחבה: ריצוף 1 (Stands Standard) מראה לעתים קרובות מצטברים לאורך זמן חלונות ארוכים, מסתירה ספייקטים קצרים או בעיות התחלה קרות.

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

ראשי תיבות של כל לוח שיניים ללא Serverless Dashboard Should Track

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

  • (FLT:0) Invocation Count and concurrency:FLT:1) מספר לך כמה עומס הפונקציות שלך להתמודד עם.
  • (FLT:0) סוגי שגיאות וטעויות: FIRLT:1) לעקוב אחר כל 4xx ו 5xx תשובות, תהלוכות זמן, ו- נזלת שגיאות על ידי גרסת תפקוד וריצה זמן לבודד תוקפנות.
  • (p50, p95, p99): 0Duration%iles (p50, p95, p99): זמן ההוצאה להורג של 1FIRLT משפיע ישירות על חוויית המשתמש ועלות (מאחר שאתה משלם למשך זמן) עולה p99 פעמים לעתים קרובות מסמן בעיה קוד או תלות במורד הזרם איטי.
  • (FLT:0) שיעור ההתחלה וההירות: ראטאלף:1 מתחיל להשפיע על חוויית המשתמש.עקוב אחר אחוז הייעודים הקרים וההירות הנוספת שהם מציגים.
  • (ב) כאשר קונסולת הסעיפים:0) , כאשר קונסולת ה- 1 (ה) עולה על הגבול השמור, פונקציות מוטעות.
  • (FLT:0) לייעוד (אופציונלי אך מומלץ): FLT 1 שילוב ספירת ייעוד, משך זמן והגדרות זיכרון נותן לך עלות מוערכת לביצוע.
  • (FLT:0) מדדי עסקי:Custom:FreaLT:1 לדוגמה, מספר הזמנות מעובדות, עדשות מגע משתמשים או שינויים בדימויים. Embedd Application-level כדי לחבר ביצועים טכניים לתוצאות עסקיות.

בניית בלוקים של חיישן מעקב מותאם אישית

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

איסוף נתונים

פונקציות Serverless פולטות מדדים ולוגים באמצעות שירותי ניטור מקומיים של ספק הענן (CloudWatch, Azure Monitor, Google Cloud Monitoring) בנוסף, ייתכן שתרצה להפעיל את הפונקציות שלך כדי פולטים מדדים מותאמים אישית באמצעות ספק SDKs או ספריות קוד פתוח.לדוגמה, ב- Node.js Lambda, תוכל להשתמש ב-FLT:0 כדי לשלוח פילטרים מותאם אישית של CloudWatchs באופן Syncs, לדוגמה, כגון ספקי נתונים מרובים, או שימוש ב-Prop.

אחסון וסידור

מסדי נתונים של זמן הם הבחירה הטבעית של מדדי ניטור (FLT:0.10.10.10.2015PrometheusphFLT:203FLT 3: 3) הוא אופציה קוד פתוח פופולרי שעובד היטב עם השרת ללא השרת אם אתה להגדיר קצה מרחוק לכתוב או להשתמש בשירות Promeus מנוהל של ספק הענן שלך.

ויזואליזציה

שכבת הויזואליזציה צורכת נתונים ממסד הנתונים של הזמן והופכת את המחוונים האינטראקטיביים (FLT:0reaFLT:1GrafanaphanaphFLT:2 ⁇ FLT:3) הוא תקן דה- Facto עבור זה, תומך Prometheus, CloudWatch, Allastvis, ועשרות מקורות נתונים אחרים.

התראה

לוחות דשטוש אינם רק לצפייה פסיבית; הם חייבים לעורר הודעות כאשר מדדים חוצים סף מוגדר מראש. הן Prometheus ו Grafana נבנות-באזהרות מנועי.קבע התראות לשיעורי שגיאות גבוהים, עצלות אטומית, אחוזי התחלה גבוהים, ותקרבות לגבולות מסחר.

בחירת הכלים הנכונים עבור לוח הבקרה שלך

הנוף הכלים למעקב ללא שרת הוא רחב.בחירה שלך תלויה בתשתיות קיימות, מומחיות צוות, ותקציב.כאן הם השילובים הנפוצים ביותר:

  • (FLT:0Grafana + Prometheus + CloudWatch היצואer:FLT:1 ערימה קוד פתוח שנותנת לך שליטה מלאה.הגדרה של יצוא CloudWatch כדי למשוך את Lambda מטריטוס ל Prometheus, ולאחר מכן הדמיה ב Grafana.ערימה זו עובדת היטב עבור צוותים שכבר מפעילים Kubernetes או יש ניסיון.
  • (ב) ⁇ :0) ,5 ; ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (FLT:0) New Relic:FLT:1 דומה ל-Datadog, עם כלי שרת חזק וBuilder לוח מחוונים גמיש.מודול ניטור השרת שלה באופן אוטומטי מגלה פונקציות וממפות אותם לשירותים.
  • (FLT:0Cloud ספק Native + צד שלישי הדמיה: ההרחבה 1 לדוגמה, באמצעות AWS CloudWatchs Logs Insights forשאות ו-CloudWatch של Grafana עבור הדמיה.גישה זו נמנעת תשלום עבור חנות מדדים נפרדים אבל עשוי להיות פחות מבוצע בקנה מידה.
  • (FLT:0)Serverless Framework Dashboard: FLT:1 אם אתה משתמש ב- Serverless Framework, לוח המחוונים בנוי שלה מספק דרך פשוטה לפקח על ייעוד, שגיאות, ואביזרים.

Step-by-Step Guide: בניית לוח בקרה מותאם אישית עם Grafana ו Prometheus

מדריך זה עובר באמצעות יצירת לוח בקרה מלא של AWS Lambda באמצעות Grafana ו Prometheus עם משווק CloudWatch.אותה גישה ניתן להתאים ל- Azure Functions או Google Cloud Functions.

1.הגדירו את הפרומתאוס ואת ה-CloudWatch Launcher

(הופנה מהדף שירות מנוהל כמו אמזון לניהול שירות עבור Prometheus) ולאחר מכן להפעיל את ה-FLT:1, אשר מגרד מדדי CloudWatch וחושף אותם בפורמט Prometheus.com, כדי לאסוף את המייצא כדי לאסוף מדדי Lambda מפתח:2,FLT:2,FLT 3:,FLT:4, FLT:4, FLT:5, לדוגמה, תצורה של 6:

metrics:
 - aws_namespace: AWS/Lambda
 aws_metric_name: Invocations
 aws_dimensions: [FunctionName]
 aws_statistics: [Sum]
 - aws_namespace: AWS/Lambda
 aws_metric_name: Duration
 aws_dimensions: [FunctionName]
 aws_statistics: [Average, p95, p99]

לאחר שהיצוא פועל, הוא חושף נקודת מוצא של 8.

2.הגדיר פרומתאוס כדי לסעוד את היצואן

הוסף עבודה מגרדת בתיק שלך (FLT:9 ), אשר מצביע על נקודת הקצה של היצואן.קבע מרווח של 30-60 שניות - מדדים ללא משמר לעתים קרובות מצטברים במרווחים של דקות אחת על ידי CloudWatch, כך שגרד מהיר יותר הוא מיותר.

3.כונן וחיבור Grafana

Deploy Grafana (ענן או על-premises) ולהוסיף Prometheus כמקור נתונים.ספק את כתובת שרת Prometheus. Test את החיבור כדי להבטיח metrics הם זורמת.

4.ליצור לוח דשינט לבריאות תפקודית

ב Grafana, ליצור לוח נתונים חדש ולהתחיל להוסיף לוחות.עבור פאנל סקירה, השתמש ב- PromQL שאילתה 10 כדי להראות את שיעור הביטול הכולל.לוסיף פאנל עבור שיעור שגיאה: FLT:11 השתמש בלוח זמנים עם סף צבע (ירוק מתחת 1%, צהוב בין 1% ל-5%, אדום מעל 5%).

הוסף פאנל עבור משך Percentiles

משך הזמן של 0% באמצעות סטטיסטיקות של FLT:12 אם אתה מייצא מדד הוטוגרם. אחרת, השתמש ב-p95 של משווק CloudWatcher. להציג את p50, p95, ו-99 כסדרה נפרדת על גרף אחד.הפאנל הזה עוזר לך לזהות השפלה מיד.

יצירת לוח פתוח פתוח קר

אם אתה מייצא מדד מותאם אישית עבור התחלה קרה (באמצעות מכשיר הפונקציה שלך כדי להקליט ערך של 1 על התחלה קרה ו 0 על חם), אתה יכול לחשב את שיעור ההתחלה הקר: FLT:13 להשתמש בלוח מד כדי להראות את השיעור. לחלופין, למעט התחלה קרה משדה FLT:14 ב יומני ענן , אבל זה דורש תוספת של parsing.

7.התראות בגרפן

Grafana v8 ומאוחר יותר יש מערכת התראה מאוחדת. צור חוק התראה לשיעורי שגיאות גבוהים (למשל, >5% מעל 5 דקות) ומשך p99 גבוה (למשל, >3 שניות) , להעביר ערוצי הודעות עבור Slack ו-mail. לבדוק את האזהרה עם מדגם כדי להבטיח את האש נכונה.

תכונות מתקדמות: מעבר ל-Main Metrics

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

קידוד לוגי ומסובכים

נושאים רבים ללא שרת דורשים להסתכל על יומני לצד מדדים.לדוגמה, עלייה בשגיאות עלולה להיגרם על ידי מטען ספציפי של קלט.הוספת לוח יומני ללוח המחוונים Grafana באמצעות מקור נתונים כגון Loki (עבור Prometheus) או אלסטיסוויק. ליצור מתאם המאפשר לך ללחוץ על ספייקט מדד ולראות את הערכים הקשורים בהקשר.

גילוי אוטומטי עם Machine Learning

סף סטטי פועל לדפוסים ידועים, אך תנועה ללא שרת יכולה להיות עונתית או מפוצץ.שימוש בשירותים כמו FLT:0AWS CloudWatch Anomaly DetectionFLT:1 או כלי ניטור ייעודי מבוסס ML כדי לזהות התנהגות יוצאת דופן.You יכול להאכיל את מדדי Prometheus לתוך מנוע זיהוי אנומלי ולאחר מכן לעמוד על חריגות כאזהרות על לוח המחוונים שלך.

עקבו אחרי hashtag Dashboards

עלויות ללא שרת מונעות על ידי ייעוד, משך, הקצאת זיכרון. ליצור לוח נתונים נפרד מראה עלות לתפקוד, עלות לכל סביבה, והערכה של הוצאות חודשיות.שלב פרמטרים עם מדדי השימוש של Lambda. לדוגמה, השתמש מדדי ה-FLT:15 מ-AWS / בילינג ותואם אותו עם סיכומים פונקציונליים.זה עוזר לזהות פונקציות יקרות שעשויות צריך זיכרון או אופטימיזציה של קוד.

פאנלים עסקיים סטנדרטיים

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

Best Practices for Onמתמשכים Dashboard

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

  • (ב) [ה]התערות: [ה], לאחר אירוע ייצור, בדוק אם לוח המחוונים שלך היו עומדים על שורש הסיבה מהר יותר.
  • (FLT:0) שמור אותו ממוקד: FLT:1; איור לוח נתונים קלוטר עם עשרות לוחות קשה לקרוא במהלך חירום. Aim for 5-10 לוחות לתצוגה, ומדיקים תפעוליים נפרדים ממדדי עסקים לכרטיסיות או לוחות נתונים שונים.
  • (ב) ויקרא י"א: "ה', ב'"ב, ב'"ב' (ב)" (ב"ב)" (ב)"ב)"ב[[1924]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]]
  • (FLT:0) יצירת לוח המחוונים של ה-Gate:FLT:1ir השתמש בכלים של תשתיות כמו Terraform או ה- Grafana API כדי לספק לוחות נתונים לצד הפריסות ללא השרתים שלך.זה מבטיח כי לוחות נתונים הם מבוקרים וניתן לנסח מחדש.
  • (FLT:0)Set up אוטומטית review:FLT:1cio תזמון ביקורות רבעון עם הצוות כדי לגרות לוחות מיושנים ולהוסיף חדשים. דשורדים שאף אחד לא מסתכל עליהם הם נטל תחזוקה - אם המדד אינו ניתן לפעול, להסיר אותו.
  • (FLT:0) לחנך את הצוות: FLT:1ua לוודא שכל המהנדסים יודעים כיצד לפרש את המחוונים וכיצד למקד את הלוגים כאשר הם מזהים אנומליה.

מסקנה

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