Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Filter access logs with CEL expressions

Dernière mise à jour :Aug 11, 2026

Les journaux d'accès du plan de données Service Mesh (ASM) offrent une visibilité sur les modèles de requêtes, les taux d'erreur et le comportement des services. Dans les environnements à fort trafic, la journalisation non filtrée surcharge les proxys sidecar et génère plus de données que vous ne pouvez analyser utilement.

Common Expression Language (CEL) vous permet d'écrire des règles de filtrage qui contrôlent les entrées de journal émises par le proxy sidecar. Chaque expression CEL est évaluée pour chaque requête : les entrées sont enregistrées lorsque l'expression renvoie true et ignorées lorsqu'elle renvoie false.

Exemples d'expressions CEL

Les exemples ci-dessous vont des filtres à condition unique aux règles multi-conditions.

Filtrer par code d'état de réponse

Enregistrez uniquement les réponses d'erreur (code d'état 400 et supérieur) :

response.code >= 400

response.code correspond au code d'état HTTP. Cette expression ignore les entrées 1xx, 2xx et 3xx, en conservant uniquement les erreurs client (4xx) et les erreurs serveur (5xx).

Faire correspondre les chemins d'URL de requête

Enregistrez les requêtes dont le chemin contient une sous-chaîne spécifique :

request.url_path.contains('login')

request.url_path représente le chemin de la requête HTTP sans la chaîne de requête. contains est une méthode de chaîne standard CEL qui renvoie un booléen.

Combiner des conditions avec des opérateurs logiques

Créez des filtres multi-conditions à l'aide de && (ET) et || (OU).

ET -- toutes les conditions doivent correspondre :

request.url_path.contains('login') && request.headers['x-user-type'] == 'dev'

Enregistre les requêtes dont le chemin contient login et dont l'en-tête x-user-type est égal à dev. request.headers est une map<string, string> contenant tous les en-têtes de requête.

OU -- au moins une condition doit correspondre :

request.url_path.contains('login') || request.url_path.contains('logout')

Enregistre les requêtes dont le chemin contient login ou logout.

Attributs CEL pris en charge

Attributs de requête

Attribut Type Description
request.path string Chemin URL HTTP avec la chaîne de requête
request.url_path string Chemin URL HTTP sans la chaîne de requête
request.host string Nom d'hôte issu de l'URL HTTP
request.scheme string Schéma d'URL, tel que HTTP ou HTTPS
request.method string Méthode HTTP, telle que GET ou POST
request.headers map Tous les en-têtes de requête
request.referer string Valeur de l'en-tête Referer
request.useragent string Valeur de l'en-tête User-Agent
request.time timestamp Heure de réception du premier octet de la requête
request.id string Valeur de l'en-tête x-request-id
request.protocol string Protocole de requête, tel que HTTP/1.0, HTTP/1, HTTP/2 ou HTTP/3
request.query string Chaîne de requête URL, telle que name1=value1&name2=value2
request.duration duration Durée totale de la requête
request.size int Taille du corps de la requête. Utilise la valeur de l'en-tête Content-Length lorsque celle-ci est disponible.
request.total_size int Taille totale de la requête, y compris les en-têtes

Attributs de réponse

Attribut Type Description
response.code int Code d'état HTTP
response.code_details string Description du code d'état de la réponse
response.flags int Détails supplémentaires de la réponse au-delà du code d'état HTTP, encodés sous forme de vecteur de bits
response.grpc_status int Code d'état gRPC
response.headers map Tous les en-têtes de réponse
response.trailers map Tous les trailers de réponse
response.size int Taille du corps de la réponse
response.total_size int Taille totale de la réponse, y compris les en-têtes

Attributs de connexion descendante (downstream)

Attribut Type Description
source.address string Adresse du client descendant
source.port int Port du client descendant
destination.address string Adresse de destination de la connexion descendante
destination.port int Port de destination de la connexion descendante
connection.id uint ID de la connexion descendante
connection.mtls bool Indique si mTLS est activé et si la connexion transporte un certificat client
connection.requested_server_name string Nom du serveur demandé par la connexion TLS descendante (SNI)
connection.tls_version string Version TLS de la connexion descendante
connection.subject_local_certificate string Champ Subject du certificat serveur
connection.subject_peer_certificate string Champ Subject du certificat client
connection.dns_san_local_certificate string Première entrée DNS dans le champ SAN du certificat serveur
connection.dns_san_peer_certificate string Première entrée DNS dans le champ SAN du certificat client
connection.uri_san_local_certificate string Première entrée URI dans le champ SAN du certificat serveur
connection.uri_san_peer_certificate string Première entrée URI dans le champ SAN du certificat client
connection.sha256_peer_certificate_digest string Digest SHA256 du certificat client
connection.transport_failure_reason string Raison de l'échec du transport, telle qu'un échec de validation du certificat

Attributs de connexion amont (upstream)

Attribut Type Description
upstream.address string Adresse de destination de la connexion amont
upstream.port int Port de destination de la connexion amont
upstream.tls_version string Version TLS de la connexion amont
upstream.subject_local_certificate string Champ Subject du certificat client utilisé pour la connexion amont
upstream.subject_peer_certificate string Champ Subject du certificat serveur utilisé pour la connexion amont
upstream.dns_san_local_certificate string Première entrée DNS dans le champ SAN du certificat client
upstream.dns_san_peer_certificate string Première entrée DNS dans le champ SAN du certificat serveur
upstream.uri_san_local_certificate string Première entrée URI dans le champ SAN du certificat client
upstream.uri_san_peer_certificate string Première entrée URI dans le champ SAN du certificat serveur
upstream.sha256_peer_certificate_digest string Digest SHA256 du certificat serveur
upstream.local_address string Adresse locale de la connexion amont
upstream.transport_failure_reason string Raison de l'échec du transport amont, telle qu'un échec de validation du certificat