Advertisement
  1. Code
  2. Yii
Code

Изградете Вашия Стартъп: Логър за Грешки

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Importing With the Google Contacts API
Building Your Startup: Running Multiple Domains

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

Final product image
What You'll Be Creating

Този урок е част от поредицата Създайте Вашия Стартъп с PHP на Envato Tut+. В тази поредица аз ви водя през създаването на стартъп от концепцията до реалното му пускане онлайн използвайки Meeting Planner приложението като пример от реалния живот. На всяка стъпка по пътя, ще публикувам кода на Meeting Planner приложението с отворен код като пример от който може да се учите. Също така ще обърна внимание на бизнес въпросите при създаването на стартъп.

Въведение в Регистрирането на Грешки

След като публикувах алфа версията на Meeting Planner приложението и то започна да бъде активно използвано за планиране на събития, потребителите рядко докладваха за грешки. Но в разговори по телефона с хората, те често ми казваха за проблеми с които са се сблъсквали.

В днешния урок ще ви покажа как изпробвах две различни клауд базирани услуги за логване, Rollbar и Sentry и защо в крайна сметка избрах да използвам Sentry.

Ако все още не сте пробвали Meeting Planner приложението отидете и планирайте първата си среща. Аз чета коментарите по-долу, така че кажете ми какво мислите! Също така може да ме намерите в Twitter @reifman. Специално се интересувам, ако искате да ми предложите нови функционалности или теми за бъдещи уроци.

Да ви припомня, че целият код на Meeting Planner приложението е написан с Yii2 Фреймуърк за PHP. Ако желаете да научите повече за Yii2, проверете нашата успоредна поредица Програмиране с Yii2.

Да започваме.

Моят Опит с Rollbar

Building Startups Logging - Rollbar Home Page

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

Първоначално си мислех да създам втора база данни в която да логвам всички грешки и да ги следя ръчно. Но тогава видях, че тези услуги предоставят множество функционалности за репортване на грешки. Примерно, те броят броя на идентичните грешки и ги докладват според важността им. В даден момент смятам да напиша по-обстоен урок за логване на грешки от Yii2 програмната поредица, но засега просто се гмуркам.

И, ето аз имам като цяло работещ Yii2 плъгин с отворен код (има няколко) за Rollbar. Започнах да получавам грешки от системата, които бяха причинени от самия плъгин.

Building Startups Logging - Rolbar Integrate Your PHP Application

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

Building Startups Logging - Rollbar List of Errors

С други думи хората виждаха нови грешки, причинени от опитите ми да записвам други грешки. Това определено влоши впечатлението у хората от използването на Meeting Planner. Дори се появиха още повече мистериозни грешки - нещо което ме обърква и хаби от времето ми.

С цел да оптимизирам нещата и времето си, изключих временно записването на грешки и реших да изпробвам Sentry.

За да бъда напълно ясен, мисля че с по-добър Rollbar Yii2 плъгин и повече внимателно конфигуриране (което никога не е добре документирано при плъгините като този), услугата би работила добре. Не бих искал да ви обезкуража да я изпробвате.

Първи стъпки със Sentry

Sentry е сравнима услуга за логване на грешки, която е по-евтина от Rollbar. По-ниската цена често е от полза за стартъпите.

Building Startups Logging - Sentry Home Page

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

Building Startups Logging - Sentry Pricing Page

Регистрация

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

Building Startups Logging - Sentry Sign Up Form

Създаване на Нов Проект

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

Building Startups Logging - Sentry Create a New Project Form

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

Building Startups Logging - Sentry Configure Your Application Guide

Конфигуриране на Yii2 плъгина за Sentry

За Meeting Planner избрах да ползвам Notamedia Yii2 Sentry плъгина. Сблъсках се с няколко незначителни проблема, които ме забавиха малко.

Първият Проблем - Не по Вина на Плъгина

Първоначално имах проблем да открия уникалния ми код за ауторизация на сайта, с който да се идентифицирам пред Sentry. Обикновенно уеб услугите правят тези неща много лесни за откриване, но това ми отне 10-15 минути докато го намеря.

Близо до долната част от лявото меню на страницата Settings има опция за показване на Client Keys (DSN):

Building Startups Logging - Sentry Client Keys DSN

Разбих ключа на неговите три части и ги поставих в моя mp.ini файл за всички Meeting Planner ключове:

След което в /frontend/config/main.php ъпдейтнах плъгина с препоръчаните настройки, за да използвам специфични променливи от mp.ini. Те започват долу с $config:

Вторият Проблем

След това не можах да пусна Sentry да записва грешките. Оказа се, че в документацията за notamedia плъгина използват URL адрес sentry.com вместо sentry.io. За щастие осъзнах това за няколко минути и не изгубих прекалено много от времето си.

Уводни имейли от Sentry

Sentry ще ви изпрати уводен имейл, но аз дори не го забелязах, тъй като пристигна по-късно. Все пака това е доста полезно:

Building Startups Logging - Welcome to Sentry Email

Тестване на Sentry с Meeting Planner

В един от контролерите в локалната ми работна среда, просто добавих кода actionIndex, който се зарежда когато заредя някоя страница от сайта:

Много бързо бъг рапортите се завъртяха на локалната ми работна среда и на продукшън хоста, след което се приземиха в дашборда на Sentry.

Дашборда на Sentry

Building Startups Logging - The Sentry Dashboard

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

Building Startups Logging - Sample Error Report in Sentry We have a problem Portland

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

Building Startups Logging - 2nd Segment of Sample Error

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

Building Startups Logging - 3rd Segment of Sample Error

Всичко това е много полезно.

Sentry Имейлите за Нови Бъгове

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

Building Startups Error Logging - Sentry Email Bug Report

Всъщност, много бързо Sentry ми показа, че WordPress хакерски ботове вече пингват за wp-login и  wp-admin на сайта ми. Въпреки, че те не съществуват тук, искам да намаля тяхното въздействие. Така че добавих действие "ничия земя" във фронтенд контролера SiteController.php което просто да прекрати изпълнението на приложението.

Sentry също така намери пермишън проблем, който засяга кеширането на фоновите задачи. Това също е полезно.

За сега Sentry ме спечели и гледам напред за някои бързи изгоди от използването му в продукшън среда в настоящия бета период.

Какво Следва?

Надявам се, че наученото за обработка и регистриране на грешки ви е полезно.

Очаквайте предстоящите уроци от поредицата Създайте Вашия Стартъп с PHP. Завърших разработката на множество функционалности и полирах нещата тази година. Сега е време хората да започнат да използват Meeting Planner приложението. Скоро ще пиша отностно плана ми за популяризиране в привю фазата - това е друг ключов елемент от стартирането на вашия стартъп.

Ако все още не сте го направили, моля ви пробвайте Meeting Planner и го споделете с приятелите си. Както обикновенно, оценявам ако споделите опита си по-долу в секцията с коментарите и знаете, че винаги се интересувам от вашите предложения. Също така винаги може да ми пишете директно в Twitter @reifman.

Също така съм близо до пускането на експеримент с WeFunder базиран на имплементацията на новите правила на SEC за групово финансиране. Може да последвате нашия профил, ако желаете. Ще пиша повече отностно това в бъдещ урок.

Сродни Линкове

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.