viernes, 31 de mayo de 2024

Observabilidad con Dynatrace: Una Guía Completa

 En la era digital, donde las aplicaciones y los servicios son el núcleo de las operaciones comerciales, la observabilidad se ha convertido en una práctica esencial. La observabilidad permite a los equipos de TI y DevOps entender qué está sucediendo dentro de sus sistemas y aplicaciones para asegurar un rendimiento óptimo y solucionar problemas rápidamente. Dynatrace es una de las herramientas líderes en el mercado para implementar una observabilidad efectiva. En este artículo, exploraremos qué es la observabilidad, los componentes clave de Dynatrace y cómo puede ayudar a tu organización a mejorar su infraestructura y rendimiento de aplicaciones.


¿Qué es la Observabilidad?

La observabilidad es la capacidad de medir el estado interno de un sistema mediante la inspección de sus salidas. En el contexto de la TI, la observabilidad se centra en tres pilares principales:


1. Métricas: Datos numéricos que representan el comportamiento del sistema (latencia, tasa de errores, uso de CPU, etc.).

2. Logs: Registros detallados de eventos que ocurren dentro del sistema.

3. Trazas: Información sobre el recorrido de las solicitudes a través de los diferentes servicios y componentes del sistema.


Juntos, estos pilares proporcionan una visión completa del estado y rendimiento del sistema, permitiendo a los equipos identificar y resolver problemas antes de que impacten a los usuarios finales.


Dynatrace: Una Visión General

Dynatrace es una plataforma de observabilidad que proporciona monitorización avanzada para aplicaciones, infraestructuras y experiencias de usuario. Utiliza inteligencia artificial (IA) para ofrecer análisis precisos y automatizados, permitiendo una detección y resolución de problemas más rápidas.


Componentes Clave de Dynatrace

1. OneAgent: El agente único que se instala en cada host para recolectar métricas, logs y trazas. OneAgent es capaz de monitorizar múltiples tecnologías y componentes automáticamente, sin necesidad de configuración manual adicional.

   

2. Smartscape: Una representación en tiempo real de la topología de la aplicación. Muestra cómo se interconectan los diferentes componentes, servicios y dependencias, proporcionando un mapa claro y dinámico de la infraestructura.


3. PurePath: La tecnología de traza distribuida de Dynatrace, que captura cada transacción, end-to-end, a través de cada componente del sistema. Esto permite un análisis detallado del rendimiento de las transacciones y la identificación precisa de cuellos de botella.


4. Davis AI: El motor de inteligencia artificial que analiza los datos recolectados por OneAgent. Davis AI identifica automáticamente anomalías, correlaciona eventos y proporciona diagnósticos de causa raíz, reduciendo significativamente el tiempo de resolución de problemas.


Beneficios de Usar Dynatrace

1. Detección Proactiva de Problemas: Con la monitorización continua y el análisis automatizado, Dynatrace puede detectar problemas potenciales antes de que impacten a los usuarios finales.


2. Visibilidad Completa del Sistema: Gracias a Smartscape y PurePath, los equipos obtienen una visión clara y detallada de cómo interactúan los diferentes componentes del sistema, lo que facilita la identificación de dependencias críticas y posibles puntos de falla.


3. Reducción del Tiempo de Resolución: La capacidad de Dynatrace para proporcionar diagnósticos de causa raíz rápidamente ayuda a los equipos a resolver problemas más rápidamente, mejorando la eficiencia operativa.


4. Optimización del Rendimiento: Al analizar continuamente el rendimiento de las aplicaciones y la infraestructura, Dynatrace ayuda a identificar áreas de mejora, permitiendo una optimización continua del sistema.


Casos de Uso Comunes

Monitorización de Aplicaciones en la Nube

Dynatrace es particularmente eficaz para entornos en la nube, donde la dinámica y la complejidad pueden hacer que la monitorización sea un desafío. Proporciona visibilidad en tiempo real y análisis automatizados que son cruciales para gestionar aplicaciones en la nube a gran escala.


Mejoras en la Experiencia del Usuario

Al monitorizar la experiencia del usuario final, Dynatrace permite a las organizaciones entender cómo los usuarios interactúan con sus aplicaciones y servicios, identificando problemas de rendimiento y áreas de mejora que impactan directamente en la satisfacción del cliente.


Migración a Microservicios

La arquitectura de microservicios, aunque beneficiosa, introduce una complejidad adicional en la monitorización. Dynatrace facilita esta transición proporcionando visibilidad completa y detallada de los servicios y sus interacciones.


Conclusión

Dynatrace se destaca como una solución integral para la observabilidad, proporcionando las herramientas y capacidades necesarias para monitorizar, analizar y optimizar aplicaciones e infraestructuras de manera efectiva. Con su enfoque basado en inteligencia artificial y automatización, Dynatrace no solo mejora la visibilidad del sistema, sino que también reduce el esfuerzo necesario para mantener un rendimiento óptimo y resolver problemas rápidamente.


La adopción de Dynatrace puede transformar la manera en que tu organización gestiona su TI, permitiéndote ofrecer aplicaciones más robustas, confiables y con un mejor rendimiento para tus usuarios finales. Si aún no has explorado Dynatrace, ahora es el momento de considerarlo como parte de tu estrategia de observabilidad y monitoreo.

lunes, 1 de octubre de 2018

JMeter Revista de Actualidad Septiembre 2018


Introducción

(Interior, día. El escenario es una oficina con amplios ventanales, pero donde siempre está encendida la luz eléctrica. Para que luego digan que lo del cambio horario sirve para ahorrar energía)
(Antonio está enfrascado en revisar una documentación cuando recuerda que hace ya tiempo que no ha mirado el blog qatecnico y se dice …qué demonio, le voy a dar un ojo)
(Antonio) Vamos a ver, última entrada ¡Junio de 2017!. Caray, esto lo tenemos dejadillo, al menos nadie ha entrado para ponernos publicidad de Viagra o inversiones en fondos de banca…¡creo que ya toca actualizarlo!)

Y así amigos llegamos a esta nueva entrada : Revista de actualidad Septiembre de 2018!

Recientemente, Apache ha liberado la última versión de JMeter, la 5.0.

En las características de la release indica que se han resuelto algunos problemas relacionados con la implementación de los HTTP Request Samplers, que es la base de la generación de carga en la herramienta
  • Multipart/form-data requests:  ahora se pueden usar con peticiones PUT, DELETE … (previamente sólo para POST)
  • Se puede enviar un JSON Body con un fichero adjunto
  • Se pueden usar conjuntamente la pestaña de Parametros y la de Body (al contrario que antes en la que no podían coexistir)
  • Se ha añadido la inclusión automática a los grupos de threads en pruebas distribuidas de la IP y puerto del agente remoto. Asi podemos distinguir de dónde viene la carga y se suman adecuadamente todos los threads usados para dar el total de la prueba
  • También se ha actualizado las APIS usada por HTTP Components y se eliminan dependencias de APIs obsoletas.
  • También y esto es muy interesante, se ha añadido en los flujos de control la capacidad de desglosar el comportamiento respecto del thread y del total de la prueba




Manejo y usabilidad

Desde el punto de vista de la interfaz es prácticamente idéntico a las previas (3.X y 4) ,con el interfaz “darcula” por defecto que al menos para mí es más relajante para la vista, recuperando los terminales

lunes, 24 de julio de 2017

La Certificación ISTQB® Advanced Level Test Automation Engineer

Desde el año 2016, la ISTQB ha ampliado su oferta con la certificación de nivel avanzado Test Automation Engineer


En el contexto actual del testing, la automatización ha tomado un peso muy elevado en las actividades de testing y muchos profesionales intentan obtener conocimientos que les permita desempeñar esta actividad de manera profesional.

Esta certificación se vuelve muy interesante para todos aquellos que estamos involucrados en actividades de automatización y también en otros tipos de pruebas como son las de rendimiento. Por esta razón vamos a dedicar una entrada de QA Técnico a resolver las posibles dudas de los interesados.



¿A quién está dirigido? 
¿Necesito tener algún requisito previo?
¿Necesito algún conocimiento de automatización?
¿Qué vamos a aprender en el curso?
¿Qué NO debemos esperar del curso?
¿Cómo es el curso?
¿Cómo es el examen?
¿Como puedo obtener la certificación ISTQB ® Advanced Level Test Automation Engineer?
   

martes, 7 de febrero de 2017

JMeter . Revista de Actualidad Febrero 2017


Bienvenidos lectores habituales de esta sección al mundo de JMeter en español. Hoy tras otro periodo de inactividad en las actualizaciones, abrimos un artículo para comentar algunas de las mejoras que hemos visto en la nueva versión con la que estamos trabajando JMeter v 3.0

¡Comenzamos!


Algunos de los plugins que vamos a tratar aquí, han sido desarrollados por la empresa especializada en Cloud, BlazeMeter. Estos añadidos han sido cedidos a la comunidad de usuarios por esta empresa, por lo que son accesibles y disponibles con las mismas características que otros plugins ya desarrollados.

Concurrency Thread Group

Este plugin permite realizar escalados de carga de una forma más flexible que otros ya existentes.


Concurrency Thread Group


Como podemos observar, permite definir de una manera bastante definida
  • concurrencia de hilos de ejecución (Target Concurrency)
  • tiempo en el que se desea alcanzar esa concurrencia (Ramp up time)
  • número de hilos que se inyectarán en cada escalón de la rampa de entrada (Ramp-up step count)
  • Tiempo de ejecución a plena carga de la prueba (Hold target Rate time)
  Aparte ,podemos especificar en qué medida de tiempo queremos planificar : minutos o segundos , así  como un número máximo de iteraciones por hilo de ejecución.

Esto evidentemente es muy útil cuando tenemos limitaciones asociadas a los datos: por ejemplo un juego de identificadores o cuentas que no se pueden reutilizar en distintas ejecuciones o iteraciones.

Pasando datos entre threads. Sincronización

Una de las funcionalidades que los usuarios de JMeter han estado pidiendo en “wish-lists” o en los TODO ha sido la posibilidad de pasar datos entre threads. Para ello se ha desarrollado el concepto de  comunicación entre hilos , usando un mecanismo de colas FIFO (First IN, First OUT).

El concepto es bien simple, un paso de ejecucion de un thread captura o genera un dato que se quiere pasar como entrada en la ejecución de otro hilo.

Un modo habitual para hacerlo hasta ahora sería una variable . Sin embargo, esto tiene el problema de que dicha variable se sobreescribiria en cada iteración (a menos que se dispusiera de una estructura de control compleja) o bien volcándola a un fichero para usarlo como entrada de variables.

Como cualquiera que haya usado esta herramienta u otras similares, sabrá que le generación de datos de manera dinámica es compleja y, para el caso de volcado a ficheros, no es muy recomendable realizarla en la misma ejecución en la que se están generando.

Desarrollo 

Se ha desarrollado una serie de funciones a llamar desde muestreadores asociados a un hilo que pueden volcar los datos obtenidos durante la ejecución y volcarlos a una cola desde la que pueden acceder  otros hilos.

Las funciones desarrolladas son las siguientes: fifoPut, fifoGet, fifoPop, fifoSize.

El uso de cada una se explicita en el siguiente cuadro


Función
Parámetros
Descripción
fifoPut
COLA_ENTRADA, STRING_ENTRADA
Introduce el valor de la cadena pasada como parámetro en la cola de entrada definida



fifoPop



COLA_ENTRADA,STRING_SALIDA
Toma el primer valor de la cola (el más antiguo) y lo vuelca en el string de salida .Si la cola está vacía espera durante un tiempo especificado en un parámetro kg.apc.jmeter.functions.FifoTimeout 
Hasta que haya un valor


fifoGet


COLA_ENTRADA,STRING_SALIDA
Toma el primer valor de la cola (el más antiguo) y lo vuelca en el string de salida sin eliminarlo de la cola.
Si la cola no tiene elementos, devuelve una cadena vacía.

fifoSize

COLA_ENTRADA,STRING_SALIDA
Devuelve en la cadena STRING_SALIDA pasada como parámetro el número de elementos presentes en la cola


Ejemplos de uso:

${__fifoPut(COLA,${VALOR})}<-   Vuelca en la cola cookies el valor contenido en la variable                                                                      ${VALOR}

Una secuencia de trabajo sería

  1. crear un extractor de expresiones regulares que capture el valor a pasar asíncronamente entre hilos en una variable ${VALOR} 
  2. Introducir el valor en la cola FIFO mediante un fifoPut(COLA,${VALOR}))
  3. Invocar mediante una secuencia de control a la cola FIFO asegurándonos que no se encuentra vacia
  4. Retirar o leer el valor de la cola con un fifoPop(..) o fifoGet(..)

Notas acerca de la persistencia de los valores.

Los valores contenidos en las colas FIFO se guardan entre ejecuciones de un escenario dependiendo del modo de invocación de las funciones

  • Si se han usado en Preprocesadores y PostProcesadores , se borran automáticamente en cada ejecución 

  • Si se han usado en otros muestreadores, guardan los valores de las colas hasta que se vuelve a invocar una operación fifoPut sobre la cola ya existente. Si se quieren conservar valores, es mejor que los nombres de las colas varíen entre ejecuciones (por ejemplo, haciendo referencia a la fecha)

Debido a la extensión del artículo, publicaremos más análisis de los plugins y funciones relevantes en una continuación del mismo. ¡Esperamos que no haga falta que nos salgan canas a todos!

Como siempre, quedamos a la espera de vuestros comentarios y apreciaciones.



martes, 27 de septiembre de 2016

Usando JMeter y OWAS ZAP en integración contínua



Introducción


Seguramente alguien nos echaba de menos , así que hemos aprovechado uno de esos ratos libres que nos deja el trabajo y aprovechamos para dar unas pequeñas nociones acerca de la sinergia entre herramentas. En este caso en el mundo de la integración continúa y la seguridad ..usando un script de JMeter.

Objetivos.


La idea de este artículo es explicar uina manera de generar informes de seguridad con una herramienta integrable con un entorno de integración contínua como  Jenkins, realizando navegaciones que puedan ser analizadas por dicha herramienta y generando un informe que pueda ser evaluado cuando se haga una nueva versión o implementación de una aplicación

Para ello vamos a trabajar usando las siguiente utilidades

  • Herramienta de seguridad OWASP Zap. Es una evolución de Paros Proxy que es reconocida en el entorno de integración contínua Jenkins, bien como plugin o como herramienta que genera acciones.
  • HTML Report. Es un plugin de Jenkins que permite publicar documentos en foprmato HTML o XML  
  • JMeter. La herramienta para pruebas de calidad, aunque centradas en el rendimiento, también usada para validaciones funcionales y demás
OWAS Zap habilita un puerto de escucha ,actuando como un proxy que permite analizar el tráfico que ciercula por él.

La herramienta realiza una serie de análisis de seguridad tanto pasivos como activos (modo spider, inyección SQL, cross-site scripting..etc) y permite generar un informe de seguridad con los principales fallos detectados.

Requerimientos


1º) Se ha instalado el plug-in de OWAS ZAP Zapproxy
2º) Se prepara un script JMX de Jmeter en el que se define como proxy el definido por el OWAS ZAP Proxy (por defecto ,localhost puerto 9090)
3º) Se crea una secuencia de tareas de este modo
         i.            
             Tarea inicial de arranque del OWAS Zaproxy en la que quede en ejecución en estado de escucha en el puerto, almacenando los resultados de dicha escucha en una sesión (parámetro –session de la invocación por línea de comandos)

Incluir tarea de OWAS ZAP: Uso de línea de comandos shelll

       ii.            Se lanza una instancia de JMeter en la que haga una navegación (con un usuario y una sola iteración a priori bastaría, reutilizando alguno de los casos de las pruebas de rendimiento)
Incluir tarea de ejecución JMeter. Uso de línea de comandos windows


      iii.            Se lanza a continuación una parada controlada del OWAS Zapproxy para que consolide lo monitorizado en la sesión definida como repositorio
Tarea detención OWAS ZAPproxy: Ejecutando comandos shell


     iv.            Se lanza de nuevo el OWAS Zapproxy en modo “generación de informes” , indicando como salida (parámetro de invocación “-last_scan_report) un fichero .html que se genera automáticamente con los resultados del análisis efectuado por la herramienta de seguridad.

Tarea creación informe tras navegación. Ejecutar línea de comandos shell

       v.            Por último , en la siguiente sección “Acciones a ejecutar después” del menú de Jenkins correspondiente a la tarea de seguridad, se puede incluir el plug-in HTML Report, que permite mostrar un enlace directo desde la tarea al fichero generado
Acción post ejecución tarea seguridad: Plugin HTML Report



El informe queda accesible desde el menú del marco izquierdo


O bien desde el propio pantalla de “Estado del proyecto” ,accediendo por el enlace de HTML Report o navegando en el directorio del “Espacio de Trabajo” (WORKSPACE)

Esperamos que os sea útil esta información. Ya sabeis, comentarios, dudas y demás serán bien recibidos.