Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
Istio: puerta de enlace de salida: use la métrica istio_requests_total

Soy nuevo en Istio y tengo el siguiente problema. Estoy tratando de configurar la puerta de enlace de salida para la comunicación de servicios externos a través de tls/443 como en el siguiente ejemplo: https://istio.io/latest/docs/tasks/traffic-management/egress/egress-gateway/#egress -gateway-para-https-tráfico .

Todo parece funcionar correctamente. Para el tráfico saliente del servicio 'externalapi', obtengo la métrica istio_tcp_connections_closed_total. Y aquí está mi pregunta:

¿Hay alguna forma de reemplazar la métrica istio_tcp_connections_closed_total con istio_requests_total para el tráfico saliente que pasa por la puerta de enlace de salida? Me gustaría obtener información adicional, como códigos de respuesta para el tráfico saliente.

Aquí está mi configuración:

 apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: externalapi-egress spec: hosts: - externalapi.mydomain.com ports: - number: 443 name: tls protocol: TLS resolution: DNS location: MESH_EXTERNAL --- apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: externalapi-egress spec: selector: istio: egressgateway servers: - port: number: 443 name: tls protocol: TLS hosts: - externalapi.mydomain.com tls: mode: PASSTHROUGH --- apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: externalapi-egress spec: host: istio-egressgateway.istio-system.svc.cluster.local subsets: - name: externalapi-egress --- apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: externalapi spec: hosts: - externalapi.mydomain.com gateways: - externalapi-egress - mesh tls: - match: - gateways: - mesh port: 443 sniHosts: - externalapi.mydomain.com route: - destination: host: istio-egressgateway.istio-system.svc.cluster.local subset: externalapi-egress port: number: 443 weight: 100 - match: - gateways: - externalapi-egress port: 443 sniHosts: - externalapi.mydomain.com route: - destination: host: externalapi.mydomain.com port: number: 443 weight: 100

Otra información de configuración:

  1. Istio: 1.8.0 instalado a través de IstioOperator.

Gracias por ayudarme con esto, Roberto.

Editar: Me gustaría encontrar una manera de generar la métrica istio_requests_total para el tráfico que va a externalapi en lugar de istio_tcp_connections_closed_total.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

tldr: no puedes hacer esto.


Ahora la respuesta larga.

De la documentación de istio sobre métricas :

Para el tráfico HTTP, HTTP/2 y GRPC, Istio genera las siguientes métricas:

Recuento de solicitudes (istio_requests_total): Este es un CONTADOR incrementado por cada solicitud manejada por un proxy de Istio.

. . .

Para el tráfico TCP, Istio genera las siguientes métricas :

Byte Tcp enviado (istio_tcp_sent_bytes_total): este es un CONTADOR que mide el tamaño del total de bytes enviados durante la respuesta en el caso de una conexión TCP.

Byte Tcp recibido (istio_tcp_received_bytes_total): este es un CONTADOR que mide el tamaño del total de bytes recibidos durante la solicitud en el caso de una conexión TCP.

Conexiones Tcp abiertas (istio_tcp_connections_opened_total): Este es un CONTADOR incrementado por cada conexión abierta.

Conexiones Tcp Cerradas (istio_tcp_connections_closed_total): Este es un CONTADOR incrementado por cada conexión cerrada.

. . .

Tenga en cuenta que istio_requests_total (según la documentación) cuenta la cantidad de solicitudes y esta métrica solo está disponible para el tráfico HTTP, HTTP/2 y GRPC.

Para el tráfico de TCP no hay solicitudes_total mertic porque sería difícil decir qué definir como una solicitud. Es por eso que para tcp solo puede contar bytes y número de conexiones.

Ahora puede decir: " oye, no estoy usando tcp, estoy usando https (http sobre tls), por lo que debería poder contar las solicitudes, ¿verdad? ", y estaría equivocado.

Antes de continuar, permítanme mencionar primero la "conexión persistente HTTP", que wikipedia define como:

La conexión persistente HTTP, también llamada HTTP keep-alive o reutilización de la conexión HTTP, es la idea de usar una única conexión TCP para enviar y recibir múltiples solicitudes/respuestas HTTP , en lugar de abrir una nueva conexión para cada par de solicitud/respuesta. El protocolo HTTP/2 más nuevo usa la misma idea y la lleva más allá para permitir que múltiples solicitudes/respuestas simultáneas se multiplexen a través de una sola conexión.

Ahora bien, ¿por qué menciono esto?

TLS es tráfico encriptado. Nada puede asomarse al interior. En caso de que su aplicación envíe/reciba múltiples solicitudes/respuestas a través de una única conexión tls (usando una conexión persistente HTTP), es imposible contar cada solicitud consecutiva porque está encriptada de extremo a extremo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda