Bulgarian (Български) translation by Radoslav Ivanov (you can also view the original English article)

Този урок е част от поредицата Създайте Вашия Стартъп с PHP на Envato Tut+. В тази поредица аз ви водя през създаването на стартъп от концепцията до реалното му пускане онлайн използвайки Meeting Planner приложението като пример от реалния живот. На всяка стъпка по пътя, ще публикувам кода на Meeting Planner приложението с отворен код като пример от който може да се учите. Също така ще обърна внимание на бизнес въпросите при създаването на стартъп.
Въведение в Регистрирането на Грешки
След като публикувах алфа версията на Meeting Planner приложението и то започна да бъде активно използвано за планиране на събития, потребителите рядко докладваха за грешки. Но в разговори по телефона с хората, те често ми казваха за проблеми с които са се сблъсквали.
В днешния урок ще ви покажа как изпробвах две различни клауд базирани услуги за логване, Rollbar и Sentry и защо в крайна сметка избрах да използвам Sentry.
Ако все още не сте пробвали Meeting Planner приложението отидете и планирайте първата си среща. Аз чета коментарите по-долу, така че кажете ми какво мислите! Също така може да ме намерите в Twitter @reifman. Специално се интересувам, ако искате да ми предложите нови функционалности или теми за бъдещи уроци.
Да ви припомня, че целият код на Meeting Planner приложението е написан с Yii2 Фреймуърк за PHP. Ако желаете да научите повече за Yii2, проверете нашата успоредна поредица Програмиране с Yii2.
Да започваме.
Моят Опит с Rollbar

И двете услуги - Rollbar и Sentry ми бяха препоръчани от Alex Markov един от водещите доброволци разработчици стоящи зад Yii Фреймуърка. Alex беше много полезен за мен, разкавайки ми за Yii2 докато създавах Meeting Planner приложението и пишейки уроците за ползата от използването на фреймуърк.
Първоначално си мислех да създам втора база данни в която да логвам всички грешки и да ги следя ръчно. Но тогава видях, че тези услуги предоставят множество функционалности за репортване на грешки. Примерно, те броят броя на идентичните грешки и ги докладват според важността им. В даден момент смятам да напиша по-обстоен урок за логване на грешки от Yii2 програмната поредица, но засега просто се гмуркам.
И, ето аз имам като цяло работещ Yii2 плъгин с отворен код (има няколко) за Rollbar. Започнах да получавам грешки от системата, които бяха причинени от самия плъгин.

Като цяло съм много впечатлен от Rollbar уеб интерфейса и услугата им. Но смятам, че поради някои проблеми с моята конфигурация и плъгина с отворен код за Yii се появиха нови проблеми.

С други думи хората виждаха нови грешки, причинени от опитите ми да записвам други грешки. Това определено влоши впечатлението у хората от използването на Meeting Planner. Дори се появиха още повече мистериозни грешки - нещо което ме обърква и хаби от времето ми.
С цел да оптимизирам нещата и времето си, изключих временно записването на грешки и реших да изпробвам Sentry.
За да бъда напълно ясен, мисля че с по-добър Rollbar Yii2 плъгин и повече внимателно конфигуриране (което никога не е добре документирано при плъгините като този), услугата би работила добре. Не бих искал да ви обезкуража да я изпробвате.
Първи стъпки със Sentry
Sentry е сравнима услуга за логване на грешки, която е по-евтина от Rollbar. По-ниската цена често е от полза за стартъпите.

Може да видите, че първият им план започва от само $29 на месец:

Регистрация
Отидох напред и използвах формата за регистрация за да започна:

Създаване на Нов Проект
В Sentry, създадох нов проект за Meeting Planner за да записвам всички бъгове от този домейн:

След това Sentry ви предлага ръководство с редица програмни езици и фремуъркс (Yii не е включена още, намек към екипа на Sentry!):

Конфигуриране на Yii2 плъгина за Sentry
За Meeting Planner избрах да ползвам Notamedia Yii2 Sentry плъгина. Сблъсках се с няколко незначителни проблема, които ме забавиха малко.
Първият Проблем - Не по Вина на Плъгина
Първоначално имах проблем да открия уникалния ми код за ауторизация на сайта, с който да се идентифицирам пред Sentry. Обикновенно уеб услугите правят тези неща много лесни за откриване, но това ми отне 10-15 минути докато го намеря.
Близо до долната част от лявото меню на страницата Settings има опция за показване на Client Keys (DSN):

Разбих ключа на неговите три части и ги поставих в моя mp.ini файл за всички Meeting Planner ключове:
#rollbar_key = "bxxxxxxxxxxxxxxxxxxxxxxxxxxxxf" sentry_key_public = "bxxxyyyyxxxzzzzyyyyccccc" sentry_key_private = "8b3333xxxyyyyxxxzzzzyyyyccccc4446" sentry_id ="9922"
След което в /frontend/config/main.php ъпдейтнах плъгина с препоръчаните настройки, за да използвам специфични променливи от mp.ini. Те започват долу с $config:
'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'notamedia\sentry\SentryTarget', 'dsn' => 'http://'.$config['sentry_key_public']. ':'.$config['sentry_key_private']. '@sentry.io/'.$config['sentry_id'], 'levels' => ['error', 'warning'], 'context' => true, // Write the context information. The default is true. ], ],
Вторият Проблем
След това не можах да пусна Sentry да записва грешките. Оказа се, че в документацията за notamedia плъгина използват URL адрес sentry.com вместо sentry.io. За щастие осъзнах това за няколко минути и не изгубих прекалено много от времето си.
Уводни имейли от Sentry
Sentry ще ви изпрати уводен имейл, но аз дори не го забелязах, тъй като пристигна по-късно. Все пака това е доста полезно:

Тестване на Sentry с Meeting Planner
В един от контролерите в локалната ми работна среда, просто добавих кода actionIndex
, който се зарежда когато заредя някоя страница от сайта:
\Yii::warning have a problem Portland.');
Много бързо бъг рапортите се завъртяха на локалната ми работна среда и на продукшън хоста, след което се приземиха в дашборда на Sentry.
Дашборда на Sentry

Ето един пример с един от моите фалшиви бъгове с които тествах "Портланд, имаме проблем." Той показва всичките полезни данни, които Sentry събира за вас, за да направи откриването, идентифицирането и дебъгването на грешки в продукция по-лесни:

По-горе може да видите таговете свързани с URL адресите и потребителския браузър. По-долу доклада продължава, показвайки ви редовете код, които предизвикват грешката:

Той също така ви показва бисквитките отгоре и хедърите и потребителското ID по-долу:

Всичко това е много полезно.
Sentry Имейлите за Нови Бъгове
По подразбиране Sentry също така ви изпраща имейли за бъговете (така че да разберете за тях незабавно):

Всъщност, много бързо Sentry ми показа, че WordPress хакерски ботове вече пингват за wp-login и wp-admin на сайта ми. Въпреки, че те не съществуват тук, искам да намаля тяхното въздействие. Така че добавих действие "ничия земя" във фронтенд контролера SiteController.php което просто да прекрати изпълнението на приложението.
public function actionNeverland() { // for abusive scripts like wp-login probes Yii::$app->end(); }
Sentry също така намери пермишън проблем, който засяга кеширането на фоновите задачи. Това също е полезно.
За сега Sentry ме спечели и гледам напред за някои бързи изгоди от използването му в продукшън среда в настоящия бета период.
Какво Следва?
Надявам се, че наученото за обработка и регистриране на грешки ви е полезно.
Очаквайте предстоящите уроци от поредицата Създайте Вашия Стартъп с PHP. Завърших разработката на множество функционалности и полирах нещата тази година. Сега е време хората да започнат да използват Meeting Planner приложението. Скоро ще пиша отностно плана ми за популяризиране в привю фазата - това е друг ключов елемент от стартирането на вашия стартъп.
Ако все още не сте го направили, моля ви пробвайте Meeting Planner и го споделете с приятелите си. Както обикновенно, оценявам ако споделите опита си по-долу в секцията с коментарите и знаете, че винаги се интересувам от вашите предложения. Също така винаги може да ми пишете директно в Twitter @reifman.
Също така съм близо до пускането на експеримент с WeFunder базиран на имплементацията на новите правила на SEC за групово финансиране. Може да последвате нашия профил, ако желаете. Ще пиша повече отностно това в бъдещ урок.
Сродни Линкове
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post