Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

گزارش ها را بنویسید و مشاهده کنید

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

ورود به سیستم یک ابزار مهم برای اشکال زدایی و نظارت بر کد است. Cloud Functions به شما این امکان را می دهد که از SDK ثبت کننده آن، ثبت سفارشی Google Cloud یا استاندارد شی console برای توسعه برای وب استفاده کنید.

نوشتن گزارش

در حالی که Cloud Functions Logger SDK برای اکثر موقعیت ها توصیه می شود، ممکن است یکی از گزینه های دیگر را به دلایل زیر انتخاب کنید:

  • شما یک پایه کد موجود دارید و ترجیح می دهید از console.log refactor نکنید.
  • شما با Cloud Logging (که قبلا StackDriver logging نام داشت) آشنا هستید و ترجیح می دهید از آن برای ثبت سفارشی استفاده کنید.

با استفاده از Cloud Functions Logger SDK

Cloud Functions Logger SDK یک رابط استاندارد ارائه می‌کند که دارای api مشابه با عبارات console.log است و از سطوح گزارش دیگر پشتیبانی می‌کند. می‌توانید از این SDK برای ثبت رویدادها با داده‌های ساختاریافته استفاده کنید ، که امکان تجزیه و تحلیل و نظارت آسان‌تر را فراهم می‌کند.

Logger SDK از ورودی‌های گزارش به عنوان بخشی از وارد کردن علامت عام پشتیبانی می‌کند. مثلا:

  const functions = require("firebase-functions");

  functions.logger.log("Hello from info. Here's an object:", someObj);

از طرف دیگر، می توانید از صادرات فردی استفاده کنید. این مثال داده های ساخت یافته متصل به گزارش را به عنوان آخرین آرگومان نشان می دهد:

const { warn } = require("firebase-functions/logger");


// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
  key1: 'val1',
  key2: 'val2'
});
  • دستورات logger.log() دارای سطح گزارش INFO هستند.
  • دستورات logger.info() دارای سطح گزارش INFO هستند.
  • logger.warn() دارای سطح log ERROR هستند.
  • logger.error() دارای سطح log ERROR هستند.
  • پیام های سیستم داخلی دارای سطح گزارش DEBUG هستند.

با logger.write() می‌توانید ورودی‌های گزارش را علاوه بر سطوح شدت گزارش CRITICAL ، ALERT و EMERGENCY بنویسید. LogSeverity را ببینید.

گزارش‌های ثبت سفارشی Cloud

گزارش‌های Cloud Functions با Logger SDK توسط Cloud Logging پشتیبانی می‌شوند. می‌توانید از کتابخانه Cloud Logging برای Node.js برای ثبت رویدادها با داده‌های ساختاریافته استفاده کنید، که امکان تجزیه و تحلیل و نظارت آسان‌تر را فراهم می‌کند.

const { Logging } = require('@google-cloud/logging');

// ...

// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');

// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
  resource: {
    type: 'cloud_function',
    labels: {
      function_name: 'CustomMetrics',
      region: 'us-central1'
    }
  }
};

// ...

// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
  event: 'my-event',
  value: 'foo-bar-baz',

  // Optional 'message' property will show up in the Firebase
  // console and other human-readable logging surfaces
  message: 'my-event: foo-bar-baz'
};

// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);

با استفاده از console.log

راه حل پیشنهادی برای ورود به سیستم از یک تابع استفاده از Logger SDK است. در عوض می‌توانید از تماس‌های استاندارد گزارش‌گیری جاوا اسکریپت مانند console.log و console.error استفاده کنید، اما ابتدا باید به یک ماژول خاص برای اصلاح روش‌های استاندارد نیاز داشته باشید تا به درستی کار کنند:

require("firebase-functions/logger/compat");

هنگامی که به ماژول سازگاری لاگر نیاز داشتید، می توانید از متدهای console.log() به طور معمول در کد خود استفاده کنید:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • دستورات console.log() دارای سطح گزارش INFO هستند.
  • دستورات console.info() دارای سطح گزارش INFO هستند.
  • دستورات console.warn() دارای سطح log ERROR هستند.
  • دستورات console.error() دارای سطح log ERROR هستند.
  • پیام های سیستم داخلی دارای سطح گزارش DEBUG هستند.

مشاهده گزارش‌ها

گزارش‌های مربوط به عملکردهای ابری یا در Google Cloud Console ، رابط کاربری Cloud Logging یا از طریق ابزار خط فرمان firebase قابل مشاهده هستند.

با استفاده از Firebase CLI

برای مشاهده گزارش ها با ابزار firebase ، از دستور functions:log استفاده کنید:

firebase functions:log

برای مشاهده گزارش‌های یک تابع خاص، نام تابع را به عنوان آرگومان ارائه کنید:

firebase functions:log --only <FUNCTION_NAME>

برای طیف کاملی از گزینه‌های مشاهده گزارش، راهنمای functions:log :

firebase help functions:log

با استفاده از Google Cloud Console

می‌توانید گزارش‌های مربوط به عملکردها را در Google Cloud Console مشاهده کنید.

با استفاده از رابط کاربری Cloud Logging

می‌توانید گزارش‌های مربوط به عملکردهای ابری را در رابط کاربری Cloud Logging مشاهده کنید.

تجزیه و تحلیل لاگ ها

Cloud Logging مجموعه قدرتمندی از ابزارهای تجزیه و تحلیل گزارش ها را ارائه می دهد که می توانید از آنها برای نظارت بر عملکردهای Cloud خود استفاده کنید. این ابزارها به ویژه وقتی با ثبت سفارشی ترکیب شوند قدرتمند هستند.

معیارهای مبتنی بر گزارش

در رابط کاربری Cloud Logging، از فیلد فیلتر پیشرفته استفاده کنید تا دامنه گزارش را به تابعی که می‌خواهید تجزیه و تحلیل کنید محدود کنید، سپس روی ارسال فیلتر کلیک کنید تا گزارش‌ها فیلتر شوند. به عنوان مثال، شما می توانید فقط گزارش ها را از یک تابع تجزیه و تحلیل کنید:

resource.type="cloud_function"
resource.labels.function_name="myCloudFunction"
resource.labels.region="us-central1"

اگر رویدادها را با بارهای سفارشی JSON ثبت کرده‌اید، می‌توانید با استفاده از کلیدها و مقادیری که ارائه کرده‌اید فیلتر کنید:

resource.type="cloud_function"
resource.labels.function_name="CustomMetrics"
jsonPayload.event="my-event"

هنگامی که گزارش‌ها را فیلتر کردید، می‌توانید آنها را با استفاده از معیارهای مبتنی بر گزارش تجزیه و تحلیل کنید. روی دکمه Create Metric کلیک کنید تا ویرایشگر متریک باز شود و نوع متریک انتخاب شود:

  • سنجه‌های شمارنده: تعداد ورودی‌های گزارشی را که با فیلتر مطابقت دارند، بشمارید. به عنوان مثال می توانید تعداد دفعاتی را که یک رویداد خاص رخ می دهد بشمارید.
  • معیارهای توزیع: داده‌های عددی را از ورودی‌های گزارشی که با فیلتر مطابقت دارند جمع‌آوری می‌کند. به عنوان مثال می توانید تاخیرهای عملیات خاصی را در توابع خود ردیابی کنید.

برای گزارش‌های مبتنی بر متن، مانند مواردی که از console.log() در توابع شما ایجاد می‌شود، می‌توانید با استفاده از عبارات منظم مقادیر و برچسب‌ها را از قسمت textPayload کنید. برای گزارش‌های سفارشی با داده‌های ساختاریافته، می‌توانید مستقیماً به داده‌ها در قسمت jsonPayload دسترسی داشته باشید.

نمودارها و هشدارها

هنگامی که معیارهای مبتنی بر گزارش را برای نظارت بر عملکردهای خود ایجاد کردید، می توانید نمودارها و هشدارها را بر اساس این معیارها ایجاد کنید. به عنوان مثال، می‌توانید نموداری برای تجسم تأخیر در طول زمان ایجاد کنید، یا یک هشدار ایجاد کنید تا در صورت بروز خطای خاصی به شما اطلاع دهد.

برای اطلاعات دقیق در مورد نحوه استفاده از معیارهای مبتنی بر گزارش در نمودارها و خط‌مشی‌های هشدار، به ایجاد نمودارها و هشدارها مراجعه کنید.