2012-09-26 20 views
6

Zastanawiam się, jaki jest najlepszy sposób śledzenia limitów czasu jednorożca z mojej aplikacji.Timeout obsługi jednorożca

Istnieje kilka bitów aplikacji, które są powolne i obecnie są ograniczone w czasie. Mogłabym zwiększyć czas oczekiwania, ale jest to popychanie problemu pod dywan. Idealnie, chciałbym otrzymać powiadomienie o airbrake lub coś podobnego. Nie szukam przewodnika po wydajności, tylko po to, by skutecznie i niezawodnie uzyskiwać informacje na temat limitów czasu.

W jaki sposób inne osoby obsługiwały limity czasu z aplikacji rails przy użyciu jednorożca? skanować dziennik błędów nginx? podłączyć handler'a w konfiguracji jednorożca? handler w konfiguracji nginx?

[Ubuntu 12.04 + nginx + jednorożec + 3,2 + szyny ruby ​​1.9.3]

+0

Czy znalazłeś odpowiedź? Używamy Rack :: Timeout. – nroose

+0

Obejście polegało na skanowaniu dzienników nginx dla 503 (lub 50X, nie pamiętam) statusu i patrz stamtąd. Kinda w dziwny sposób spełnia cel. –

Odpowiedz

0

byłbym skłonny, aby utworzyć konto na New Relic, użyj ich newrelic_rpm gem i zbierać dane dotyczące wydajności związanych z tym problemem w ich Aplikacja internetowa. NR oferuje bezpłatny poziom konta, który jest przydatny w tej sytuacji.

Zaletą zastosowania tej nieco leniwej metody oprzyrządowania jest dwojaki: brak wymogu niestandardowej implementacji oprzyrządowania w aplikacji; i nie trzeba sprawdzać dzienników serwera niższego rzędu dla 503 błędów serwera.

+0

Cześć! Dziękuję za odpowiedź! Ale nie zamierzam teraz przedstawiać nowej usługi ani aplikacji. Szukam konkretnego haka do przechwytywania jednorożca z limitem czasu. –

+0

W takim razie powinieneś zajrzeć do sekcji "konfigurator" i "tuning" w instrukcji Unicorn. – Sasha

0

Zobacz stronę internetową Unicorn na stronie 'configurator' section. Jest szereg pozycji wokół zaległości i limitów czasu, które powinny dać ci niezbędną kontrolę.

+0

Już przeszedłem przez te strony. Nie mówią o rozpatrywaniu limitów czasu, o ile rozumiem. Mówią tylko o ograniczeniu limitu czasu. –

+0

Czy dodałeś blok "zapewnić" do odpowiednich części kodu aplikacji, które przekroczyły limit czasu? – Sasha

+0

Gdybym znał wszystkie wolne części, naprawiłbym te części i nie dbałbym o timeout n wszystkie. Interesuje mnie tylko kwestia limitu czasu przez uzyskanie informacji. –