Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Yii
Code

Creando su Startup: Registro de errores

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

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Final product image
What You'll Be Creating

Este tutorial forma parte de la serie Creando su Startup con PHP en Envato Tuts +. En esta serie, te estoy guiando a través del lanzamiento de un inicio de concepto a realidad utilizando mi aplicación de Meeting Planner como un ejemplo de la vida real. Cada paso, voy a publicar el código de Meeting Planner como código abierto del que puedes aprender. También me ocuparé de asuntos relacionados con el inicio del negocio a medida que surjan.

Introducción al registro de errores

Una vez que Meeting Planner entró en la versión alfa y la gente empezó a usarla activamente para programar reuniones, ocurrirían errores que rara vez fueron reportados por los usuarios. Pero, en las conversaciones por teléfono con la gente, comúnmente me decían sobre los problemas que encontraron.

En el tutorial de hoy, te explicaré cómo probé dos diferentes servicios de registro basados en la nube, Rollbar y Sentry, y por qué decidí en Sentry por el momento.

Si aún no ha probado Meeting Planner, adelante y programe su primera reunión. Yo participo en los comentarios de abajo, así que ¡dígame que piensa! También puede contactarme en Twitter @reifman. Me interesa especialmente si desea sugerir nuevas funciones o temas para futuros tutoriales.

Como recordatorio, todo el código para Meeting Planner está escrito en el Framework Yii2 para PHP. Si desea obtener más información acerca de Yii2, consulte nuestra serie paralela Programación con Yii2.

Vamos a empezar.

Mi experiencia con Rollbar

Building Startups Logging - Rollbar Home Page

Tanto Rollbar como Sentry me fueron recomendados por Alex Makarov, uno de los principales desarrolladores voluntarios detrás del Yii Framework. Alex ha sido muy útil para mí ampliar mi experiencia sobre Yii2 mientras estoy construyendo Meeting Planner y escribiendo sobre los beneficios del framework.

Inicialmente, pensé en crear una conexión de base de datos secundaria para registrar mis errores y rastrearlos manualmente. Pero entonces, me di cuenta de que estos servicios proporcionan una gran cantidad de funcionalidad de informes avanzados. Por ejemplo, cuentan el número de errores idénticos y los informan por gravedad. En algún momento, escribiré un tutorial de registro de errores de Yii2 más general para la serie de programación de Yii, pero por ahora, solo me metí.

Y, mientras me dieron los conceptos básicos de trabajo el uso de algunos open-source Yii2 plugins (hay varios) para Rollbar. Empecé a tener errores de producción que en realidad fueron causados por los complementos.

Building Startups Logging - Rolbar Integrate Your PHP Application

En general, me quedé muy impresionado con la interfaz de usuario web de Rollbar y los servicios. Pero creo que algunos problemas con mi configuración y la extensión open-source Yii condujeron a nuevos problemas.

Building Startups Logging - Rollbar List of Errors

En otras palabras, la gente estaba viendo errores de producción debido a mis intentos de grabar otros errores. Estaba empeorando la impresión de la gente de Meeting Planner. Incluso yo estaba corriendo en nuevos errores de producción misteriosos—y era confuso y estaba perdiendo mi tiempo.

Con el fin de optimizar su experiencia y mi tiempo, desactivé el tratamiento de errores temporalmente y decidí probar con Sentry.

Sólo para ser claro, creo que con una mejor extensión Rollbar Yii2 y una configuración más cuidadosa (que nunca se documenta bien con complementos de terceros como estos), el servicio habría funcionado bien. No quiero disuadir de intentarlo.

Introducción a Sentry

Sentry es un servicio de registro comparable, aunque menos costoso que Rollbar. Menor costo es a menudo útil para startups.

Building Startups Logging - Sentry Home Page

Puedes ver que su primer golpe en el precio comienza en sólo U$S 29 por mes:

Building Startups Logging - Sentry Pricing Page

Suscribirse

Seguí adelante y usé el formulario de registro para empezar:

Building Startups Logging - Sentry Sign Up Form

Creando un nuevo proyecto

Dentro de Sentry, creé un nuevo proyecto para Meeting Planner para rastrear errores dentro de este dominio:

Building Startups Logging - Sentry Create a New Project Form

Entonces, Sentry le ofrece guías para varios idiomas y frameworks (Yii no está incluido todavía, ¡sugerencia para el equipo de Sentry!):

Building Startups Logging - Sentry Configure Your Application Guide

Configuración del complemento Sentry para Yii2

Para Meeting Planner, elegí utilizar la extensión Notamedia Yii2 Sentry. Me encontré con un par de problemas menores que me ralentizó.

El primer problema—no fue falla del complemento

En primer lugar, tuve problemas para encontrar mis códigos de autorización para que mi sitio se identificara con Sentry. Por lo general, los servicios web hacen esto muy fácil de encontrar, pero me llevó cerca de 10 a 15 minutos para encontrar.

Cerca de la parte inferior del menú de la izquierda de la página de configuración, hay una opción de claves de cliente (DSN) que los muestra:

Building Startups Logging - Sentry Client Keys DSN

Rompí las claves en sus tres partes y las coloqué en mi archivo mp.ini para todas las claves de Meeting Planner:

Dentro de /frontend/config/main.php, actualizé la configuración recomendada del complemento para usar mis variables específicas de mp.ini. Comienzan abajo con $config:

El Segundo Problema

Entonces, no pude conseguir que Sentry capture los informes de error. Resultó que la documentación del plugin notamedia usaba la URL sentry.com en lugar de sentry.io. Afortunadamente, me di cuenta de que en pocos minutos y no perder demasiado tiempo.

Correo electrónico introductorio de Sentry

Sentry te envía un correo electrónico introductorio, pero no lo noté llegar hasta más tarde. Sin embargo, es muy útil:

Building Startups Logging - Welcome to Sentry Email

Probando Sentry con Meeting Planner

En uno de mis controladores en mi entorno local, acabo de agregar el código a actionIndex que se cargaría cuando cargara una página en el sitio:

Muy rápidamente, los informes de errores comenzaron a llegar desde el entorno local y de producción. Y se visualizan en el panel de Sentry.

El panel Sentry

Building Startups Logging - The Sentry Dashboard

He aquí un ejemplo de la presentación de informes de uno de mis falsos errores de prueba, "Tenemos un problema Portland." Muestra todos los datos útiles que Sentry recopila para facilitar el descubrimiento, la identificación y la depuración de errores de producción:

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

Arriba, puede ver las etiquetas relacionadas con las URL y el navegador del usuario. A continuación, el informe continúa mostrándole las líneas de código que causaron el error:

Building Startups Logging - 2nd Segment of Sample Error

También muestra las cookies anteriores y los encabezados e identificadores de usuario a continuación:

Building Startups Logging - 3rd Segment of Sample Error

Todo es muy útil.

Alertas de correo electrónico de Sentry a nuevos errores

De forma predeterminada, Sentry también envía correos electrónicos a los bugs (para que sepas de ellos inmediatamente):

Building Startups Error Logging - Sentry Email Bug Report

De hecho, muy rápidamente, Sentry me mostró que los bots de hackers de WordPress ya estaban haciendo ping para wp-login y wp-admin en mi sitio. Aunque no existen aquí, quiero minimizar sus impactos. Así que agregué una acción neverland en el front-end SiteController.php para acabar con la ejecución de la aplicación.

Sentry también encontró un problema de permiso que estaba ocurriendo con el almacenamiento en caché en mis tareas de fondo. Esto también fue útil.

Por ahora, me quedo en Sentry, y espero algunas ganancias rápidas, mientras este en linea en producción durante la versión de vista previa en curso.

¿Que sigue?

Espero que haya disfrutado aprendiendo sobre el manejo de errores de producción y el registro.

Vea los próximos tutoriales aquí en la sección Creando su startup con PHP. He hecho mucho desarrollo de funciones este año. Ahora, es hora de que la gente utilice el Meeting Planner. Pronto, voy a escribir sobre los planes de promoción para el lanzamiento de vista previa—es otro elemento clave de lanzar su startup.

Si aún no lo ha hecho, pruebe a programar y comparta Meeting Planner con sus amigos. Como de costumbre, agradecería que compartas tu experiencia en los comentarios, y siempre estoy interesado en tus sugerencias. Siempre puedes contactarme directamente en Twitter @reifman.

También estoy acercándome al lanzamiento del experimento con WeFunder basado en la implementación de las nuevas reglas de crowdfunding de la SEC. Puedes seguir nuestro perfil allí si quieres. También escribiré más sobre esto en un futuro tutorial.

Enlaces relacionados

Advertisement
Advertisement
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.