3. Que hace Graphite
● Guarda métricas en el tiempo
● Permite
○ filtrarlas
○ procesarlas
○ graficarlas
4. De donde sale Graphite
●
●
●
●
Sideproject de Chris Davis en Orbitz
Opensourceado en 2008
Python + Twisted
Github
Quienes lo usan
Orbitz, Etsy, Google, Vimeo, Properati y
Sumavisos ;)
5. Porque me interesa, a mí
●
●
●
●
●
Mi trabajo => problemas raros
Fácil de implementar
Experimentos rápidos
Da herramientas para tomar decisiones
poco esfuerzo => buenos resultados
6. Porque me interesa darles esta charla
● *tiene sentido*
● fácilmente accionable
● poco esfuerzo => muchos resultados
7. Que hace Graphite (de nuevo)
● Guarda métricas en el tiempo
○ contadores
○ timers
○ gauges
■ s. calibre, espesor; manómetro, barómetro, indicador, medidor; calibrador,
gage, graduador, gramil; pluviómetro; distancia entre dos ejes, entrerriel,
entrevía
● Permite extraerlas, filtrarlas, procesarlas y
graficarlas
8. Una métrica en el tiempo
web.exceptions
2013/10/1 7:50:10
0
web.exceptions
2013/10/1 7:50:20
0
web.exceptions
2013/10/1 7:50:30
15
web.requests
2013/10/1 7:50:10
50
web.requests
2013/10/1 7:50:20
53
web.requests
2013/10/1 7:50:30
42
9. Tipos de métricas
● Contadores
○ Cuantos X hubo en tal periodo de tiempo?
■ requests
■ suscripciones
■ logins
● Timers
○ Cuanto tardó Z?
■ una búsqueda en resolverse
■ un caché en responder
● Gauges
○ Cuanto mide Y?
■ pedidos encolados
● Eventos
10. Como se usa - meter datos
post "/contact" do
# hacer algo
G.increment("properati.contact.form_completed")
end
O, alternativamente,
echo "local.random.diceroll 4 `date +%s`" | nc 127.0.0.1 2003
11. Como se usa - sacar datos
● Dashboard
○ Graficos (feuchos pero utiles)
● URL API
○ Gráficos
○ JSON
○ CSV
14. Performance de la DB
Tiempo gastado cada 10/sec
Funciones
●
●
●
●
●
summarize
sum
avg
product
ratio
●
●
●
integral
derivate
holtWintersForecast
●
●
●
asPercent
stacked
“tipo munin”
15. Performance de la DB
Tiempo gastado cada
10/sec
Tiempo gastado
sumarizado cada 10/min
29. El stack es complicado
● Graphite
○ carbon
○ whisper
○ webapp
● Statsd
○ Escucha UDP
○ Agrupa cada 10s
○ Le pasa a Graphite
Pero hay unos howtos cut&paste&godhelpme