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


ورود به سیستم یک ابزار مهم برای اشکال زدایی و نظارت بر کد است. Cloud Functions به شما این امکان را می دهد که از SDK ثبت کننده، Cloud Logging یا استاندارد شی 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/v1");

  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() دارای سطح گزارش WARNING هستند.
  • دستورات logger.error() دارای سطح log ERROR هستند.
  • پیام های سیستم داخلی دارای سطح گزارش DEBUG هستند.

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

گزارش‌های Cloud Logging

گزارش‌های 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

راه حل توصیه شده برای ورود به سیستم از یک تابع، استفاده از SDK لاگر برای پلتفرم خود است. با Node.js، می‌توانید در عوض از تماس‌های استاندارد گزارش‌گیری جاوا اسکریپت مانند 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 هستند.

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

گزارش‌های مربوط به Cloud Functions یا در کنسول Google Cloud ، رابط کاربری 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

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

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

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

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

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

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

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

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