Heroku y Sentry, Habilitar metadata del Dyno

Heroku es una muy buena plataforma para montar aplicaciones casi que sin despeinarse. Su modo de operar es denominado PaaS, es decir, Plataforma como Servicio(en inglés Platform as a Service). Ser una PaaS quiere decir que al usuario le das lo más que se pueda desmenuzado y listo para usar.

A diferencia de AWS que es una IaaS(Infrastructure as a Service) en Heroku, generalmente, hacer despliegue de aplicaciones solo implica un comando y casi cero configuraciones.

Dentro de esas configuraciones que sí hay que hacer se tiene la instalación y uso de aditamentos para darle más potencia a la aplicación desplegada.

Entre la extensa lista de los llamados addons están servicios de envío de correo, capturas de excepciones, analítica, medición de visitas, almacenamiento, base de datos, etc.

En mi trabajo diario como desarrollador Ruby on Rails no suelo estar creando muchas aplicaciones en Heroku pero cada que las hago uso al menos estos servicios como adiciones:

  • Heroku Postgres: almacenamiento de datos
  • Papertrail: visualización de logs
  • Heroku Scheduler: ejecución de tareas cron
  • Sentry: captura de excepciones
  • Mailgun: envío de correos

De las muchas veces que he instalado tales addons solo el de Sentry me dio dificultades menores.

You are running on Heroku but haven’t enabled Dyno Metadata

Sentry

No sé porqué Sentry necesita de la metadata del dyno pero salía ese mensaje. Ahora mismo no recuerdo si era error o alerta pero en todo caso no me gustaba y me di a la tarea de buscar su significado y posible corrección.

Heroku Dyno Metadata

La dyno metadata da acceso al, valga la redundancia, dyno(o servidor, si se le puede dar ese nombre) a la información sobre la aplicación y el entorno de ejecución.

Según la página oficial, los datos que se pueden acceder incluyen el tamaño del dyno, nombre de la aplicación, el ID único del dyno, el número de lanzamiento(release). De hecho, mientras escribo me doy cuenta el porque Sentry podría necesitar acceso a la metadata.

error sentry rails app

En todo caso, la solución está dada por el comando:

$ heroku labs:enable runtime-dyno-metadata --app [APPNAME]

Tal comando se ejecuta en una consola de comandos y así se habilita la metadata que tanto necesita Sentry.

Una forma de saber si la dyno metadata está activada(u otras características de Heroku Labs), se puede ejecutar el comando:

$ heroku labs --app [APPNAME]

Puede aparecer una lista de resultados como el siguiente:

=== App Features ⬢ avanzzast
[ ] app-alerting               Allows the creation of alerts for Web Dynos
[ ] go-language-metrics        Display language specific metrics for Go apps
[ ] http-end-to-end-continue   Send 100-continue headers to the backend
[ ] http-shard-header          Turn shard headers on
[ ] log-runtime-metrics        Emit dyno resource usage information into app logs
[ ] no-docker-release          Don't create a release at the end of 'docker push'
[ ] nodejs-language-metrics    Display language specific metrics for Node.js apps
[ ] ruby-language-metrics      Display language specific metrics for Ruby apps
[+] runtime-dyno-metadata      Share dyno metadata in environment variables
[ ] runtime-empty-entrypoint   Force an empty entrypoint when one is not present in the container image
[ ] runtime-heroku-exec        Enable Heroku Exec for all dynos on an app
[ ] runtime-heroku-metrics     Displays language-specific memory metrics.
[ ] runtime-new-layer-extract  Use new layer extraction tool for container image
[ ] runtime-tar-layer-extract  Use tar as the layer extraction tool for container image
[ ] spaces-new-router          Use new dogwood router
[ ] spaces-strict-tls          Drop legacy browser support for strict TLS compliancy requirements
[ ] web-auto-scaling           Allows autoscaling based on a desired latency (p95)

Notese la línea donde un signo de suma está encerrado en corchetes.

Y así se resuelve un mini problema que no significaba el fin del mundo pero cuya resolución es un aprendizaje más 🙂

Que quede para la posteridad.

Autor: cesc1989

Ingeniero de Sistemas que le gusta escribir y compartir sobre recursos que considera útiles, además que le gusta leer manga y ver anime.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .