באמצעות אינסטרומנטציה ללא קוד של OpenTelemetry, אתם יכולים לאסוף באופן אוטומטי מדדים ומעקבים מאפליקציות Java שפועלות ב-Google Kubernetes Engine (GKE), בלי לשנות את קוד האפליקציה. במדריך הזה תפרסו אפליקציית Java לדוגמה ב-GKE, תגדירו אינסטרומנטציה אוטומטית של OpenTelemetry ותציגו את נתוני הטלמטריה שנוצרו ב-Google Cloud Observability. למרות שהשלבים האלה מתמקדים בעומסי עבודה ב-Java, אתם יכולים להרחיב את הגישה הזו לשפות נתמכות אחרות.
למה כדאי להשתמש בכלים ללא קוד?
הוספה של כלי מדידה ללא קוד (נקראת גם הוספה אוטומטית של כלי מדידה) ב-OpenTelemetry היא כלי יעיל שמאפשר למפתחי אפליקציות להוסיף לקוד שלהם יכולת תצפית ניתנת להגדרה, בלי צורך לכתוב קוד נוסף או לשנות קוד קיים. כדי להשתמש במכשור ללא קוד, המערכת מוסיפה באופן אוטומטי מכשור לספריות של אפליקציות שנפרסו באופן פעיל. כך מתקבלות תובנות מהימנות לגבי ביצועי האפליקציה על ידי פליטת אותות זהב. לכן, שימוש בכלים ללא קוד הוא נקודת התחלה מצוינת לתהליך הניטור של האפליקציה.
הכלים ללא קוד ב-Java פולטים מדדים וטווחים של מעקב על ידי שימוש בספריות פופולריות שנמצאות בשימוש נרחב בסביבה של השפה. ב-Java, המדדים כוללים:
- מדדי זמן ריצה של JVM שנוצרו על ידי פלטפורמת Java
- מדדי HttpClient וטווחים של HttpClient שנשלחים מספריות כמו ספריית הלקוח של Java Http וספריית הלקוח של Google Http.
- מדדים של לקוח מסד נתונים וטווחים של לקוח מסד נתונים שנשלחים מספריות כמו JDBC ו-Lettuce.
קבוצת המדדים שמופקים תלויה באפליקציה שבה משתמשים ובספריות שבהן האפליקציה משתמשת. רשימה מלאה של ספריות וסביבות עבודה שאפשר להוסיף להן אינסטרומנטציה באמצעות סוכן האינסטרומנטציה ללא קוד של Java מופיעה במאמר ספריות וסביבות עבודה נתמכות.
בעזרת אינסטרומנטציה אוטומטית, אתם יכולים:
- מעקב אחרי Golden Signals בלי לשנות את הקוד.
- התאמה בין זמן אחזור גבוה של p99.9 לבין מעקבים של משתמשים ספציפיים, שכוללים כל קריאת RPC.
- קבלת נתוני טלמטריה עקביים במדדים, ביומנים ובמעקבים ממגוון רחב של ספריות ו-frameworks פופולריים.
למידע נוסף על שימוש בכלים ללא קוד, ראו ללא קוד ב-OpenTelemetry.
סקירה כללית
כדי להוסיף יכולת תצפית לעומס עבודה ב-Java שפועל ב-GKE, צריך לפרוס את הרכיבים הבאים:
- OpenTelemetry zero-code instrumentation, שיוצר את הטלמטריה מהאפליקציה.
- OpenTelemetry Collector, שאוסף את נתוני הטלמטריה שנוצרו על ידי האפליקציה, מעשיר אותם במטא-נתונים ובהקשר קריטיים ומנתב אותם אל Google Cloud לצריכה.
במדריך הזה תפרסו אפליקציית Java עם אינסטרומנטציה ב-GKE, ששולחת מדדים ועקבות ל- Google Cloud. אחרי שהנתונים נאספים, אפשר לראות את אותות הטלמטריה האלה באמצעות הכלים של Google Cloudלתצפית, כמו Metrics Explorer, Logs Explorer ו-Trace Explorer. במאמר הצגת נתוני הטלמטריה מוסבר איך להציג את נתוני הטלמטריה שנוצרו ולהשתמש בהם.
במדריך הזה נעשה שימוש בשירותים הבאים, שהשימוש בהם כרוך בתשלום, כדי לכתוב אותות:
- השירות המנוהל של Cloud Monitoring ל-Prometheus
- Cloud Logging
- Cloud Trace
- Google Kubernetes Engine
- Cloud Build
- Artifact Registry
כדי להעריך את העלויות בהתאם לשימוש הצפוי, אתם יכולים להשתמש במחשבון העלויות.
לפני שמתחילים
בקטע הזה מוסבר איך להגדיר את הסביבה לפריסה, להוסיף לאפליקציה כלי מדידה ואז להריץ אותה.
בחירה או יצירה של פרויקט ב- Google Cloud
בוחרים פרויקט ב- Google Cloud בשביל המדריך הזה. אם עדיין אין לכם פרויקט ב- Google Cloud , אתם צריכים ליצור פרויקט:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
התקנת כלי שורת פקודה
במסמך הזה אנחנו משתמשים בכלי שורת הפקודה הבאים:
gcloudkubectl
הכלים gcloud ו-kubectl הם חלק מ-Google Cloud CLI. מידע על התקנת הרכיבים מופיע במאמר ניהול רכיבי Google Cloud CLI. כדי לראות את הרכיבים של ה-CLI של gcloud שהתקנתם, מריצים את הפקודה הבאה:
gcloud components list
הגדרה של משתני סביבה
כדי להפחית את ההקלדה של ערכים תכופים, למנוע שגיאות הקלדה ולאפשר את הפעלת הפקודות במסמך הזה, מגדירים את משתני הסביבה הבאים:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export CLUSTER_NAME=CLUSTER_NAME
export CLUSTER_REGION=us-east1
export ARTIFACT_REGISTRY=opentelemetry-autoinstrument-registry
export REGISTRY_LOCATION=us-east4
לפני שמריצים את הפקודות, מחליפים את המשתנים הבאים או משתמשים בברירות המחדל:
- PROJECT_ID: מזהה הפרויקט.
- CLUSTER_NAME: השם של האשכול. האשכול יכול להיות חדש או קיים.
- us-east1: האזור של האשכול. אם אתם משתמשים באשכול קיים, השתמשו באזור של האשכול הזה.
- opentelemetry-autoinstrument-registry: השם של המאגר ב-Artifact Registry. המאגר יכול להיות חדש או קיים.
- us-east4: האזור של המאגר ב-Artifact Registry. אם אתם משתמשים במאגר קיים, השתמשו באזור של המאגר הזה.
אם נתקלתם בשגיאות בזמן הרצת הפקודות במסמך הזה, ודאו שהמשתנים האלה מוגדרים בצורה נכונה בסביבת הטרמינל.
הפעלת ממשקי ה-API
כדי להשתמש בשירותים שמתוארים במאמר הזה, צריך להפעיל את ממשקי ה-API הבאים בפרויקט ב- Google Cloud :
- Artifact Registry API:
artifactregistry.googleapis.com - Cloud Build API:
cloudbuild.googleapis.com - Google Kubernetes Engine:
container.googleapis.com - Identity and Access Management API:
iam.googleapis.com - Cloud Logging API:
logging.googleapis.com - Cloud Monitoring API:
monitoring.googleapis.com - Telemetry API:
telemetry.googleapis.com
יכול להיות שממשקי ה-API האלה, חוץ מ-Telemetry API, כבר מופעלים בפרויקט ב- Google Cloud . מריצים את הפקודה הבאה כדי להציג את ממשקי ה-API שמופעלים:
gcloud services list
מפעילים את ממשקי ה-API שעדיין לא מופעלים.
שימו לב במיוחד ל-Telemetry API, telemetry.googleapis.com; יכול להיות שזו הפעם הראשונה שאתם נתקלים ב-API הזה.
כדי להפעיל ממשקי API שעדיין לא הופעלו, מריצים את הפקודות של ממשקי ה-API המתאימים:
gcloud services enable artifactregistry.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable container.googleapis.com
gcloud services enable iam.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable telemetry.googleapis.com
קבלת הרשאות
-
כדי לקבל את ההרשאות שדרושות להפעלת האפליקציה ולכתיבת נתוני יומנים, מדדים ומעקב, אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
- כתיבה ביומן (
roles/logging.logWriter) בפרויקט - כתיבת מדדי מעקב (
roles/monitoring.metricWriter) בפרויקט - כתיבת נתוני מעקב של Cloud Telemetry (
roles/telemetry.tracesWriter) בפרויקט - מפתח (
roles/container.developer) בפרויקט שלך - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) בפרויקט - כתיבה ב-Artifact Registry (
roles/artifactregistry.writer) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בפרויקט - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) בפרויקט המכסות
ההרשאות האלה מספיקות אם מריצים את הדוגמה ב-Cloud Shell, במשאבי Google Cloud או בסביבת פיתוח מקומית. איך מגדירים פרויקט לצורכי מכסה
- כתיבה ביומן (
-
כדי לקבל את ההרשאות שדרושות לצפייה בנתוני היומנים, המדדים והמעקב, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM בפרויקט:
- צפייה ביומנים (
roles/logging.viewer) - צפייה במעקב (
roles/monitoring.viewer) - משתמש ב-Cloud Trace (
roles/cloudtrace.user)
- צפייה ביומנים (
הגדרת האשכול
מגדירים אשכול GKE לאפליקציה לדוגמה ולאספן:
נכנסים אל Google Cloud באמצעות הפקודות הבאות:
gcloud auth login gcloud config set project PROJECT_IDאם אין לכם אשכול GKE, אתם יכולים ליצור אשכול Autopilot באמצעות הפקודה הבאה:
gcloud container clusters create-auto --region us-east1 CLUSTER_NAME --project PROJECT_IDכדי לבצע פעולות באשכול, מחברים את כלי השירות המקומי
kubectlבאמצעות הפקודה הבאה:gcloud container clusters get-credentials CLUSTER_NAME --region us-east1 --project PROJECT_ID
פריסת האפליקציה ב-Java
בשלבים שבקטע הזה תפרסו באשכול אפליקציית Java לדוגמה ללא אינסטרומנטציה, OpenTelemetry Spring Boot instrumentation example. בקטע הזה נשתמש ב-Cloud Build וב-Artifact Registry כדי ליצור ולאחסן את קובץ האימג' של האפליקציה.
אם עדיין אין לכם מאגר ב-Artifact Registry, אתם יכולים ליצור מאגר באמצעות הפקודה הבאה:
gcloud artifacts repositories create opentelemetry-autoinstrument-registry --repository-format=docker --location=us-east4 --description="GKE Autoinstrumentation sample app"משכפלים את האפליקציה לדוגמה באמצעות הפקודה הבאה:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-samples.gitמגדירים את משתני הסביבה הבאים:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export ARTIFACT_REGISTRY=opentelemetry-autoinstrument-registry export REGISTRY_LOCATION=us-east4מריצים את הפקודות הבאות כדי ליצור את קובץ האימג' של האפליקציה ולהעביר אותו למאגר ב-Artifact Registry:
pushd opentelemetry-samples/java/instrumentation-quickstart && \ gcloud builds submit --config <(envsubst < cloudbuild-uninstrumented-app.yaml) . && \ popdיוצרים קובץ תצורה לפריסה של Kubernetes בשביל האפליקציה. מעתיקים את ההגדרות הבאות ושומרים אותן בקובץ בשם
deployment.yaml:apiVersion: v1 kind: Service metadata: name: quickstart-app labels: app: quickstart-app app.kubernetes.io/part-of: gke-autoinstrument-guide spec: ports: - port: 8080 targetPort: 8080 name: quickstart-app selector: app: quickstart-app --- apiVersion: apps/v1 kind: Deployment metadata: name: quickstart-app labels: app: quickstart-app app.kubernetes.io/part-of: gke-autoinstrument-guide spec: replicas: 2 selector: matchLabels: app: quickstart-app template: metadata: labels: app: quickstart-app spec: containers: - name: quickstart-app image: us-east4-docker.pkg.dev/PROJECT_ID/opentelemetry-autoinstrument-registry/java-quickstart:latest ports: - containerPort: 8080 name: quickstart-appמריצים את הפקודה הבאה כדי ליצור מרחב שמות לאפליקציה:
kubectl create namespace APPLICATION_NAMESPACEמריצים את הפקודה הבאה כדי להחיל את הגדרות הפריסה על האשכול:
kubectl apply -f deployment.yaml -n APPLICATION_NAMESPACEאחרי שיוצרים את הפריסה, יכול להיות שיעבור קצת זמן עד שה-pods ייווצרו ויתחילו לפעול. כדי לבדוק את הסטטוס של הפודים, מריצים את הפקודה הבאה:
kubectl get po -n APPLICATION_NAMESPACE -wכדי להפסיק את הצפייה בסטטוס של ה-Pod, מקישים על Ctrl-C כדי לעצור את הפקודה.
הגדרת מכונה של OpenTelemetry Collector
בקטע הזה יוצרים פריסה נוספת שמריצה מכונה של Google-Built OpenTelemetry Collector באשכול GKE. ה-collector מוגדר לייצא נתונים באמצעות המייצאים הבאים:
- מדדים באמצעות מייצא ה-HTTP של OTLP
- מעקבים באמצעות מייצא ה-HTTP של OTLP
- יומנים באמצעות Google Cloud Exporter
במקום לבצע את השלבים הידניים שבמסמך הזה כדי לפרוס את OpenTelemetry Collector, אתם יכולים לפעול לפי ההוראות במאמר Managed OpenTelemetry for GKE, שבו משתמשים ב-Google-Built OpenTelemetry Collector בסביבה מנוהלת.
מריצים את הפקודות הבאות כדי לאשר את חשבון השירות של Kubernetes לפריסה של OpenTelemetry Collector:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/logging.logWriter \ --member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID./subject/ns/opentelemetry/sa/opentelemetry-collector \ --condition=None gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/monitoring.metricWriter \ --member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID./subject/ns/opentelemetry/sa/opentelemetry-collector \ --condition=None gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/telemetry.tracesWriter \ --member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID./subject/ns/opentelemetry/sa/opentelemetry-collector \ --condition=None
כדי לפרוס את המכונה של Google-Built OpenTelemetry Collector באשכול GKE עם הגדרת ברירת המחדל המומלצת, מריצים את הפקודה הבאה:
kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest//k8s/base?ref=otlpmetric | envsubst | kubectl apply -f -ההגדרה הזו פורסת את ה-collector במרחב השמות
opentelemetry.אחרי שיוצרים את הפריסה, יכול להיות שיעבור קצת זמן עד שה-pods ייווצרו ויתחילו לפעול. כדי לבדוק את הסטטוס של הפודים, מריצים את הפקודה הבאה:
kubectl get po -n opentelemetry -wכדי להפסיק את הצפייה בסטטוס של ה-Pod, מקישים על Ctrl-C כדי לעצור את הפקודה.
הגדרת אינסטרומנטציה ללא קוד של OpenTelemetry
כדי להגדיר אינסטרומנטציה ללא קוד של OpenTelemetry לאפליקציה שנפרסה ב-GKE, מתקינים את OpenTelemetry Operator באשכול GKE. ה-OpenTelemetry Operator מספק גישה ל-Kubernetes Custom Resource Definition (CRD), שהוא משאב למדידת ביצועים שמשמש להוספת מדידת ביצועים אוטומטית למשאבי Kubernetes שפועלים בתוך אשכול.
משאב המדידה "מוזרק" או "מוחל" על עומסי עבודה ספציפיים באמצעות הערות מיוחדות. ה-OpenTelemetry Operator צופה בהערות האלה במשאבים שפועלים בתוך האשכול, ומוסיף את האינסטרומנטציה המתאימה לאפליקציות שמנוהלות על ידי המשאבים האלה.
אם ה-CLI של Helm לא מותקן, מתקינים אותו באמצעות הפקודות הבאות:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.shאם
cert-managerלא מותקן באשכול, מתקינים אותו באמצעות הפקודות הבאות:helm repo add jetstack https://charts.jetstack.io helm repo update helm install \ --create-namespace \ --namespace cert-manager \ --set installCRDs=true \ --set global.leaderElection.namespace=cert-manager \ --set extraArgs={--issuer-ambient-credentials=true} \ cert-manager jetstack/cert-managerכדי להתקין את OpenTelemetry Operator, מריצים את הפקודה הבאה ומשתמשים בגרסה 0.140.0 ואילך:
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/download/v0.140.0/opentelemetry-operator.yamlיוצרים קובץ תצורה למשאב המותאם אישית של המכשור, על ידי יצירת קובץ בשם
instrumentation.yamlעם התוכן הבא:apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: sample-java-auto-instrumentation spec: exporter: endpoint: http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317 sampler: type: parentbased_traceidratio # Adjust the sampling rate to control cost argument: "0.01" java: env: - name: OTEL_EXPORTER_OTLP_PROTOCOL value: grpc - name: OTEL_LOGS_EXPORTER value: noneיוצרים מרחב שמות ל-Operator. אפשר להשתמש באותו ערך שבו השתמשתם למרחב השמות של האפליקציה, APPLICATION_NAMESPACE.
kubectl create namespace INSTRUMENTATION_NAMESPACEיוצרים את המשאב המותאם אישית של הכלים באשכול ומחילים את הקובץ
instrumentation.yamlבאמצעות הפקודה הבאה:kubectl apply -f instrumentation.yaml -n INSTRUMENTATION_NAMESPACEמוסיפים את ההערה של Auto-instrumentation לאפליקציית Java לדוגמה שנפרסה קודם. מריצים את הפקודה הבאה כדי להוסיף את ההערה לפריסה המקורית:
kubectl patch deployment.apps/quickstart-app -n APPLICATION_NAMESPACE -p '{"spec":{"template":{"metadata":{"annotations":{"instrumentation.opentelemetry.io/inject-java": "'"INSTRUMENTATION_NAMESPACE"'/sample-java-auto-instrumentation"}}}}}'אחרי תיקון הפריסה, שגורם להפעלה מחדש של פריסת האפליקציה, אתם יכולים לבדוק את הסטטוס של ה-pods באפליקציה באמצעות הפקודה הבאה:
kubectl get po -n APPLICATION_NAMESPACE -wכדי להפסיק את הצפייה בסטטוס של ה-Pod, מקישים על Ctrl-C כדי לעצור את הפקודה.
אפליקציית Java שנפרסה באשכול GKE מוגדרת עכשיו באופן אוטומטי.
יצירת נתוני טלמטריה מהאפליקציה שנפרסה
כדי ליצור נתוני טלמטריה מהאפליקציה עם האינסטרומנטציה האוטומטית, צריך לשלוח בקשות לאפליקציה כדי לדמות פעילות משתמש. כדי ליצור תנועה קבועה, אפשר להפעיל סימולטור תנועה באשכול:
יוצרים קובץ תצורה לפריסה של הסימולטור, על ידי העתקת התוכן הבא לקובץ בשם
quickstart-traffic.yaml:apiVersion: apps/v1 kind: Deployment metadata: name: traffic-simulator labels: app.kubernetes.io/part-of: gke-autoinstrument-guide spec: replicas: 1 selector: matchLabels: app: traffic-simulator template: metadata: labels: app: traffic-simulator spec: containers: - name: traffic-simulator image: golang:1.24 command: - go - run - github.com/rakyll/hey@latest - -c=2 - -q=1 - -z=1h - http://quickstart-app:8080/multiמריצים את הפקודה הבאה כדי לפרוס את סימולטור התנועה:
kubectl apply -f quickstart-traffic.yaml -n APPLICATION_NAMESPACEאחרי שיוצרים את הפריסה, יכול להיות שיעבור קצת זמן עד שה-pods ייווצרו ויתחילו לפעול. כדי לבדוק את הסטטוס של הפודים, מריצים את הפקודה הבאה:
kubectl get po -n APPLICATION_NAMESPACE -wכדי להפסיק את הצפייה בסטטוס של ה-Pod, מקישים על Ctrl-C כדי לעצור את הפקודה.
הצגת נתוני הטלמטריה
אחרי שסימולטור התנועה מתחיל לשלוח בקשות לאפליקציה, אפליקציית Java שנפרסה יוצרת נתוני טלמטריה. יכול להיות שיעברו כמה דקות עד שהמדדים והמעקבים יתחילו להופיע ב- Google Cloud.
הכלים שנוספו על ידי OpenTelemetry Operator מסתמכים על OpenTelemetry Java Agent. סוכן OpenTelemetry Java מכיל כלים מובְנים להרבה ספריות וסביבות פיתוח פופולריות של Java שפולטות מדדים.
הכלים שהוחדרו גם מתעדים באופן אוטומטי את המעקב אחרי כל הקריאות שבוצעו לכל נקודת קצה (endpoint) שנחשפה על ידי האפליקציה לדוגמה. סימולטור התנועה שולח כל הזמן בקשות לנקודת הקצה (endpoint) של
/multi, שנחשפת על ידי אפליקציית Java בקצב קבוע. נקודת הקצה (endpoint) של/multiשולחת בקשות לנקודת הקצה של/singleכדי ליצור את התשובה הסופית. האינטראקציות האלה מסתיימות כמעקבים שאפשר לראות באמצעות Trace Explorer.
הצגת המדדים
אתם יכולים לראות את המדדים שנוצרו באופן אוטומטי ב-Metrics Explorer של Cloud Monitoring. בקטע הזה יש שאילתות לדוגמה שכתובות ב-PromQL.
במסוף Google Cloud , נכנסים לדף leaderboard Metrics explorer:
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
אלה חלק מהמדדים שאפשר לראות באפליקציה לדוגמה:
מדדי זמן ריצה של JVM: סוכן OpenTelemetry Java פולט מדדים לגבי ה-JVM הבסיסי. המדדים האלה חושפים מידע על זיכרון JVM, איסוף אשפה, מחלקות, שרשורים ומושגים קשורים אחרים. לרשימה המלאה של מדדי JVM נתמכים, עיינו בדף JVM Runtime Metrics Semantic Conventions.
שימוש בזיכרון של JVM: מדביקים את השאילתה הבאה ב-PromQL ב-Metrics Explorer:
sum(avg_over_time({"process.runtime.jvm.memory.usage"}[${__interval}]))ניצול המעבד (CPU) של JVM: מדביקים את השאילתה הבאה ב-PromQL ב-Metrics Explorer:
sum(avg_over_time({"process.runtime.jvm.cpu.utilization"}[${__interval}]))בתרשים הבא מוצג מדד ניצול המעבד (CPU) של JVM:
מדדי Spring Boot: האפליקציה לדוגמה משתמשת במסגרת Spring Boot, שנתמכת גם על ידי OpenTelemetry zero-code instrumentation ל-Java.
משך הזמן הממוצע של צד הלקוח ב-HTTP: מדביקים את השאילתה הבאה ב-PromQL ב-Metrics Explorer:
sum(rate({"http.client.duration_sum"}[${__interval}])) by (cluster, job) / sum(rate({"http.client.duration_count"}[${__interval}])) by (cluster, job)משך הזמן הממוצע של שרת ה-HTTP: מדביקים את שאילתת ה-PromQL הבאה ב-Metrics Explorer:
sum(rate({"http.server.duration_sum"}[${__interval}])) by (cluster, job) / sum(rate({"http.server.duration_count"}[${__interval}])) by (cluster, job)בתרשים הבא מוצג המדד של משך הזמן הממוצע של שרת ה-HTTP ב-Spring Boot:
איך בוחרים מדדים כשמשתמשים ב-Metrics Explorer
הצגת המעקבים
אתם יכולים לראות את המעקבים שנוצרו באופן אוטומטי ב-Trace Explorer של Cloud Trace. אפשר לסנן את המעקבים האלה ב-Trace Explorer לפי "Service Name" ולהגדיר את שם השירות ל-quickstart-app.
במסוף Google Cloud , נכנסים לדף
Trace explorer:
אפשר גם למצוא את הדף הזה באמצעות שורת החיפוש.
בצילום המסך הבא מוצגים המעקבים שנוצרו על ידי פריסת OpenTelemetry quickstart-app:
מידע נוסף על השימוש ב-Trace Explorer זמין במאמר חיפוש ועיון במעקבים.
הסרת המשאבים
אם יצרתם פרויקט חדש ב- Google Cloud ואתם לא צריכים אותו יותר, אתם יכולים למחוק אותו באמצעות הפקודה הבאה:
gcloud projects delete PROJECT_ID
אם השתמשתם בפרויקט קיים, אתם יכולים למחוק את המשאבים שיצרתם במהלך המדריך כדי לחסוך בעלויות:
מריצים את הפקודה הבאה כדי למחוק את אשכול GKE:
gcloud container clusters delete CLUSTER_NAME --location=us-east1כדי למחוק את המאגר ב-Artifact Registry, מריצים את הפקודה הבאה:
gcloud artifacts repositories delete opentelemetry-autoinstrument-registry --location=us-east4