c # - Brug af Etsy's StatsD i et Windows-miljø

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad skal jeg bruge Etsy's Statsd i et Windows-miljø? Mine hensigter er at oprette en .net-klient for at bruge Statsd. [22]

Bedste reference


Din bedste chance er at have en Linux-server med statistik og Graphite installeret. Du skal så bare skrive nogle C # -koder for at få UDP-opkaldet til at få metricen ind i systemet.


[[UPDATE (6/23/2014): Jeg kom på tværs af en statistik/grafitklon kaldet statsd.net, der ser lovende ud, men mangler i vid udstrækning grafitens side af ligningen. Jeg synes stadig, at den bedste indsats er at bruge de faktiske statistik/grafitprojekter, da enhver klon er nødvendig for at spille indfangning.]] [23]

Andre referencer 1


Jeg har statistik + grafit, der kører i mit Windows-miljø ved hjælp af C # -klienten NStatsD. [24]


Her er mine noter til at få Linux VM setup:


Bemærk: Jeg ved nok Linux til at være farlig, men er ellers en noob og kunne gøre noget uhensigtsmæssigt forfærdeligt.



  1. Installer Ubuntu Server 12.04. Jeg brugte VirtualBox til dev og derefter senere EC2 for prod.

  2. Download grafit-stof til din hjemmemappe. Dette er et script, der vil downloade, kompilere og installere grafit og statsd. Det forventer en ren kasse og bruger nginx til webserveren. [25]


    sudo apt-get install git


    git clone git://github.com/gingerlime/graphite-fabric.git


    cd graphite-fabric/

  3. Installer prævere for stof


    sudo apt-get install python-setuptools

  4. De næste trin er en download, kompilering og installation, som kan tage lidt tid. Det er umagen værd at indstille en levetid på enhver kittens ssh-session, inden du fortsætter.

  5. Installer nu i henhold til gingerlime's instruktioner i README.md - herunder kravsafsnittet.

  6. Installer statistik som pr. gingerlime's instruktioner.

  7. Genstart

  8. Udfør netstat -nulp og observer 8125 er i brug for at bekræfte, at statsd lytter.

  9. Kontroller, at kulstof kører tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log. Hvis det ikke er, prøv sudo /etc/init.d/carbon start



Nu har du din server kørende, prøv at kaste nogle tællere på det med NStatsD klienten. [26]


Tidssone-rettelse :


Dette vil rette grafit til graftider i din lokale zone



  1. cd /opt/graphite/webapp/graphite

  2. sudo cp local\_settings.py.example local\_settings.py

  3. sudo chown www-data:www-data local\_settings.py (check med ls -l at tilladelser ser rigtigt ud)

  4. sudo pico local\_settings.py Indstil TIME\_ZONE til noget som Australia/Sydney. Opdag hvilke tidszoner du kan bruge i /usr/share/zoneinfo/

  5. Gem og genstart feltet (ikke sikker på hvordan du får det til at afhente ændringen uden genstart)



EC2 Noter


rod er deaktiveret på EC2. Fabric anmodes om en root kodeord, som du ikke har. Brug -i keyfile argumentet med fab for at give det din ssh keyfile i stedet.


VirtualBox Noter


VBoxVMService var praktisk at køre VM'en automatisk som en tjeneste i mit Windows dev-miljø. [27]

Andre referencer 2


TL; DR:



  • statsd.net er en skalerbar statsd klon med masser af cool ekstramateriale og designet til windows-centreret miljøer. Første produktudgivelse er den 29. maj 2013

  • statsd-csharp-client er en letvægts statsd og statsd.net-klient, der er tilgængelig for .net 3.5, 4.0 og 4.5 via nuget.



Fuld Disclosure: Jeg er forfatteren af ​​disse to projekter, og jeg skrev dem, fordi jeg ikke kunne tage etsy 's statsd service til produktion - min organisation er ikke klar til at implementere og understøtte nodejs-baserede tjenester. [28] [29]


Jeg havde det samme problem i min organisation - vi er et vinduescentreret miljø, der ønsker at indsamle statistikker fra hele verden til et enkelt grafitlager. Jeg havde oprindeligt tænkt på at bruge etsy s statsd, men mit firma er endnu ikke klar at rulle med nodejs tjenester i produktionen. Langs vejen fandt jeg ud af at have min egen aggregeringstjeneste betød, at jeg kan gøre mange interessante ting som tilføj memcached support for skalerbarhed, tilføj nye aggregatorer og så videre.


Tjenesten kan bruges i konsoltilstand lige nu, og vil være klar til produktion fra 29. maj 2013 og fremefter.

Andre referencer 3


Vi har genopbygget Graphite/StatsD i ren .NET. Den bruges i øjeblikket i produktionsmiljø og behandler omkring 600M datapoints dagligt.


Statsify: [30]


Indtast billedbeskrivelse her

Andre referencer 4


Der er en hel del open-source StatsD klient implementeringer tilgængelige i forskellige sprog, herunder C #. NET. Etsy give en på deres github eksempler, også tjek AppFirst version af statsd\_clients. [31] [32]

Andre referencer 5


Nuværende statsd og nodejs versioner giver dig mulighed for at køre statistik på Windows uden ændringer. statsd package.json-filen indeholder allerede scripts til at installere og afinstallere det som Windows-tjeneste.


Installationsproceduren ville være:



  • Installer nodejs til Windows

  • Opret en mappe som C: \ StatsD

  • Åbn et konsolvindue og lav cd StatsD

  • Så gør npm install https://github.com/etsy/statsd.git

  • I mappen node\_modulesstatsd opretter du din egen config.json

  • I konsolvinduet gør cd node\_modulesstatsd og npm run-script install-windows-service



Imidlertid kører Graphite kun på Linux. [33]

Andre referencer 6


Du har brug for en statsd-server til at oprette forbindelse til.

Du har også brug for et klientbibliotek til at oprette forbindelse til det, f.eks. denne ene og den nuget-pakke af den. [34] [35]