Яндекс
Яндекс
Yandex-Tank &GraphiteÇÁÆÍÁÅ §¼¾ÌÁÉÚÆ, ɼ¿ÌÏÃÊÓÉ×Å ÎÁÍÎÄÌʾÕÄÆ
2013, ®ÁÍÎʾ¼Û ÌÁÀ¼
¤ÀÁ¼ÇØÉ¼Û ÎÁÍÎʾ¼Û ÍÌÁÀ¼
ˉ É¼Í ÙÎÊ É¼Ã×¾¼ÁÎÍÛ "§Ïɼ˼ÌÆ"
03
ÎÌÊÄÈ Í¾ÊÅ ÇÏɼ˼ÌÆ
Graphite ¾ ƼÓÁÍξÁ Ñ̼ÉÄÇÄÕ¼ ÌÁÃÏÇØμÎʾ
¾ÎÊȼÎÄüÒÄÛ ¾ Jenkins: ÀÊÆǼÀ ~ÌÄÔÄ §ÄËÄɼ
04
«ÌÊÒÁÍÍ ÎÁÍÎÄÌʾ¼ÉÄÛ
ÏÃɼÇÄ Ê ÍÁ̾ÄÍÁ
ËÌÄ¿ÊÎʾÄÇÄ Ë¼ÎÌÊÉ×: ÇÊ¿Ä, python
ËÌÄ¿ÊÎʾÄÇÄ ÆÊÉÐÄ¿: vim/sublime
ËÊÍÎÌÁÇÛÇÄ: yandex-tank
ËÊÍÈÊÎÌÁÇÄ ÌÁÃÏÇØμÎ: Graphite
ËÊÀÆÌÏÎÄÇÄ Ä ÁÕÁ ËÊÍÎÌÁÇÛÇÄ
...
05
Yandex Tank
¤ÉÍÎÌÏÈÁÉÎ ÀÇÛ ¼¾ÎÊȼÎÄÃÄÌʾ¼ÉÉÊ¿Ê É¼¿ÌÏÃÊÓÉÊ¿Ê ÎÁÍÎÄÌʾ¼ÉÄÛ
06
Yandex Tank: unix-way
©¼ ƼÂÀÊÈ ÙμËÁ ÁÍÎØ ¾×½ÊÌ:
ËÊÀ¿ÊÎʾƼ ˼ÎÌÊÉʾ
ÍÎÌÁÇؽ¼: phantom, jmeter, ab
ʽ̼½ÊÎƼ ÌÁÃÏÇØμÎʾ
¦ÌÊÈÁ ÎÊ¿Ê, ÙμË× ÈÊÂÉÊ Àʽ¼¾ÇÛÎØ. ÍÁ ÏÆǼÀ×¾¼ÁÎÍÛ ¾ ÄÀÁÊÇÊ¿ÄÚ.
07
«ÌÄÍ×ǼÅÎÁ pull-request-×!
¨× ÄÍËÁÓÁÈ ÀÇÛ ¾¼Í ÎÊÌÎÄÆ ;)
08
ˉÍμÉʾƼ Äà .deb
ʽ¼¾ÄÎØ ÌÁËÊÃÄÎÊÌÄÄ, ¼ ËÊÎÊÈ:
sudo apt-get install yandex-load-tank-base
ÏÀʽÉÊ Íμ¾ÄÎØ (+)
ÄÉÎÁ¿ÌÄÌÏÁÎÍÛ ¾ ÍÄÍÎÁÈÏ (+)
ÌÁÂÁ ¼ËÀÁÅÎÄÎÍÛ (-)
01.
09
ˉÍμÉʾƼ Äà git
git clone https://github.com/yandex-load/yandex-tank.git
Ó¼ÍÎ×Á ¼ËÀÁÅÎ×, ÉÊ Ó¼ÕÁ ½¼¿Ä (+/-)
ÈÊÂÉÊ ËÌÊÍÎÊ ÍƼӼÎØ ¾ ÑÊÏÈ (+)
ÈÊÂÉÊ Ã¼ËÏÍƼÎØ ÉÁ ɼ Ubuntu (+)
ËÌÄÀÁÎÍÛ ËʾÊÃÄÎØÍÛ Í Ã¼¾ÄÍÄÈÊÍÎÛÈÄ (-)
01.
10
Graphite
×ÍÊÆÊËÌÊÄþÊÀÄÎÁÇØÉÊÁ Ñ̼ÉÄÇÄÕÁ ¾ÌÁÈÁÉÉ×Ñ ÌÛÀʾ
open source
ɼËÄÍ¼É É¼ Python
ÈÊÀÏÇØÉ×Å
ËÌÊÍÎÊ Ã¼¿ÌϼÎØ À¼ÉÉ×Á
ÄÍËÊÇØÃÏÁÎÍÛ Ï É¼Í ¾ ËÌÊÀ¼ÆÔÉÁ
11
«ÌÊÄþÊÀÄÎÁÇØÉÊÍÎØ
ÍÊÎÉÄ Î×ÍÛÓ ÎÊÓÁÆ ¾ ÈÄÉÏÎÏ É¼ ÊÀÉÊŠȼÔÄÉÆÁ
ÊÀÄÉ Î¼ÉÆ: 3000 ÎÊÓÁÆ ¾ ÈÄÉÏÎÏ
ÍÎÊ ÍÎÌÁÇؽ ÊÀÉʾÌÁÈÁÉÉÊ
12
¨¼ÇÊ? ¨¼ÍÔμ½ÄÌÏÅ!
¦¼Æ Ñ̼ÉÛÎÍÛ À¼ÉÉ×Á
¾ ¾ÄÀÁ ¾ÌÁÈÁÉÉ×Ñ ÌÛÀʾ
ü̼ÉÁÁ ÊËÌÁÀÁÇÁÉÉÊÁ ¾ÌÁÈÛ
Í Ã¼Ì¼ÉÁÁ ÊËÌÁÀÁÇÁÉÉÊÅ ÎÊÓÉÊÍÎØÚ
14
¨ÁÎÌÄÆÄ ¾ ¿Ì¼ÐÄÎÁ
one_sec.yandex_tank.cumulative.total_count01.
15
°ÊÌȼΠüÇľÆÄ
¦ÇÚÓ + ÃɼÓÁÉÄÁ ÈÁÎÌÄÆÄ + ¾ÌÁÈÛ
one_sec.yandex_tank.cumulative.total_count 5 1384251379
one_sec.yandex_tank.cumulative.avg_latency 50 1384251379
...
01.
02.
03.
16
ˉÍμÉʾƼ Graphite
¤Ã ÌÁËÊÃÄÎÊÌÄÛ Python (pypi)
pip install whisper carbon graphite-web
+ ÉÁÈÉÊ¿Ê É¼ÍÎÌÊÁÆ (ÍÈ. ÍμÎØÚ)
01.
17
«ÊÀÆÇÚÓ¼ÁÈ Yandex-Tank
ªËÒÄÄ ÈÊÀÏÇÛ Graphite ¾ load.ini
[graphite]
address=localhost
01.
02.
18
«ÊÇÉ×Å ÆÊÉÐÄ¿ μÉƼ
[phantom]
address=dm.people.yandex.net
uris=/reveal/#/
rps_schedule=line(1, 1000, 3m)
[console]
short_only=1
[graphite]
address=dm.people.yandex.net
01.
02.
03.
04.
05.
06.
07.
08.
19
³ÎÊ É¼ ¾×ÑÊÀÁ?
Ñ̼ÉÛÎÍÛ ¾ÍÁ ü¿ÌÏÂÁÉÉ×Á À¼ÉÉ×Á ü ¾ÍÁ ÎÁÍÎ×
ÊÎÓÁÎ: ÍμÎÄÓÁÍÆÄÅ HTML ÍÊ ÍÍ×ÇƼÈÄ É¼ ¿Ì¼ÐÄÆÄ ¾ Graphite
üË̼Ôľ¼ÁÈ ÌÁÉÀÁÌ ÊËÌÁÀÁÇÁÉÉ×Ñ ÈÁÎÌÄÆ Ã¼ ËÁÌÄÊÀ ÎÁÍμ
20
«ÌÄÈÁÌ ¿Ì¼ÐÄƼ
£É¼ÓÁÉÄÛ Æ¾¼ÉÎÄÇÁÅ 25, 50, 75, 90, 95, 99, 100 - ËÊÍÁÆÏÉÀÉÊ
21
´¼½ÇÊÉ ÊÎÓÁμ
Í×ÇÆÄ É¼ ¿Ì¼ÐÄÆÄ ¾ graphite.tpl
¨ÊÂÉÊ Àʽ¼¾ÇÛÎØ Í¾ÊÄ ÈÁÎÌÄÆÄ.
¨ÊÂÉÊ ËÌÄ¿ÊÎʾÄÎØ ÉÁÍÆÊÇØÆÊ Ô¼½ÇÊÉʾ Ä ¾×½Ä̼ÎØ ÄÑ.
22
½ÊÌ À¼ÉÉ×Ñ Ê ÍÄÍÎÁÈÉ×ÑÌÁÍÏÌͼÑ
Graphite + Diamond
23
¡ÕÁ ¿Ì¼ÐÄÆÄ
ÖÁÔØ ÁÕÁ ÙÎÄÑ shiny metal ¿Ì¼ÐÄÆʾ
24
³ÎÊ À¼ÇØÔÁ?
¨× ɼÏÓÄÇÄÍØ Ñ̼ÉÄÎØ ÌÁÃÏÇØμÎ× ÍÎÌÁÇؽ ÒÁÉÎ̼ÇÄÃʾ¼ÉÉÊ. ®ÁËÁÌØ
ÉÏÂÉÊ É¼ÏÓÄÎØÍÛ ¼¾ÎÊȼÎÄÃÄÌʾ¼ÎØ ÍÎÌÁÇØ½× Ä ÍÎÌÊÄÎØ ÊÎÓÁÎ×. ª½ ÙÎÊÈ
- ÍÇÏÔ¼ÅÎÁ ÀÊÆǼÀ ~ÌÄÔÄ.
25
Í×ÇÆÄ
Diamond
dkulikovsky@ Ê Graphite
doctor@ ËÌÊ ©® ¾ »ÉÀÁÆÍÁ
Graphite ɼ github
Yandex Tank ɼ github
Û ËÌÊ ®¼ÉÆ Ä Graphite
Follow me on Twitter
26
˼ÍÄ½Ê Ã¼ ¾ÉÄȼÉÄÁ