יצירת פרופיל לאפליקציות שפועלות מחוץ ל- Google Cloud
בדף הזה מוסבר איך ליצור פרופיל של אפליקציות שפועלות מחוץ ל- Google Cloud.
בתרחיש הזה, האפליקציה שלכם והסוכן של Cloud Profiler פועלים מחוץ ל-Google Cloud Google Cloud, אבל אתם משתמשים בממשק של Cloud Profiler כדי לנתח את נתוני הפרופילים.
כדי לנתח נתוני פרופיל באמצעות ממשק הכלי Profiler, צריך Google Cloud פרויקט. הסוכן ליצירת פרופילים שפועל במקום אחר צריך להיות מסוגל לשלוח את הפרופילים בחזרה לצורך ניתוח. כדי להפעיל את האפשרות הזו, צריך:
- יוצרים Google Cloud פרויקט ומפעילים את ה-API.
- צריך לקבל פרטי כניסה לסוכן ליצירת פרופילים כדי להשתמש בהם כשמעלים פרופילים.
- מגדירים את הסוכן לשימוש בפרטי הכניסה ובמזהה של הפרויקטGoogle Cloud .
יצירת Google Cloud פרויקט
במסוף Google Cloud , בדף לבחירת הפרויקט לוחצים על יצירת פרויקט כדי ליצור פרויקט חדש ב- Google Cloud .
אילו תפקידים צריך כדי ליצור פרויקט
כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
הפעלת Profiler API
-
מפעילים את Cloud Profiler API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים אם מוצג הכיתוב API enabled, סימן שממשק ה-API כבר מופעל. אם לא, לוחצים על הכפתור הפעלה.
קבלת פרטי כניסה לסוכן
יש שתי דרכים להשיג פרטי כניסה לשימוש הסוכן:
- מתן הרשאה לסוכן להשתמש בחשבון שירות עם אימות מפתח פרטי
- הסוכן יכול להשתמש בפרטי כניסה שמוגדרים כברירת מחדל באפליקציה (ADC).
שימוש בחשבונות שירות
כדי לאפשר לסוכן להשתמש בחשבון שירות עם אימות מפתח פרטי, צריך:
יוצרים חשבון שירות. לדוגמה, באמצעות Google Cloud CLI:
gcloud iam service-accounts create MY_SVC_ACCT_ID --display-name "my service account"מידע נוסף זמין במאמר יצירת חשבון שירות.
מקצים לחשבון השירות את התפקיד roles/cloudprofiler.agent, כדי שיוכל לכתוב נתוני פרופילים. לדוגמה, באמצעות Google Cloud CLI:
gcloud projects add-iam-policy-binding GCP_PROJECT_ID \ --member serviceAccount:MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.com \ --role roles/cloudprofiler.agentמידע נוסף זמין במאמר הענקת תפקידים לחשבונות שירות.
יוצרים מפתח JSON לחשבון השירות. לדוגמה, באמצעות Google Cloud CLI:
gcloud iam service-accounts keys create \ ~/key.json \ --iam-account MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.comמידע נוסף זמין במאמר יצירת מפתחות של חשבונות שירות.
במכונה שבה יפעל סוכן הפרופילים:
- מניחים עותק של הקובץ שמכיל את מפתח ה-JSON שיצרתם.
- מגדירים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSלשם המלא של הקובץ שמכיל את מפתח ה-JSON. משתנה הסביבה הזה צריך להיות גלוי לתהליך שמריץ את סוכן הפרופילים, לכן אם משתמשים בסקריפט או ב-Dockerfile כדי להריץ את התהליך, צריך לכלול שם את משתנה הסביבה.
שימוש ב-Application Default Credentials
כדי לאפשר לסוכן להשתמש ב-Application Default Credentials, צריך לקבל פרטי כניסה לגישת משתמש באמצעות תהליך אינטרנט ולהציב אותם במקום שבו ספריית Application Default Credentials מצפה להם. פרטי הכניסה האלה משמשים כפרוקסי לחשבון שירות.
כדי להשתמש ב-Application Default Credentials, מריצים את הפקודה הבאה ב-Google Cloud CLI:
gcloud auth application-default login
ופועלים לפי השלבים שהפקודה מנחה אתכם לבצע.
קישור הסוכן ל Google Cloud פרויקט
צריך להגדיר את סוכן הפרופילים כך שיציין את המזהה של פרויקט Google Cloud כדי שיוכל להעלות פרופילים. המנגנון לביצוע הפעולה הזו משתנה בהתאם לשפה.
המשך
מציינים פרמטר נוסף, ProjectID, באובייקט profiler.Config
שמתואר במאמר Profiling Go applications:
profiler.Config{ProjectID: "GCP_PROJECT_ID", ...}
Java
מציינים דגל נוסף של הגדרת סוכן Java, cprof_project_id, בהפעלת Java:
-cprof_project_id=GCP_PROJECT_ID
אם לאפליקציה אין גישה לשרת המטא-נתונים של Compute Engine, מוצגות הודעות שדומות להודעות הבאות:
Error making HTTP request for 169.254.169.254:80/computeMetadata/v1/instance/zone
-cprof_zone_name=VALUE לדגלי ההגדרה של הנציג ומפעילים מחדש את האפליקציה. בתרחיש הזה, מחליפים את VALUE במחרוזת תיאורית כמו test.Node.js
מציינים פרמטר נוסף, projectID, באובייקט serviceContext
שמתואר במאמר יצירת פרופילים של אפליקציות Node.js:
projectId: 'GCP_PROJECT_ID',
serviceContext: {
...
}
Python
מציינים פרמטר נוסף, project_id, בקריאה לשיטת start
שמתוארת במאמר יצירת פרופילים של אפליקציות Python:
googlecloudprofiler.start(..., project_id='GCP_PROJECT_ID')
המאמרים הבאים
- בחירת הפרופילים לניתוח
- איך משתמשים בתרשים להבות
- סינון תרשים הלהבות
- התמקדות בתרשים להבות
- השוואה בין פרופילים