2. Vad är graphite?
● Användargenererade grafer
● Behöver ingen förkonfigurering av nya källor
● Grafer i (nästan) realtid
● Skalbart
● URL API
● Dumt namn
3. Nödvändigheter
● Ursprungligen utvecklat av Chris Davis på
Orbitz.com, första versionen 2006
● Skrivet i Python, webappen i django med
EXTjs för javascript GUI
● Licens: Apache 2.0
13. Graphite URL API
● Graphites webapp exponerar ett URL-API på
http://graphite/render
● Parametrar anges som /render/?
param=value¶m2=value2
● Output i form av png, json, csv, raw, svg
●
14. Graphite - URL API exempel
http://graphite/render/?
width=586&height=308&target=webcount.idg.moln
15. Graphite URL API - mer exempel
# average load across web machines over last 12 hours
http://graphite/render?target=averageSeries(server.web*.load)&from=-12hours
# number of registered users over past day as raw json data
http://graphite/render?target=app.numUsers&format=json
# rate of new signups per minute
http://graphite/render?target=summarize(deriviative(app.numUsers),"1min")
&title=New_Users_Per_Minute
17. CollectD
● Samlar in system metrics
● God tillgång på externa plugins för
mätvärden
● Flera olika plugins för output till graphite
18. StatsD - github.com/etsy/statsd/
● Aggregator som körs på noden
● UDP in (fire and forget), TCP ut
● Flushar ut aggregerat data till graphite
● Bindings till dom flesta språk
19. StatsD - exempel
import statsd
timer = statsd.Timer('MyApplication')
timer.start()
# spännande kod
timer.stop('SomeTimer')
21. Logstash
http://logstash.net/
● Verktyg för att hantera loggar och events
● Används normalt som ersättare till splunk
tillsammans med ES och kibana
● Innehåller grok för att filtrera ut och
organisera data ur loggar
● Output för graphite
22. ...och många fler
● Graphios
- verktyg som skickar nagiosmetrics
● Logster
- Hantering av loggfiler, ungeför som
logstash
● Ganglia
- Distribuerat system för metrics,
ursprungligen för HPC. Har graphite-output.
● Diamond
- Samlar in system-metrics, skrivet i python.
23. Användningsfall CD 1/2
(lånat från: http://codeascraft.etsy.com/2010/12/08/track-every-release/)
Grafa antal errors över tid. Men vad hände?
24. Användningsfall CD 2/2
(lånat från: http://codeascraft.etsy.com/2010/12/08/track-every-release/)
Lägg in events.deploy.website 1 $(date +%s)
i ditt deployverktyg och använd drawAsInfinite