Cette page vous explique comment configurer et utiliser Cloud Logging et Cloud Monitoring avec les plug-ins d'extensions de service pour Media CDN.
Journalisation
Cette section décrit les journaux des extensions de service pour les plug-ins Media CDN, et explique comment afficher et mettre en corrélation les informations contenues dans les messages de journaux.
Messages de journal
Les extensions de service permettent de générer des messages de journaux lors de l'exécution de votre plug-in. L'enregistrement des journaux est désactivé par défaut. Pour enregistrer les journaux d'un plug-in, activez-le lorsque vous créez le plug-in ou que vous le mettez à jour.
Les journaux de plug-ins sont annotés avec les informations contextuelles suivantes :
- Annotations de journaux standards, telles que le code temporel et le niveau de journalisation.
- Identité du plug-in qui a généré le message.
- Le rappel du plug-in dans lequel le message de journal a été généré.
- Identifiant de trace
requestIdqui permet de déterminer le journal des requêtes auquel un message de journal est associé.
Les journaux pertinents pour les extensions de service appartiennent à l'une des catégories suivantes :
Messages de journal du plug-in
Généré par un appel de journalisation, tel que
info!(...)pour Rust,proxywasm.LogInfo(...)pour Go ouLOG_INFOpour C++. Service Extensions exporte ces messages de journal vers Cloud Logging. Vous pouvez consigner les en-têtes de requête et de réponse, ainsi que toutes les actions effectuées par le plug-in.Vous pouvez afficher ces messages à l'aide du service
networkservices.googleapis.com.Messages de journaux Media CDN
Messages de journaux Media CDN pour les requêtes HTTP adressées aux ressources
EdgeCacheServiceavec une action Wasm associée. Il s'agit d'entrées de journaux Media CDN standards qui sont visibles sous le serviceedgecache.googleapis.com.
Activer la journalisation pour un plug-in
Les extensions de service permettent de générer des messages de journaux lors de l'exécution de votre plug-in. L'enregistrement des journaux est désactivé par défaut.
Pour enregistrer les journaux d'un plug-in, activez-le lorsque vous créez le plug-in ou que vous le mettez à jour.
Pour activer la journalisation pour un plug-in existant, utilisez la commande gcloud beta service-extensions wasm-plugins update :
gcloud beta service-extensions wasm-plugins update WASM_PLUGIN \
--log-config=[LOG_CONFIG,...]
Remplacez les éléments suivants :
WASM_PLUGIN: ID ou nom complet du plug-inLOG_CONFIG: options de journalisation pour le plug-in. Pour activer la journalisation, définissez l'optionenablesurtrue. Indiquez ensuite les informations suivantes :sample-rate: taux d'échantillonnage des journaux d'activité, sous la forme d'une valeur comprise entre0et1. La valeur0indique que les messages du journal ne sont pas stockés. La valeur par défaut1indique que tous les messages du journal sont stockés. Une valeur à virgule flottante comprise entre0.0et1.0indique qu'un pourcentage de messages de journaux est stocké.min-log-level: niveau de gravité minimal des messages de journaux de plug-in à exporter vers Cloud Logging. La valeur par défaut estINFO.
Pour afficher les journaux, accédez à la page Explorateur de journaux dans la console Google Cloud .
Afficher les messages de journal
Vous pouvez afficher les journaux en créant des requêtes dans l'explorateur de journaux.
Vous pouvez afficher les journaux de plug-in en tant que journaux d'extensions de service autonomes. Dans cette vue, chaque message de journal de plug-in est enregistré dans son propre enregistrement de journal et n'est pas automatiquement associé aux informations du journal des requêtes.
Ces messages de journal se trouvent dans le journal networkactions.googleapis.com/wasm_plugin_activity avec le type de ressource networkactions.googleapis.com/WasmPluginVersion.
Le système peut également ajouter des messages de journaux informatifs à ce journal.
Par exemple, si un plug-in échoue lorsqu'un appel de plug-in dépasse les limites de processeur ou de mémoire, un message de gravité ERROR est consigné. Ces messages peuvent également être consultés dans Afficher et filtrer les erreurs.
Vous pouvez également afficher les messages de journal corrélés avec les journaux de requêtes Media CDN correspondants dans l'explorateur de journaux. Lorsque vous consultez les journaux de requêtes et que vous développez une entrée de journal de requêtes, les journaux de plug-in associés à la requête apparaissent imbriqués sous le journal de requêtes. Cette vue vous aide à comprendre les journaux de plug-ins dans le contexte de leur requête associée.
Exemples de journaux
Prenons l'exemple d'une entrée de journal d'extensions de service. La valeur de message est transmise à l'appel LOG_INFO du plug-in. La valeur severity dépend du niveau de journalisation utilisé dans l'appel de journal du plug-in. Dans la section labels, la valeur de l'API est HTTP_REQUEST_HEADER, ce qui indique que l'opération journalisée est le rappel du plug-in on_http_request_headers.
{
"insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networkactions.logging.v1.WasmPluginLogEntry",
"metroIataCode": "ber",
"proxyRegionCode": "DE",
"message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
},
"resource": {
"type": "networkactions.googleapis.com/WasmPluginVersion",
"labels": {
"plugin_version": "prod-1",
"resource_container": "projects/123456789",
"location": "global",
"plugin_name": "add-headers-plugin-prod-resource"
}
},
"timestamp": "2023-05-10T03:05:43.317015458Z",
"severity": "INFO",
"labels": {
"networkactions.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
},
"logName": "projects/123456789/logs/networkactions.googleapis.com%2Fwasm_plugin_activity",
"trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
requestId et trace sont identiques dans les deux messages du journal.
{
"insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
"jsonPayload": {
"cacheMode": "USE_ORIGIN_HEADERS",
"@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
"wasmAction": "add-headers-action-prod-resource",
"cacheKeyFingerprint": "f04d02bb12f2e79e",
"proxyStatus": "Google-Edge-Cache",
"clientCity": "Erlangen",
"clientAsn": "8881",
"origin": "example-origin",
"cacheId": "ber",
"tlsVersion": "NONE",
"latency": "0.002840304s",
"originIp": "142.250.145.128",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1",
"clientRegionCode": "DE",
"originalRequestId": "7656c418-df7c-4ae5-9db5-4f247ec5a82c",
"httpTtfb": "0.002814903s",
"metroIataCode": "BER",
"proxyRegionCode": "DE",
"cacheStatus": "hit"
},
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://example.com/image.jpg",
"requestSize": "1631",
"status": "200",
"responseSize": "402907",
"userAgent": "Wtrace",
"remoteIp": "2001:1438:1:19::5",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "edgecache.googleapis.com/EdgeCacheRouteRule",
"labels": {
"location": "global",
"route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example-origin",
"matched_path": "/turing/",
"route_type": "ORIGIN",
"path_matcher_name": "routes",
"resource_container": "projects/123456789",
"service_name": "example-service"
}
},
"timestamp": "2023-05-10T03:05:43.321347304Z",
"logName": "projects/bdn-prober/logs/edgecache.googleapis.com%2Fedge_cache_request",
"trace": "projects/1069774196212/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:49.919781008Z"
}
Limites
Les plug-ins sont limités à la journalisation de 16 Kio de données de charge utile par requête HTTP du client. Ce montant est réparti sur plusieurs appels de journalisation associés à une requête HTTP donnée. Cette limite ne s'applique qu'au texte des messages de journaux, et non aux métadonnées supplémentaires ajoutées à l'enregistrement du journal par les extensions de service.
Par exemple, si un rappel on_http_request_headers effectue deux appels de journalisation avec des messages de 4 Kio chacun, puis qu'un rappel on_http_response_headers tente d'effectuer trois appels de journalisation avec des messages de 4 Kio chacun pour la même requête HTTP, le troisième message de journalisation est supprimé. Un message de journal est ajouté pour enregistrer le nombre de messages de journal générés par le plug-in qui ont été supprimés.
Surveillance
Cette section explique comment utiliser les tableaux de bord Cloud Monitoring pour afficher les métriques des extensions de service pour les plug-ins Media CDN.
Pour en savoir plus sur les types de métriques des extensions de service, consultez la page MétriquesGoogle Cloud .
Afficher le tableau de bord Monitoring pour les extensions de service
Pour afficher le tableau de bord "Surveillance" des extensions de service, procédez comme suit :
- Dans la console Google Cloud , accédez à la page Extensions de service.
- Cliquez sur l'onglet Plugins.
- Cliquez sur le nom d'un plug-in.
- Sur la page Détails du plug-in, cliquez sur l'onglet Surveillance.
- Pour afficher les métriques des opérations du cycle de vie du plug-in, sélectionnez des valeurs dans la liste Filtre "Opération". Par défaut, les valeurs
HTTP request headeretHTTP response headersont sélectionnées. - Pour afficher les métriques d'une version spécifique du plug-in, sélectionnez une valeur dans la liste Filtre "Version du plug-in". Par défaut, les métriques sont affichées pour toutes les versions.
- Pour modifier la période pour laquelle vous souhaitez afficher les données, sélectionnez une période prédéfinie dans le sélecteur de période ou cliquez sur Personnalisée, puis définissez une heure de début et une heure de fin. Par défaut, le sélecteur est défini sur
1 day.
Sur la page Surveillance, les graphiques de métriques affichent des informations qui peuvent vous aider à surveiller les performances du plug-in.
Métriques des plug-ins pour les extensions de service
Vous pouvez surveiller les métriques suivantes pour les plug-ins du point de vue des extensions de service. Ces métriques sont précédées du préfixe networkactions.googleapis.com/wasm_plugin/. Le préfixe est omis dans les entrées du tableau.
| Type de métrique | Nom à afficher
Genre, type, unité Description |
|---|---|
invocation_count
|
Nombre d'appels du plug-in Wasm
DELTA, INT64, 1
Nombre d'appels du plug-in au cours de la période sélectionnée. Chaque invocation de rappel de plug-in est comptabilisée comme une invocation de plug-in distincte. |
invocation_latencies
|
Latence d'appel du plug-in Wasm
DELTA, DISTRIBUTION, us
Temps d'exécution local du plug-in, en millisecondes. La métrique inclut des entrées délimitées par des libellés pour chaque rappel. |
cpu/usage_times
|
Utilisation normalisée du processeur par le plug-in Wasm
DELTA, DISTRIBUTION, us{CPU}
Temps d'utilisation du processeur par les appels de plug-in, en microsecondes. |
memory/bytes_used
|
Utilisation de la mémoire par le plug-in Wasm
GAUGE, DISTRIBUTION, By
Mémoire totale allouée par les VM du plug-in Wasm, en octets. |
Métriques de plug-in pour Media CDN
Vous pouvez surveiller les métriques suivantes pour les plug-ins du point de vue de Media CDN. Les chaînes de type de métrique comportent le préfixe suivant : edgecache.googleapis.com/edge_cache_route_rule/network_actions/.
Le préfixe est omis dans les entrées du tableau.
| Type de métrique | Nom à afficher
Genre, type, unité Description |
|---|---|
wasm_action_invocation_count
|
Nombre d'invocations des extensions de service
DELTA, INT64, 1
Nombre d'invocations des extensions de service gérées par Media CDN au cours de la période sélectionnée. |
wasm_action_invocation_latencies
|
Latence d'invocation des extensions de service
DELTA, DISTRIBUTION, us
Temps total, en millisecondes, nécessaire à Media CDN pour distribuer et exécuter le plug-in. La métrique inclut les entrées délimitées par des libellés pour les rappels des extensions de service. |