Configurez les journaux de plate-forme dans Artifact Registry afin de pouvoir afficher des informations sur les requêtes réussies et celles ayant échoué adressées à vos dépôts Artifact Registry. Les journaux de plate-forme sont générés par Cloud Logging et peuvent être consultés dans l' explorateur de journaux. Vous pouvez examiner vos journaux de plate-forme Artifact Registry pour résoudre les problèmes liés aux requêtes ayant échoué, conserver des enregistrements des requêtes réussies et afficher le nombre de téléchargements d'un artefact.
Un journal de plate-forme est mis en forme en tant que LogEntry.
Présentation
Artifact Registry génère des journaux de plate-forme pour les appels d'API du plan de données et du plan de contrôle. Les actions du plan de contrôle incluent les opérations de gestion des dépôts, telles que la création, la modification des descriptions et la suppression de dépôts, ainsi que les actions de gestion des artefacts, telles que la liste, le tagging et la suppression d'artefacts. Les actions du plan de données incluent des opérations telles que l'envoi et l'extraction d'artefacts à partir de dépôts Artifact Registry.
Les journaux des deux types d'appels contiennent les informations suivantes :
- Détails de la demande
- Détails de la réponse
- État
- Libellés
- Nom de la méthode
- Nom de la ressource
- Emplacement de la ressource
- ID d'opération (pour les opérations de longue durée)
- Format du dépôt (pour les ressources de dépôt)
- Mode de dépôt (pour les ressources de dépôt)
En outre, les journaux des appels d'API du plan de contrôle contiennent les informations suivantes :
- Informations HTTP
- Mode de requête
- Request URL
- Taille de la requête (en octets)
- État
- Taille de la réponse (en octets)
- User-agent
- Adresse IP distante (adresse IP du client qui a émis la requête)
- Protocole
- Référent
- Latence
Vous pouvez afficher les journaux de plate-forme pour Artifact Registry dans le Logs Explorer.
Avant de commencer
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les journaux de plate-forme, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Administrateur Artifact Registry (
roles/artifactregistry.admin) -
Lecteur de journaux (
roles/logging.viewer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer la journalisation de la plate-forme
Vous pouvez activer la journalisation de la plate-forme pour l'ensemble de votre Google Cloud projet ou pour un dépôt spécifique.
Activer la journalisation de la plate-forme pour un projet
Pour activer la journalisation de la plate-forme pour votre Google Cloud projet, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts projects update --enable-platform-logs --severity=SEVERITY --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH -H "X-GFE-SSL: yes" -H "Content-Type: application/json" -d '{"name": "projects/'PROJECT'/locations/'LOCATION'/projectConfig", "platformLogsConfig": {"logging_state": "ENABLED", "severity_level": "SEVERITY"}}' "https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/projectConfig"
Où :
- SEVERITY détermine le type d'actions qui déclenchent
la création de journaux de plate-forme Artifact Registry.
Vous pouvez saisir
INFO,ERRORou exclure le champ--severitypour créer des journaux de plate-forme pour toutes les actions compatibles. - LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Activer la journalisation de la plate-forme pour un dépôt
Gcloud CLI
gcloud artifacts repositories update --enable-platform-logs --severity=SEVERITY REPOSITORY --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH \
-H "X-GFE-SSL: yes" -H "Content-Type: application/json" \
-d '{"name": "projects/'PROJECT'/locations/'LOCATION'/repositories/'REPOSITORY'", "platformLogsConfig": {"loggingState": "ENABLED", "severityLevel": "SEVERITY"}' \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY?updateMask=platformLogsConfig"
Où :
- SEVERITY détermine le type d'actions qui déclenchent
la création de journaux de plate-forme Artifact Registry.
Vous pouvez saisir
INFO,ERRORou exclure le champ--severitypour créer des journaux de plate-forme pour toutes les actions compatibles. - REPOSITORY correspond au nom de votre dépôt dans Artifact Registry.
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Vérifier la configuration de la journalisation de la plate-forme
Vous pouvez vérifier si la journalisation de la plate-forme Artifact Registry est activée dans votre projet ou pour un dépôt spécifique.
Vérifier la journalisation de la plate-forme pour un projet
Pour vérifier si la journalisation de la plate-forme Artifact Registry est activée dans votre projet, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts projects describe --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/projectConfig"
Où :
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Le résultat ressemble à ce qui suit :
{
"name": "projects/PROJECT/locations/{"<var>LOCATION</var>"}}/projectConfig"
"platformLogsConfig": {
"loggingState": "ENABLED"
"severityLevel": "INFO"
}
}
Vérifier la journalisation de la plate-forme pour un dépôt
Pour vérifier si la journalisation de la plate-forme Artifact Registry est activée dans un dépôt, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts repositories describe REPOSITORY --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY"
Où :
- REPOSITORY correspond au nom de votre dépôt.
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Le résultat ressemble à ce qui suit :
{
"name": "projects/PROJECT/locations/LOCATION/repositories/REPOSITORY"
"platformLogsConfig": {
"loggingState": "ENABLED",
"severityLevel": "INFO"
}
}
Désactiver la journalisation de la plate-forme
Vous pouvez désactiver la journalisation de la plate-forme pour l'ensemble de votre Google Cloud projet ou pour un dépôt spécifique.
Désactiver la journalisation de la plate-forme pour un projet
Pour désactiver la journalisation de la plate-forme pour votre Google Cloud projet, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts projects update --disable-platform-logs --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH \
-H "X-GFE-SSL: yes" -H "Content-Type: application/json" \
-d '{"name": "projects/'PROJECT'/locations/'LOCATION'/projectConfig", "platformLogsConfig": {"logging_state": "DISABLED"}}' \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/projectConfig"
Où :
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Désactiver la journalisation de la plate-forme pour un dépôt
Pour désactiver la journalisation de la plate-forme pour un dépôt, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts repositories update --disable-platform-logs REPOSITORY --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH \
-H "X-GFE-SSL: yes" -H "Content-Type: application/json" \
-d '{"name": "projects/'PROJECT'/locations/'LOCATION'/repositories/'REPOSITORY'", "platformLogsConfig": {"loggingState": "DISABLED", "severityLevel": "INFO"}' \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY?updateMask=platformLogsConfig"
Où :
- REPOSITORY correspond au nom de votre dépôt dans Artifact Registry.
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Effacer la configuration de la journalisation de la plate-forme
Vous pouvez effacer la configuration de la journalisation de la plate-forme pour un projet ou pour un dépôt. Lorsque vous exécutez la commande d'effacement, les valeurs loggingState et severityLevel de votre projet ou dépôt sont définies sur null.
Si vous effacez la configuration de votre projet, seuls les dépôts pour lesquels la journalisation de la plate-forme a déjà été activée généreront des journaux de plate-forme. Si vous effacez la configuration d'un dépôt, ce dépôt hérite de la configuration de la journalisation de la plate-forme de votre projet.
Effacer la configuration de la journalisation de la plate-forme pour un projet
Pour effacer la configuration de la journalisation de la plate-forme de votre Google Cloud projet, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts projects update --clear-platform-logs --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH \
-H "X-GFE-SSL: yes" -H "Content-Type: application/json" \
-d '{"name": "projects/'PROJECT'/locations/'LOCATION'/projectConfig", "platformLogsConfig": {}}' \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/projectConfig"
Où :
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Effacer la configuration de la journalisation de la plate-forme pour un dépôt
Pour effacer la configuration de la journalisation de la plate-forme d'un dépôt, exécutez la commande suivante :
Gcloud CLI
gcloud artifacts repositories update --clear-platform-logs REPOSITORY --location LOCATION --project PROJECT
curl
curl -v -H "Authorization: Bearer $(gcloud auth print-access-token)" -X PATCH \
-H "X-GFE-SSL: yes" -H "Content-Type: application/json" \
-d '{"name": "projects/'PROJECT'/locations/'LOCATION'/repositories/'REPOSITORY'", "platformLogsConfig": {}' \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY?updateMask=platformLogsConfig"
Où :
- REPOSITORY correspond au nom de votre dépôt dans Artifact Registry.
- LOCATION correspond à l'emplacement de votre dépôt.
- PROJECT correspond à l'ID de projet. Si cette option est ignorée, alors le projet en cours ou par défaut est utilisé.
Afficher les journaux de plate-forme
Pour afficher vos journaux de plate-forme, procédez comme suit :
Ouvrez la page Explorateur de journaux dans la Google Cloud console.
Dans le volet de requête, cliquez sur la liste déroulante Nom du journal.
Saisissez requests, puis cochez la case requests sous l'en-tête Artifact Registry.
Cliquez sur Appliquer.
Logging affiche les journaux des appels d'API du plan de données et du plan de contrôle dans le volet Résultats de la requête.
Pour afficher le contenu d'un journal, cliquez sur la flèche à côté de n'importe quel journal listé dans les résultats de la requête.
Pour en savoir plus sur l'interprétation des résultats de requête dans l'explorateur de journaux, consultez Afficher les résultats de votre requête.
Analyser les journaux de plate-forme avec Observability Analytics
Vous pouvez utiliser Observability Analytics pour exécuter des requêtes SQL sur vos journaux Artifact Registry, ce qui vous permet d'analyser vos journaux plus en détail. Cette section contient plusieurs exemples de requêtes pour des cas d'utilisation courants. Vous pouvez adapter ces requêtes pour analyser d'autres aspects de votre utilisation d'Artifact Registry en filtrant différents champs dans la LogEntry LogEntry.
Avant de commencer à utiliser Observability Analytics, procédez comme suit :
Configurez vos buckets de journaux pour utiliser Observability Analytics.
Configurez les rôles et autorisations Identity and Access Management pour utiliser Observability Analytics.
Ensuite, suivez la procédure décrite dans Saisir et exécuter une requête personnalisée. Lorsque vous accédez au volet SQL Requête, vous pouvez saisir l'un des exemples de requêtes suivants :
Exemple : 10 premières adresses IP par volume téléchargé
Cette requête évalue vos journaux de plate-forme Artifact Registry et renvoie les 10 premières adresses IP qui ont téléchargé le plus de données à partir de vos dépôts au cours des sept derniers jours :
SELECT
http_request.remote_ip AS client_ip,
SUM(http_request.response_size) AS total_download_bytes
FROM
`YOUR_PROJECT.YOUR_LOCATION.YOUR_BUCKET._AllLogs`
WHERE
log_id = "artifactregistry.googleapis.com/requests"
AND JSON_VALUE(resource.labels.repository_id) IS NOT NULL
AND http_request.request_method = "GET"
AND http_request.status >= 200 AND http_request.status < 300
AND http_request.response_size > 0
AND CAST(http_request.response_size AS INT64) > 0
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
GROUP BY
client_ip
ORDER BY
total_download_bytes DESC
LIMIT 10;
Exemple : Requêtes par dépôt
Cette requête évalue vos journaux de plate-forme Artifact Registry et renvoie le nombre de requêtes adressées à chaque dépôt au cours des dernières 24 heures :
SELECT
JSON_VALUE(resource.labels.repository_id) AS repository,
JSON_VALUE(resource.labels.location) AS location,
COUNT(*) AS request_count
FROM
`YOUR_PROJECT.YOUR_LOCATION.YOUR_BUCKET._AllLogs`
WHERE
log_id = "artifactregistry.googleapis.com/requests"
AND JSON_VALUE(resource.labels.repository_id) IS NOT NULL
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
GROUP BY
repository,
location
ORDER BY
request_count DESC;
Exemple : Requêtes ayant échoué
Cette requête évalue vos journaux de plate-forme Artifact Registry et liste les détails des 10 requêtes ayant échoué les plus récentes au cours de la dernière heure :
SELECT
timestamp,
http_request.status,
http_request.request_method,
http_request.request_url,
http_request.remote_ip,
JSON_VALUE(resource.labels.repository_id) AS repository,
JSON_VALUE(labels.resource_name) AS artifact_name,
trace
FROM
`YOUR_PROJECT.YOUR_LOCATION.YOUR_BUCKET._AllLogs`
WHERE
log_id = "artifactregistry.googleapis.com/requests"
AND JSON_VALUE(resource.labels.repository_id) IS NOT NULL
AND http_request.status >= 400
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
ORDER BY
timestamp DESC
LIMIT 10;