Graphite - PHP Conference AR

742 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
742
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Graphite - PHP Conference AR

  1. 1. medime que me gusta - graphite PHP Conference AR martin@properati.com @runixo
  2. 2. nosotros rasmus
  3. 3. Que hace Graphite ● Guarda métricas en el tiempo ● Permite ○ filtrarlas ○ procesarlas ○ graficarlas
  4. 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. 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. 6. Porque me interesa darles esta charla ● *tiene sentido* ● fácilmente accionable ● poco esfuerzo => muchos resultados
  7. 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. 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. 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. 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. 11. Como se usa - sacar datos ● Dashboard ○ Graficos (feuchos pero utiles) ● URL API ○ Gráficos ○ JSON ○ CSV
  12. 12. 2 métricas para una período
  13. 13. 2 métricas mergeadas
  14. 14. Performance de la DB Tiempo gastado cada 10/sec Funciones ● ● ● ● ● summarize sum avg product ratio ● ● ● integral derivate holtWintersForecast ● ● ● asPercent stacked “tipo munin”
  15. 15. Performance de la DB Tiempo gastado cada 10/sec Tiempo gastado sumarizado cada 10/min
  16. 16. Performance por componente Un request = MySQL + Sphinx + Redis + Ruby
  17. 17. Distribucion por datacenter
  18. 18. Por Status de HTTP
  19. 19. Salud + Deploys
  20. 20. Parcial, diario e histórico
  21. 21. Cantidad de resultados por búsqueda
  22. 22. Mails enviados vs Horario apertura
  23. 23. Dashboards!
  24. 24. URL API GET http://tools.sumavisos. xstrat.us/render? width=400&from=1weeks&until=&height=250&target=alias (summarize(sumSeries (stats_counts.properati.parsers. *.*.deleter.property.sources.*. deleted)%2C'1d')%2C% 22borrados%22) &title=borrados&hideLegend=tru e&areaMode=stacked&lineMode =staircase image/png
  25. 25. URL API - JSON GET http://tools.sumavisos. xstrat.us/render? width=400&from=1weeks&until=&height=250&target=alias (summarize(sumSeries (stats_counts.properati.parsers. *.*.deleter.property.sources.*. deleted)%2C'1d')%2C% 22borrados%22) &title=borrados&hideLegend=tru e&areaMode=stacked&lineMode =staircase &format=json text/javascript [{"target": "borrados", "datapoints": [[327.0, 1380067200], [803.0, 1380153600], [528.0, 1380240000], [1244.0, 1380326400], [460.0, 1380412800], [224.0, 1380499200], [21.0, 1380585600], [194.0, 1380672000]]}]
  26. 26. Dashboards Alternativos <<<
  27. 27. Alertas
  28. 28. HoltWintersForecast
  29. 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
  30. 30. Graphite! Martin Sarsale @runixo martin@properati.com Graphite vive aca

×