הגדרת ניטור GraphQL (Apollo Studio / GraphQL Hive)

לאחר המעבר ל-GraphQL, אתם מאבדים שליטה על הביצועים: לא ברור איזה resolver איטי, ושאילתות N+1 מתחפשות לתגובות רגילות. אנחנו מגדירים ניטור GraphQL באמצעות Apollo Studio ו-GraphQL Hive, ומיישמים resolver tracing ומדדי Prometheus לראייה מלאה. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד לוחות Grafana—ומבטיח פעולה אמינה עם תמיכה מתמשכת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הגדרת ניטור GraphQL (Apollo Studio / GraphQL Hive)
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

לאחר המעבר מ-REST ל-GraphQL, צוותים לעיתים קרובות מאבדים שליטה על הביצועים. תמונה טיפוסית: בקשה מאטה, אבל לא ברור איזה resolver אשם. שאילתות N+1 מתחזות לתגובות רגילות, ושינוי סכמה לא תואם שובר אפליקציית מובייל. עם ניסיון של 5+ שנים, יישמנו נראות GraphQL עבור 50+ פרויקטים — מסטארטאפים ועד ארגונים — ואנחנו יודעים אילו כלים באמת עובדים בייצור. במקרה אחד, אחזור p95 של פעולות עלה מ-200 ל-800 אלפיות השנייה בשבוע. רק מעקב resolver הראה שהבעיה הייתה handler חדש של user.orders שביצע 50 בקשות מסד נתונים נפרדות. נראות עזרה לזהות זאת בשעה, וצמצמה את זמן האבחון משעות לדקות, ולאחר תיקון שאילתות N+1, האחזור ירד ב-60%.

הפתרון שלנו לניטור GraphQL משלב את Apollo Studio, GraphQL Hive, או OpenTelemetry למעקב resolver, עם מדדים של Prometheus המוצגים בלוחות מחוונים של Grafana. הגדרה זו מספקת ניטור מקיף של API GraphQL, כולל זיהוי שאילתות N+1 ומעקב אחר מדדי Core Web Vitals.

בעיות שאנחנו פותרים

  • שימוש בלתי נראה בשדות: Apollo Studio מראה אילו שדות לקוחות מבקשים בפועל. זה עוזר להסיר שדות מושבתים ללא חשש.
  • handlers איטיים ללא מעקב: OpenTelemetry עם Jaeger/Tempo מאפשר לראות בדיוק איזה handler מאט את העניינים — עד לרמת הארגומנט.
  • שינויי סכמה שוברים: בדיקות תאימות לאחור אוטומטיות בכל deploy מונעות תקלות בייצור.

איך אנחנו עושים את זה: מחסנית ותצורות

Apollo Studio (GraphOS)

// Установка npm install @apollo/server @apollo/server/plugin/usageReporting
import { ApolloServer } from '@apollo/server'
import { ApolloServerPluginUsageReporting } from '@apollo/server/plugin/usageReporting'

const server = new ApolloServer({
  typeDefs,
  resolvers,
  plugins: [
    ApolloServerPluginUsageReporting({
      // APOLLO_KEY из переменных среды
      sendVariableValues: {
        // Не отправлять чувствительные переменные
        exceptNames: ['password', 'token', 'secret']
      },
      sendHeaders: {
        exceptNames: ['Authorization', 'Cookie']
      },
      // Выборка трассировок (100% дорого, 10% достаточно для анализа)
      fieldLevelInstrumentation: 0.1
    })
  ]
})

לפי מסמכים רשמיים של Apollo's GraphOS, הפלטפורמה מספקת: פילוח אחזור p50/p95/p99 לפי פעולה, שימוש בשדות, בדיקות סכמה עם שאילתות לקוח אמיתיות, התראות על ירידה בביצועים.

GraphQL Hive (פלטפורמה מתארחת עצמית)

# Docker Compose для GraphQL Hive docker run -d \
 -e HIVE_TOKEN=your-token \
 -e TARGET=your-org/your-project/production \
 ghcr.io/kamilkisiela/graphql-hive/cli:latest
import { useHive } from '@graphql-hive/client'
import { envelop, useSchema } from '@envelop/core'

const getEnveloped = envelop({
  plugins: [
    useSchema(schema),
    useHive({
      enabled: true,
      token: process.env.HIVE_TOKEN,
      usage: {
        sampleRate: 1.0,
        exclude: ['IntrospectionQuery']
      },
      reporting: {
        author: 'CI Pipeline',
        commit: process.env.GIT_SHA
      }
    })
  ]
})

מעקב OpenTelemetry Handler

לנראות מתארחת עצמית עם Jaeger/Tempo, אנו משתמשים בתוסף שיוצר span עבור כל handler. זה מספק תמונה מלאה של הבקשה, כולל קריאות למסד נתונים. OpenTelemetry הוא חינמי וקוד פתוח; רק עלויות אירוח עבור הקולטן (~$30-50 לחודש).

השוואה: Apollo Studio לעומת GraphQL Hive

קריטריון Apollo Studio GraphQL Hive
אירוח ענן (SaaS) מתארח עצמית (Docker)
שימוש בשדות כן, פירוט לפי לקוח כן, דרך דיווח שימוש
בדיקות סכמה כן, אינטגרציית CI כן, דרך @graphql-inspector
שמירת נתונים 90 יום כברירת מחדל ניתן להגדרה (עד שנתיים)
עלות חינם לקטן, בתשלום לארגונים ($99 לחודש) קוד פתוח, אירוח בתשלום אופציונלי
מיקום נתונים אזורי AWS שליטה מלאה

הפתרון הענני של Apollo מהיר פי 5 להקמה מאשר בניית ניטור מותאם אישית, בעוד Hive מציע חיסכון בעלויות פי 2 עבור צוותים גדולים. שילוב של OpenTelemetry ו-Apollo Studio מספק מעקב מקיף פי 2 מאשר Apollo Studio לבדו.

מדדי ניטור טיפוסיים

מדד ערך יעד מקור
אחזור p95 < 500 אלפיות השנייה Apollo/Hive
שיעור שגיאות < 1% Apollo/Hive
שאילתות N+1 0 OpenTelemetry
תאימות סכמה 100% בדיקות סכמה

עם ניטור במקום, אתה מקבל התראות על שינויי סכמה וניטור מלא של API GraphQL, כולל מעקב אחר אחזור p95.

איך לבחור בין Apollo Studio ו-GraphQL Hive?

אם אתה צריך פתרון ענן מהיר ללא תקורה ניהולית — בחר בפלטפורמת Apollo Studio. אם יש לך דרישות מיקום נתונים או תקציב גדול — בחר ב-Hive. אנחנו עוזרים בבחירה בשלב הבדיקה.

למה להוסיף OpenTelemetry בנפרד?

OpenTelemetry מספק מעקב מלא של בקשות, כולל קריאות ל-API של צד שלישי ומסדי נתונים. Apollo Studio/Hive רואים רק את שכבת ה-GraphQL. שילוב של שניהם נותן נראות של 100%. זה גם עוזר לזהות השפעה על Core Web Vitals על ידי אופטימיזציה של TTFB.

דוגמה: איך OpenTelemetry הציל ייצור

לקוח התלונן על תגובות איטיות, אבל מדדי Apollo Studio לא הראו בעיות. OpenTelemetry גילה ש-handler אחד ביצע 200 בקשות MongoDB במקום אחת בגלל dataloader חסר. תיקון זה הפחית את האחזור פי 4.

טעויות נפוצות בהגדרה

  • שיעור דגימה נמוך מדי (מתחת ל-1%) — p99 לא אמין סטטיסטית.
  • אין סינון של נתונים רגישים — דליפת אישורים דרך מדדים.
  • התעלמות מהתראות על שינויי סכמה במהלך deploy — סיכון לשינויים שוברים.

תהליך ההגדרה שלנו

  1. ניתוח: בדיקת סכמה נוכחית, זיהוי צווארי בקבוק באמצעות // Установка npm install @apollo/server @apollo/server/plugin/usageReporting import { ApolloServer } from '@apollo/server' import { ApolloServerPluginUsageReporting } from '@apollo/server/plugin/usageReporting' const server = new ApolloServer({ typeDefs, resolvers, plugins: [ ApolloServerPluginUsageReporting({ // APOLLO_KEY из переменных среды sendVariableValues: { // Не отправлять чувствительные переменные exceptNames: ['password', 'token', 'secret'] }, sendHeaders: { exceptNames: ['Authorization', 'Cookie'] }, // Выборка трассировок (100% дорого, 10% достаточно для анализа) fieldLevelInstrumentation: 0.1 }) ] }) או # Docker Compose для GraphQL Hive docker run -d \ -e HIVE_TOKEN=your-token \ -e TARGET=your-org/your-project/production \ ghcr.io/kamilkisiela/graphql-hive/cli:latest .
  2. עיצוב: בחירת כלי (Apollo Studio, Hive, או OpenTelemetry), עיצוב מדדים (p50/p95/p99, שיעור שגיאות, מדדי Prometheus).
  3. יישום: אינטגרציית תוסף, הגדרת מעקב resolver, פרסום סכמה.
  4. בדיקה: אימות על staging, השוואת מדדים לפני/אחרי. בפרויקט אחד, הפחתנו את האחזור באחוזון ה-95 מ-2 שניות ל-300 אלפיות השנייה.
  5. Deploy והתראות: הגדרת הודעות ב-Slack/Telegram לירידה בביצועים (לדוגמה, אחזור p95 > 500 אלפיות השנייה), כולל לוחות מחוונים של Grafana.

המהנדסים המוסמכים שלנו מבטיחים פתרון חזק.

מה כלול וציר זמן

הגדרת ניטור GraphQL אורכת 2 עד 5 ימי עסקים בהתאם למורכבות הסכמה והפתרון הנבחר. כולל: חיבור Apollo Studio או GraphQL Hive עם פרסום סכמה, מעקב resolver דרך OpenTelemetry (Jaeger/Tempo), מדדי Prometheus + לוח מחוונים של Grafana עם פאנלים "הפעולות האיטיות ביותר", "שיעור שגיאות", "ה-resolvers האיטיים ביותר", הגדרת התראות ובדיקות תאימות לאחור אוטומטיות, ותיעוד תפעולי.

עלות ההגדרה מתחילה ב-$2,000, ולקוחות בדרך כלל חוסכים $500–$1,000 בחודש בעלויות תפעול. חיסכון שנתי יכול להגיע ל-$12,000. השקעה בניטור מחזירה את עצמה בממוצע תוך 2-3 חודשים — צמצום זמן מציאת בעיות ומניעת תקלות חוסך תקציבים. השירות שלנו עולה $2,000 ובדרך כלל חוסך $500-$1,000 בחודש, ומשיג ROI תוך 2-3 חודשים. צור קשר כדי להגדיר ניטור לפרויקט שלך. קבל ייעוץ על בחירת כלים ואינטגרציה מהירה.