3. Advertencias
Ronin
Parental Advisory
- Puede contener trazas de comentarios
políticamente incorrectos
- Metáforas impactantes
En caso de emergencia
http://science-all.com/image.php?pic=/images/wallpapers/cute-dog/cute-dog-13.jpg
10. strace
Sólo sirve para ver lo que pasa al nivel de
llamas al sistema
Buena suerte cuando no sabes que proceso
esta funcionando mal
Es divertido de usar con procesos con workers
o multihilo
11. strace
Los procesos pueden no ser traceables
Un farmacéutico comentará que puede afectar
el performance del proceso y hasta causar la
muerte
Una usabilidad …
13. Wireshark
Sólo se puede analizar tráfico de red
Capacidad de filtrado poderosa y capacidad de
decodificar protocolos
Puede ser imposible relacionar el proceso y su
tráfico de red
15. Dtrace, eBPF y amigos
Más poder que todo el arsenal del mundo
No esta limitado a llamadas al sistema, se
puede ver todo*, desde user space a el propio
SO
Curva de aprendizaje pronunciada
16. Dtrace, eBPF y amigos
Puede requerir un kernel reciente
Puede generar kernel panics
Hay que SABER de esos internals del SO que
seguro domina tu amigo fullstack
17. Servicio público
Recomiendo ponerle un altar y rezarle todos
los días al despertar y en las noches antes de
dormir. En dirección hacia Australia (en las
mañanas) y hacia Los Gatos California EEUU
(en las noches)
http://www.brendangregg.com/Images/brendan_2016b.jpg
http://www.brendangregg.com/
18. Servicio público
Querido Brendan que estás en Netflix
famoso por gritarle a los arreglos de discos
cuando sea grande quiero tener tu intelecto
tu jornada por Sun, el infierno y joyent la admiro
gracias por las metodologías, el ZFS L2ARC y los flame graphs
Por un mundo sin bugs!
19. Sysdig
Las revistas del corazón lo definirían como el
hijo entre strace y wireshark
La herramienta “definitiva” para hacer
troubleshooting del sistema y procesos
Sirve para hacer troubleshooting del sistema,
análisis y exploración
20. Sysdig
Compila un modulo para el kernel, ergo
necesitas los headers del kernel que este
corriendo
Puede capturar, filtrar y decodificar llamadas al
sistema y otros eventos del SO
Container aware
21. Sysdig
Tiene menos overhead que strace
Permite hacer inspecciones en vivo o generar
capturas para ser analizadas posteriormente
Su lenguaje de filtrado es potente, se puede
personalizar su salida y además puede ser
extendido con scripts en Lua, llamados chisels.
Chisels son <3
27. Ejemplos
Guardar para analizar despues las llamadas a
open
sysdig -w captura.scap evt.type=open
Las 10 llamadas al sistema más lentas
sysdig -c bottlenecks "evt.latency > 0"
28. Ejemplos
Ver lo que hace cron con sus fds
sysdig -c echo_fds disable_color
proc.name=cron
Ver que procesos abrieron ficheros
sysdig -r captura.scap -p "%proc.name" |
sort | uniq
32. Ayuda sysdig
Ver los chisels que trae
sysdig -cl
Ver los eventos soportados
sysdig -L
Info de un chisel
sysdig -i <chisel>
33. I want to play a game
http://i.giphy.com/vP4ci3sz5YZHi.gif
34. ¿Por qué muere el daemon?
docker run --name ej1 -d aebm/ej1:v1
docker ps -a | grep ej1
docker start ej1
35. ¿Por qué muere el daemon?
sysdig -pc "container.name=ej1 and
evt.failed=true"
36. Saber donde se escribe el log
FATAL
docker run --name ej2 -v /tmp/ej2:/data/ -d
aebm/ej2:v1
37. Saber donde se escribe el log
FATAL
sysdig -p "%fd.name" "container.name=ej2 and
evt.type=write and evt.buffer contains FATAL"
38. ¿Qué gato se pide por http a
procatinator?
docker run --name ej3 --rm aebm/ej3:v1
39. ¿Qué gato se pide por http a
procatinator?
sysdig -A -c echo_fds "container.name=ej3 and
fd.port=80 and evt.buffer contains procatinator"
40. Amistad o lo que surja
Esto es para que preguntéis. No os hagáis
falsas esperanzas
https://s-media-cache-ak0.pinimg.com/736x/d4/21/e7/d421e7f55fa2633026eb8ffc8280d9b9.jpg
41. Agradecimientos
Liferay por el sitio
8KData por las pizzas
Madrid DevOps por coger esta charla como
clausura (hasta Septiembre)