• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Graphite teknikdag
 

Graphite teknikdag

on

  • 912 views

 

Statistics

Views

Total Views
912
Views on SlideShare
910
Embed Views
2

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 2

https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Graphite teknikdag Graphite teknikdag Presentation Transcript

    • GraphiteJohan Gunnarsson @ Inits teknikdagjohan.gunnarsson@init.se / se.linkedin.com/in/jgunnarsson / @j_gunnarsson
    • 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
    • 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
    • Översikt
    • Carbon● Agent på serversidan● Kö för lagring i Whisper● lyssnar på tcp/2003
    • Få in data till CarbonFormat:"metric_path value timestamp n"foo.bar.baz 7 1359633139$ echo "foo.bar.baz 7 $(date +%s)" | ncgraphite 2003
    • Få in data till carbon - exempel#!/bin/bashidgmoln=$(curl --silent www.idg.se | grep --count --ignore-case moln)echo "webcount.idg.moln "$idgmoln" "$(date +%s) | nc graphite 2003
    • Whisper● Fix-storlek datastorage● Liknar RRD (fast bättre)● Tillåter uppdateringar i "oordning"● Kräver inte fördeklarerade datastores
    • Whisper - databasdefinition$ cat storage-schemas.conf# Schema definitions for Whisper files. Entries are scanned in order,# and first match wins. This file is scanned for changes every 60 seconds.## [name]# pattern = regex# retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...[everything_1min_13months]priority = 100pattern = .*retentions = 1m:395d
    • Graphite-web● Django● PyCairo för rendering av grafer● Inte riktigt en dashboard● Använd mest för att prototypa grafer● Enkelt CLI● URL API
    • Graphite-web - UI
    • Graphite-web - CLI
    • Graphite URL API● Graphites webapp exponerar ett URL-API på http://graphite/render● Parametrar anges som /render/? param=value&param2=value2● Output i form av png, json, csv, raw, svg●
    • Graphite - URL API exempelhttp://graphite/render/?width=586&height=308&target=webcount.idg.moln
    • Graphite URL API - mer exempel# average load across web machines over last 12 hourshttp://graphite/render?target=averageSeries(server.web*.load)&from=-12hours# number of registered users over past day as raw json datahttp://graphite/render?target=app.numUsers&format=json# rate of new signups per minutehttp://graphite/render?target=summarize(deriviative(app.numUsers),"1min")&title=New_Users_Per_Minute
    • Plugins och verktyg för Graphite
    • CollectD● Samlar in system metrics● God tillgång på externa plugins för mätvärden● Flera olika plugins för output till graphite
    • 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
    • StatsD - exempelimport statsdtimer = statsd.Timer(MyApplication)timer.start()# spännande kodtimer.stop(SomeTimer)
    • JMXTrans - github.com/jmxtrans/jmxtrans● Verktyg för monitorering av JVM
    • Logstashhttp://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
    • ...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.
    • 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?
    • 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
    • DashboardsEftersom graphites inbyggda dashboard inte ären ordentlig dashboard finns ett antal externaprojekt...
    • Dashboards - Team dashboardgithub.com/fdietz/team_dashboard
    • Dashboards - Tasseogithub.com/obfuscurity/tasseo
    • Dashboards - Graphenehttps://github.com/jondot/graphene
    • Dashboards - dashinghttp://shopify.github.com/dashing/
    • Prova själv!Vagrant up!Färdig maskin med graphite, jmxtrans, collectdoch logster:https://github.com/KrisBuytaert/vagrant-graphite
    • Mer information● http://graphite.wikidot.com/● https://launchpad.net/graphite● http://graphite.readthedocs.org/en/0.9.10/● http://codeascraft.etsy.com/