Rejestrowanie jest ważnym narzędziem do debugowania i monitorowania kodu. Cloud Functions daje Ci możliwość korzystania z pakietu SDK rejestratora, niestandardowego Google Cloud Logging lub standardu obiektów console
do tworzenia aplikacji internetowych.
Pisanie dzienników
Chociaż pakiet SDK rejestratora Cloud Functions jest zalecany w większości sytuacji, możesz wybrać jedną z pozostałych opcji z tych powodów:
- Masz istniejącą bazę kodu i wolisz nie refaktoryzować z
console.log
. - Znasz Cloud Logging (wcześniej rejestrowanie StackDriver) i wolisz używać go do logowania niestandardowego.
Korzystanie z zestawu SDK rejestratora Cloud Functions
Pakiet SDK rejestratora Cloud Functions zapewnia standardowy interfejs, który ma interfejs API podobny do instrukcji console.log
i obsługuje inne poziomy rejestrowania. Możesz używać tego pakietu SDK do rejestrowania zdarzeń za pomocą danych strukturalnych , co ułatwia analizę i monitorowanie.
Zestaw SDK rejestratora obsługuje wpisy dziennika jako część importu symboli wieloznacznych. Na przykład:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
Alternatywnie możesz użyć indywidualnych eksportów. Ten przykład ilustruje dane strukturalne dołączone do dziennika jako ostatni argument:
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'
});
- Komendy
logger.log()
mają poziom dziennika INFO . - Komendy
logger.info()
mają poziom dziennika INFO . - Komendy
logger.warn()
mają poziom dziennika WARNING . - Komendy
logger.error()
mają poziom dziennika ERROR . - Wewnętrzne komunikaty systemowe mają poziom dziennika DEBUG .
Za pomocą logger.write()
można zapisywać wpisy w dzienniku oraz poziomy istotności dziennika CRITICAL
, ALERT
i EMERGENCY
. Zobacz LogSeverity .
Niestandardowe dzienniki Cloud Logging
Dzienniki Cloud Functions z pakietem SDK rejestratora są obsługiwane przez Cloud Logging . Możesz użyć biblioteki Cloud Logging dla Node.js do rejestrowania zdarzeń za pomocą danych strukturalnych, co ułatwia analizę i monitorowanie.
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);
Korzystanie z pliku console.log
Zalecanym rozwiązaniem do rejestrowania z funkcji jest użycie zestawu SDK rejestratora . Zamiast tego możesz użyć standardowych wywołań rejestrowania JavaScript, takich jak console.log
i console.error
, ale najpierw musisz wymagać specjalnego modułu, aby załatać standardowe metody, aby działały poprawnie:
require("firebase-functions/logger/compat");
Gdy moduł kompatybilności rejestratora jest wymagany, możesz normalnie używać metod console.log()
w swoim kodzie:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- Komendy
console.log()
mają poziom dziennika INFO . - Komendy
console.info()
mają poziom dziennika INFO . - Komendy
console.warn()
mają poziom dziennika ERROR . - Komendy
console.error()
mają poziom dziennika ERROR . - Wewnętrzne komunikaty systemowe mają poziom dziennika DEBUG .
Przeglądanie dzienników
Dzienniki Cloud Functions można przeglądać w Google Cloud Console , interfejsie Cloud Logging lub za pomocą narzędzia wiersza poleceń firebase
.
Korzystanie z interfejsu wiersza polecenia Firebase
Aby wyświetlić logi za pomocą narzędzia firebase
, użyj polecenia functions:log
:
firebase functions:log
Aby wyświetlić dzienniki dla określonej funkcji, podaj nazwę funkcji jako argument:
firebase functions:log --only <FUNCTION_NAME>
Pełen zakres opcji przeglądania dzienników znajduje się w pomocy do functions:log
:
firebase help functions:log
Korzystanie z Google Cloud Console
Możesz przeglądać dzienniki funkcji w Google Cloud Console .
Korzystanie z interfejsu Cloud Logging
Możesz przeglądać dzienniki Cloud Functions w interfejsie Cloud Logging.
Analizowanie dzienników
Cloud Logging oferuje zaawansowany zestaw narzędzi do analizy logów, których można używać do monitorowania funkcji Cloud Functions.
Wykresy i alerty
Po utworzeniu metryk opartych na dziennikach do monitorowania funkcji można tworzyć wykresy i alerty na podstawie tych metryk. Na przykład możesz utworzyć wykres, aby zwizualizować opóźnienie w czasie lub utworzyć alert informujący o zbyt częstym występowaniu określonego błędu.
Zobacz Tworzenie wykresów i alertów, aby uzyskać szczegółowe informacje na temat używania metryk opartych na dziennikach na wykresach i zasadach alertów.
, Rejestrowanie jest ważnym narzędziem do debugowania i monitorowania kodu. Cloud Functions daje Ci możliwość korzystania z pakietu SDK rejestratora, niestandardowego Google Cloud Logging lub standardu obiektów console
do tworzenia aplikacji internetowych.
Pisanie dzienników
Chociaż pakiet SDK rejestratora Cloud Functions jest zalecany w większości sytuacji, możesz wybrać jedną z pozostałych opcji z tych powodów:
- Masz istniejącą bazę kodu i wolisz nie refaktoryzować z
console.log
. - Znasz Cloud Logging (wcześniej rejestrowanie StackDriver) i wolisz używać go do logowania niestandardowego.
Korzystanie z zestawu SDK rejestratora Cloud Functions
Pakiet SDK rejestratora Cloud Functions zapewnia standardowy interfejs, który ma interfejs API podobny do instrukcji console.log
i obsługuje inne poziomy rejestrowania. Możesz używać tego pakietu SDK do rejestrowania zdarzeń za pomocą danych strukturalnych , co ułatwia analizę i monitorowanie.
Zestaw SDK rejestratora obsługuje wpisy dziennika jako część importu symboli wieloznacznych. Na przykład:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
Alternatywnie możesz użyć indywidualnych eksportów. Ten przykład ilustruje dane strukturalne dołączone do dziennika jako ostatni argument:
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'
});
- Komendy
logger.log()
mają poziom dziennika INFO . - Komendy
logger.info()
mają poziom dziennika INFO . - Komendy
logger.warn()
mają poziom dziennika WARNING . - Komendy
logger.error()
mają poziom dziennika ERROR . - Wewnętrzne komunikaty systemowe mają poziom dziennika DEBUG .
Za pomocą logger.write()
można zapisywać wpisy w dzienniku oraz poziomy istotności dziennika CRITICAL
, ALERT
i EMERGENCY
. Zobacz LogSeverity .
Niestandardowe dzienniki Cloud Logging
Dzienniki Cloud Functions z pakietem SDK rejestratora są obsługiwane przez Cloud Logging . Możesz użyć biblioteki Cloud Logging dla Node.js do rejestrowania zdarzeń za pomocą danych strukturalnych, co ułatwia analizę i monitorowanie.
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);
Korzystanie z pliku console.log
Zalecanym rozwiązaniem do rejestrowania z funkcji jest użycie zestawu SDK rejestratora . Zamiast tego możesz użyć standardowych wywołań rejestrowania JavaScript, takich jak console.log
i console.error
, ale najpierw musisz wymagać specjalnego modułu, aby załatać standardowe metody, aby działały poprawnie:
require("firebase-functions/logger/compat");
Gdy moduł kompatybilności rejestratora jest wymagany, możesz normalnie używać metod console.log()
w swoim kodzie:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- Komendy
console.log()
mają poziom dziennika INFO . - Komendy
console.info()
mają poziom dziennika INFO . - Komendy
console.warn()
mają poziom dziennika ERROR . - Komendy
console.error()
mają poziom dziennika ERROR . - Wewnętrzne komunikaty systemowe mają poziom dziennika DEBUG .
Przeglądanie dzienników
Dzienniki Cloud Functions można przeglądać w Google Cloud Console , interfejsie Cloud Logging lub za pomocą narzędzia wiersza poleceń firebase
.
Korzystanie z interfejsu wiersza polecenia Firebase
Aby wyświetlić logi za pomocą narzędzia firebase
, użyj polecenia functions:log
:
firebase functions:log
Aby wyświetlić dzienniki dla określonej funkcji, podaj nazwę funkcji jako argument:
firebase functions:log --only <FUNCTION_NAME>
Pełen zakres opcji przeglądania dzienników znajduje się w pomocy do functions:log
:
firebase help functions:log
Korzystanie z Google Cloud Console
Możesz przeglądać dzienniki funkcji w Google Cloud Console .
Korzystanie z interfejsu Cloud Logging
Możesz przeglądać dzienniki Cloud Functions w interfejsie Cloud Logging.
Analizowanie dzienników
Cloud Logging oferuje zaawansowany zestaw narzędzi do analizy logów, których można używać do monitorowania funkcji Cloud Functions.
Wykresy i alerty
Po utworzeniu metryk opartych na dziennikach do monitorowania funkcji można tworzyć wykresy i alerty na podstawie tych metryk. Na przykład możesz utworzyć wykres, aby zwizualizować opóźnienie w czasie lub utworzyć alert informujący o zbyt częstym występowaniu określonego błędu.
Zobacz Tworzenie wykresów i alertów, aby uzyskać szczegółowe informacje na temat używania metryk opartych na dziennikach na wykresach i zasadach alertów.