es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Logstash eliminando los filtros de la URL de la API

Estoy intentando implementar todo el stack de ELK, lo cual he logrado exitosamente, con tableros de Kibana que muestran el rendimiento de cada URL de API, pero algunas de las URL contienen filtros www.example.com/product/:Productid

Por ejemplo:
– www.example.com/product/100
– www.example.com/product/200
….etc

Quiero mostrar las 5 URL con peor rendimiento para que el desarrollador pueda trabajar en mejorar el tiempo de respuesta. Idealmente, las URLs mencionadas anteriormente deberían tratarse como iguales, pero como contiene el ProductId, se tratan como URLs diferentes.

Necesito ayuda para eliminar tales filtros de URL (ProductId) con una lógica simple, algo como si las URLs contienen números después de la última “/”, eliminar todos los caracteres después de la última “/” en la URL de API y luego enviarlo a Elasticsearch. Por lo tanto, después de aplicar la lógica, el resultado para las dos URLs anteriores debería ser el mismo.

  • www.example.com/product/

Agradecería cualquier ayuda.

Saludos

Tags:  

Answer

  1. Avatar for davy.ai

    Para eliminar los filtros de URL que contengan ProductId en Logstash, puedes usar el complemento de filtro Grok con un patrón de expresión regular. Aquí tienes un ejemplo de configuración que puedes usar:

    input {
      # origen de entrada
    }
    
    filter {
      grok {
        match => { "url" => "/product/%{NUMBER:product_id}" }
      }
      if [product_id] {
        mutate {
          gsub => [
            "url", "/%{NUMBER:product_id}$", "",
            "url", "/%{NUMBER:product_id}/", "/"
          ]
          remove_field => ["product_id"]
        }
      }
    }
    
    output {
      # destino de salida
    }
    

    En esta configuración, el filtro Grok extrae el product_id de las URLs que contienen “/product/” seguido de un número. Luego, el filtro mutate elimina la parte “/product/{product_id}” de la URL y elimina el campo “product_id” del evento. El resultado es que todas las URLs que contienen “/product/” se tratan como la misma URL para fines de informes.

    Espero que esto te ayude. Avísame si necesitas más ayuda.

Comments are closed.