ניטור ביצועים וניהול זמינות הם מרכיבים חיוניים להבטחת הפעולה התקינה של יישומים ומערכות בסביבות מורכבות. עם הצורך הגובר בשירותים מהירים וזמינים, הכלי New Relic מציע פתרון מקיף לניטור ביצועים, ניתוח זמן תגובה וניהול זמינות של יישומים בזמן אמת. במאמר זה נלמד כיצד להשתמש ב-New Relic לניטור וניהול זמינות, כולל דוגמאות ושימושים מעשיים בכלי.
התקנה והגדרת New Relic
New Relic מספק מגוון רחב של כלים ושירותים לניטור ביצועים, המיועדים לפלטפורמות שונות כגון שרתי אינטרנט, מסדי נתונים, שירותי ענן, ואפליקציות מובייל. כדי להתחיל להשתמש ב-New Relic, יש להירשם לשירות ולהתקין את הסוכן המתאים לשרת או ליישום שלכם.
להלן הוראות ההתקנה עבור שרת לינוקס:
echo "deb [arch=amd64] https://download.newrelic.com/infrastructure_agent/linux/apt focal main" | sudo tee -a /etc/apt/sources.list.d/newrelic-infra.list
curl -fsSL https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install newrelic-infra -y
לאחר ההתקנה, יש להוסיף את מפתח הרישיון (License Key) שניתן לכם בעת ההרשמה ל-New Relic:
sudo systemctl start newrelic-infra
sudo systemctl enable newrelic-infra
הגדרת הסוכן תאפשר ל-New Relic לאסוף נתונים מהמערכת שלכם ולהציג אותם בממשק הניהול. תוכלו להתחיל לקבל נתונים בזמן אמת על ביצועי היישומים שלכם, כולל זמני תגובה, עומס על המערכת, ועוד.
ניטור ביצועים עם New Relic
השלב הבא הוא להגדיר את ניטור הביצועים של היישומים שלכם. New Relic מאפשר ניטור ביצועים ברמת היישום, מסד הנתונים והתשתית, ומספק דוחות מפורטים על זמני תגובה, כמות בקשות, אחוזי הצלחה ועוד.
לצורך ניטור יישום ווב ב-Node.js, לדוגמה, יש להתקין את חבילת ה-New Relic Node.js Agent:
npm install newrelic --save
לאחר מכן, יש להוסיף את הקוד הבא בתחילת קובץ היישום הראשי:
require('newrelic');
זהו. היישום שלכם כעת מנוטר על ידי New Relic, ותוכלו לראות את הנתונים הזורמים אל הממשק בזמן אמת. ניתן לצפות בגרפים המראים את זמן התגובה של כל בקשה, את מספר הבקשות בכל דקה, ואת המשאבים הנצרכים על ידי היישום.
ניהול זמינות עם New Relic
ניהול זמינות (Availability Management) הוא אחד מהיתרונות הגדולים של New Relic. הכלי מאפשר להגדיר התראות (Alerts) כאשר זמינות היישום נפגעת או כאשר הביצועים יורדים מתחת לסף שהגדרתם.
לדוגמה, ניתן להגדיר התראה שתשלח הודעה כאשר זמן התגובה של היישום עולה על 2 שניות:
nrql alert condition create \
--policy_id \
--account_id \
--name 'High Response Time' \
--nrql "SELECT average(duration) FROM Transaction WHERE appName = 'MyApp' FACET host SINCE 1 minute ago" \
--critical_threshold "above 2 for at least 5 minutes"
התראה זו תאפשר לכם לזהות בעיות ביצועים בזמן אמת ולטפל בהן במהירות. בנוסף, ניתן להגדיר התראות על עומס CPU, שימוש בזיכרון, וכדומה.
אנליזה וויזואליזציה של נתונים
New Relic מציעה יכולות אנליזה וויזואליזציה מתקדמות המאפשרות לנתח את הביצועים של היישומים שלכם בצורה עמוקה ומדויקת. בעזרת כלי ה-NRQL (New Relic Query Language) תוכלו להריץ שאילתות מורכבות על הנתונים שנאספו ולהציג את התוצאות בדשבורדים מותאמים אישית.
לדוגמה, תוכלו להריץ שאילתה המציגה את זמני התגובה הממוצעים של היישום בשבוע האחרון:
SELECT average(duration) FROM Transaction WHERE appName = 'MyApp' SINCE 1 week ago
את התוצאות ניתן להציג בגרפים, טבלאות או ויזואליזציות אחרות, ולהבין טוב יותר את הביצועים של היישום לאורך זמן.
שימוש ב-New Relic עם Kubernetes
New Relic משתלב היטב עם Kubernetes, ומאפשר לנטר את כל הקלאסטר שלכם בצורה פשוטה ויעילה. בעזרת New Relic ניתן לנטר את מצב הפודים (Pods), הצמתים (Nodes), והרשת (Networking), ולקבל תמונה מקיפה על בריאות הקלאסטר.
להלן דוגמה להתקנת הסוכן של New Relic בקלאסטר Kubernetes:
kubectl apply -f https://download.newrelic.com/infrastructure_agent/integrations/kubernetes/v2/newrelic-infrastructure-k8s.yaml
לאחר ההתקנה, תוכלו לראות את הנתונים על הקלאסטר שלכם בממשק של New Relic, כולל מידע על ניצול משאבים, זמני תגובה, ושגיאות.
אינטגרציה עם כלים נוספים
New Relic משתלב עם מגוון רחב של כלים נוספים, כגון Terraform, Ansible, Jenkins, ו-AWS. האינטגרציות הללו מאפשרות לנהל את היישומים שלכם בצורה יעילה יותר ולבצע אוטומציה של תהליכים שונים.
לדוגמה, ניתן להשתמש ב-New Relic יחד עם Terraform כדי להגדיר את המדדים שנמדדים וההתראות בצורה אוטומטית כחלק מהפריסה של היישום. זה מאפשר לכם לוודא שהמערכת מנוטרת בצורה נכונה כבר מהשלבים הראשונים של הפריסה.
resource "newrelic_alert_policy" "my_policy" {
name = "My Alert Policy"
}
resource "newrelic_nrql_alert_condition" "response_time" {
policy_id = newrelic_alert_policy.my_policy.id
name = "High Response Time"
nrql {
query = "SELECT average(duration) FROM Transaction WHERE appName = 'MyApp'"
since_value = "5 minutes ago"
}
critical {
operator = "above"
threshold = 2
threshold_duration = 300
threshold_occurrences = "ALL"
}
}
בדוגמה זו, אנחנו מגדירים מדד לזמן תגובה גבוה, ומוודאים שהתראה תשלח כאשר הזמן חורג מהסף שהוגדר. כל זה נעשה באופן אוטומטי כחלק מתהליך ה-Terraform.
ניהול שגיאות ומעקב אחר בעיות
בנוסף לניטור ביצועים, New Relic מספק כלים למעקב אחר שגיאות ופתרון בעיות. כלי ה-Error Tracking של New Relic מאפשר לזהות ולנתח שגיאות באפליקציות, לקבל מידע מפורט על מקור הבעיה, ולהבין כיצד היא משפיעה על המשתמשים.
לדוגמה, ניתן לקבל דוח שמציג את כל השגיאות שהתרחשו ביישום במהלך 24 השעות האחרונות:
SELECT * FROM TransactionError WHERE appName = 'MyApp' SINCE 24 hours ago
שימוש בכלי זה מאפשר לטפל בשגיאות במהירות ולהבטיח חווית משתמש טובה יותר. ניתן גם לשלב את המידע שנאסף עם כלים לניהול תקלות וליצור תהליך מתואם לפתרון בעיות.
תובנות עסקיות עם New Relic
מעבר לניטור טכני, New Relic מציעה גם תובנות עסקיות (Business Insights) המאפשרות לעקוב אחר מדדים עסקיים חשובים. ניתן להגדיר מעקב אחר נתונים כמו מספר משתמשים פעילים, הכנסות ממכירות, ושיעור המרות, ולראות כיצד הביצועים הטכניים משפיעים על המדדים העסקיים.
לדוגמה, ניתן ליצור דשבורד המציג את מספר המשתמשים הפעילים ביישום במקביל לביצועים הטכניים:
SELECT count(*) FROM Transaction WHERE appName = 'MyApp' SINCE 1 hour ago TIMESERIES
באמצעות כלי זה, תוכלו לקבל הבנה מעמיקה יותר של הקשר בין הביצועים הטכניים לתוצאות העסקיות, ולבצע שיפורים בהתאם.
סיכום
New Relic הוא כלי עוצמתי לניטור ביצועים וניהול זמינות, המציע פתרון כולל לניהול וניטור של יישומים ומערכות בסביבות מורכבות. בעזרת יכולות מתקדמות של אנליזה, וויזואליזציה, אינטגרציה עם כלים נוספים, וניהול שגיאות, תוכלו לוודא שהיישומים שלכם פועלים בצורה מיטבית ומספקים את חווית המשתמש הטובה ביותר. באמצעות השימוש ב-New Relic תוכלו לשפר את הביצועים הטכניים ולהשפיע ישירות על הצלחת המוצר.
אם אתם מעוניינים ללמוד בצורה מעמיקה יותר אתם מוזמנים להתייעץ איתנו על קורס DevOps.