Los registros de acceso del plano de datos de Service Mesh (ASM) proporcionan visibilidad sobre los patrones de solicitud, las tasas de error y el comportamiento de los servicios. En entornos con alto volumen de tráfico, el registro sin filtrar genera sobrecarga en los proxies sidecar y produce más datos de los que se pueden analizar de manera efectiva.
Common Expression Language (CEL) permite escribir reglas de filtrado que controlan qué entradas de registro emite el proxy sidecar. Cada expresión CEL se evalúa por solicitud: las entradas se registran cuando la expresión devuelve true y se descartan cuando devuelve false.
Ejemplos de expresiones CEL
Los siguientes ejemplos avanzan desde filtros de condición única hasta reglas de múltiples condiciones.
Filtrado por código de estado de respuesta
Registre únicamente las respuestas de error (código de estado 400 o superior):
response.code >= 400
response.code es el código de estado HTTP. Esta expresión descarta las entradas 1xx, 2xx y 3xx, y conserva solo los errores de cliente (4xx) y los errores de servidor (5xx).
Coincidencia con rutas de URL de solicitud
Registre las solicitudes cuya ruta contenga una subcadena específica:
request.url_path.contains('login')
request.url_path es la ruta de la solicitud HTTP sin la cadena de consulta. contains es un método estándar de cadenas de CEL que devuelve un valor booleano.
Combinación de condiciones con operadores lógicos
Construya filtros de múltiples condiciones con && (AND) y || (OR).
AND: todas las condiciones deben coincidir:
request.url_path.contains('login') && request.headers['x-user-type'] == 'dev'
Registra las solicitudes donde la ruta contiene login y el encabezado x-user-type es igual a dev. request.headers es un map<string, string> con todos los encabezados de la solicitud.
OR: cualquier condición coincide:
request.url_path.contains('login') || request.url_path.contains('logout')
Registra las solicitudes donde la ruta contiene login o logout.
Atributos CEL compatibles
Atributos de solicitud
|
Atributo |
Tipo |
Descripción |
|
|
string |
Ruta de la URL HTTP con la cadena de consulta |
|
|
string |
Ruta de la URL HTTP sin la cadena de consulta |
|
|
string |
Nombre de host de la URL HTTP |
|
|
string |
Esquema de la URL, como |
|
|
string |
Método HTTP, como |
|
|
map<string, string> |
Todos los encabezados de la solicitud |
|
|
string |
Valor del encabezado Referer |
|
|
string |
Valor del encabezado User-Agent |
|
|
timestamp |
Momento en que se recibió el primer byte de la solicitud |
|
|
string |
Valor del encabezado x-request-id |
|
|
string |
Protocolo de la solicitud, como |
|
|
string |
Cadena de consulta de la URL, como |
|
|
duration |
Duración total de la solicitud |
|
|
int |
Tamaño del cuerpo de la solicitud. Utiliza el valor del encabezado Content-Length cuando está disponible. |
|
|
int |
Tamaño total de la solicitud, incluidos los encabezados |
Atributos de respuesta
|
Atributo |
Tipo |
Descripción |
|
|
int |
Código de estado HTTP |
|
|
string |
Descripción del código de estado de la respuesta |
|
|
int |
Detalles adicionales de la respuesta más allá del código de estado HTTP, codificados como un vector de bits |
|
|
int |
Código de estado gRPC |
|
|
map<string, string> |
Todos los encabezados de la respuesta |
|
|
map<string, string> |
Todos los trailers de la respuesta |
|
|
int |
Tamaño del cuerpo de la respuesta |
|
|
int |
Tamaño total de la respuesta, incluidos los encabezados |
Atributos de conexión downstream
|
Atributo |
Tipo |
Descripción |
|
|
string |
Dirección del cliente downstream |
|
|
int |
Puerto del cliente downstream |
|
|
string |
Dirección de destino de la conexión downstream |
|
|
int |
Puerto de destino de la conexión downstream |
|
|
uint |
ID de la conexión downstream |
|
|
bool |
Indica si mTLS está habilitado y la conexión transporta un certificado de cliente |
|
|
string |
Nombre de servidor solicitado por la conexión TLS downstream (SNI) |
|
|
string |
Versión de TLS de la conexión downstream |
|
|
string |
Campo Subject del certificado de servidor |
|
|
string |
Campo Subject del certificado de cliente |
|
|
string |
Primera entrada DNS en el campo SAN del certificado de servidor |
|
|
string |
Primera entrada DNS en el campo SAN del certificado de cliente |
|
|
string |
Primera entrada URI en el campo SAN del certificado de servidor |
|
|
string |
Primera entrada URI en el campo SAN del certificado de cliente |
|
|
string |
Resumen SHA256 del certificado de cliente |
|
|
string |
Motivo de fallo de transporte, como un error en la validación del certificado |
Atributos de conexión upstream
|
Atributo |
Tipo |
Descripción |
|
|
string |
Dirección de destino de la conexión upstream |
|
|
int |
Puerto de destino de la conexión upstream |
|
|
string |
Versión de TLS de la conexión upstream |
|
|
string |
Campo Subject del certificado de cliente utilizado para la conexión upstream |
|
|
string |
Campo Subject del certificado de servidor utilizado para la conexión upstream |
|
|
string |
Primera entrada DNS en el campo SAN del certificado de cliente |
|
|
string |
Primera entrada DNS en el campo SAN del certificado de servidor |
|
|
string |
Primera entrada URI en el campo SAN del certificado de cliente |
|
|
string |
Primera entrada URI en el campo SAN del certificado de servidor |
|
|
string |
Resumen SHA256 del certificado de servidor |
|
|
string |
Dirección local de la conexión upstream |
|
|
string |
Motivo de fallo de transporte upstream, como un error en la validación del certificado |