sintomatologia depresiva definicion task benchmarking vagrant provisioning ansible

task - depresiva - Muestra el tiempo que tarda cada tarea errante y ansiosa en completarse



sintomatologia depresiva definicion (4)

Estoy convirtiendo un aprovisionador errante de shell a ansible y me preguntaba si hay alguna opción para mostrar el tiempo real que lleva completar cada tarea.

Idealmente, quiero comparar la diferencia entre instalar varios paquetes en yum usando un método shell: y el método incorporado en yum: with_items. Cajero automático Estoy sentado aquí con un cronómetro pero necesito horarios precisos para esto.


Ansible coloca marcas de tiempo en sus registros, por lo que podría usar eso. Puedes activar esto usando tu archivo ansible.cfg:

[defaults] log_path = ./ansible.log

También puedes hacer algo tan crudo como este: crea un libro de jugadas que se vea así:

--- # # Outputs a timestamp to the console # # Used for debugging/timing stuff. # - local_action: shell date +''%F %T'' register: ts sudo: no - name: Timestamp debug: msg="{{ ts.stdout }}"

Luego, include eso donde quiera que aparezca una marca de tiempo.


He resuelto la sincronización de las duraciones de las tareas ansibles al agregar un complemento de devolución de llamada . Los complementos de devolución de llamada fueron diseñados para permitirle ejecutar su propio código de acceso basado en eventos que ocurren en el contexto de una ejecución de Ansible.

El complemento que uso se implementa fácilmente creando un directorio callback_plugins y colocando un script de Python en él.

Aquí hay una muestra de la salida resultante al final de su ejecución de libro de jugadas:

PLAY RECAP ******************************************************************** npm_install_foo | Install node dependencies via npm ------------------- 194.92s gulp_build | Run Gulp to build ----------------------------------------- 89.99s nodejs | Update npm ---------------------------------------------------- 26.96s common | Update apt cache and upgrade base os packages ----------------- 17.78s forever | Install forever (restarts Node.js if it fails) --------------- 16.84s nodejs | Node.js | Install Node.js and npm ----------------------------- 15.11s bower | Install bower --------------------------------------------------- 9.37s Copy locally fetched repo to each instance ------------------------------ 8.03s express | Express | Install Express ------------------------------------- 8.00s

Además, antepongo el time comando de shell a la ejecución de ansible-playbook. Esto agrega muy bien todas las duraciones de tareas individuales.

EDITAR:

A partir de Ansible v2.0.0, este complemento en particular se envía con el propio Ansible. Simplemente agregue callback_whitelist = profile_tasks a su archivo ~/.ansible.cfg .


Lamentablemente, no hay registro de rendimiento por defecto.

Pero puede agregar su propio oyente de devolución de llamada a ansible . Esta llamada será notificada en el inicio y final de las acciones ...

Para ver un ejemplo completo, eche un vistazo al complemento datadog


Simplemente anteponga la ejecución de todo el libro de jugadas de Ansible con el time . Asegúrese de que su shell: script haga lo mismo que yum: module, como actualizar la memoria caché, descargar archivos o usar el caché local, etc.

El beneficio de usar yum: es, entre otras cosas, Ansible puede manejar mejor las instalaciones fallidas en lugar de solo ejecutar ciegamente su shell: comando como una cosa monolítica.

Creo que la diferencia será extremadamente pequeña (fracciones de un segundo a 2-3 segundos). Me imagino que necesitaría ejecutar su índice de referencia docenas de veces para obtener resultados estadísticamente precisos.