{"id":86853,"date":"2020-06-30T19:41:57","date_gmt":"2020-06-30T17:41:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1"},"modified":"2020-06-30T19:41:57","modified_gmt":"2020-06-30T17:41:57","slug":"monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1","title":{"rendered":"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>El servicio <em>Sentry<\/em> permite monitorear errores de forma remota en aplicaciones frontend escritas en <em>JavaScript<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/26936c2af48cb0d849eca4abd21b7deb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Intentar resolver problemas en aplicaciones frontend en <em>JavaScript<\/em> puede ser un desaf\u00edo complicado, ya que ocurren en el navegador del usuario, al que, a menudo, no tienes acceso. Sin embargo, <em>Sentry<\/em> ofrece la posibilidad de monitorear errores de forma remota.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/larkintuckerllc\/hello-sentry\">Aqu\u00ed<\/a><\/noindex> puedes descargar las soluciones que se discutieron en este art\u00edculo.<\/p>\n<p><\/p>\n<p><strong>Qu\u00e9 necesitas<\/strong><\/p>\n<p><\/p>\n<p>Si deseas utilizar estos ejemplos, necesitar\u00e1s:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/en\/\"><em>Node.js<\/em><\/a><\/noindex>: Una herramienta multifuncional para el desarrollo que no es parte de la aplicaci\u00f3n. Descargamos la \u00faltima versi\u00f3n LTS (8.12.0)<\/li>\n<li><em>Sentry<\/em>: Ya sea una cuenta en el servicio Sentry (puedes registrar hasta 10,000 errores al mes de forma gratuita) o un Sentry local instalado \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/getsentry\/onpremise\">https:\/\/github.com\/getsentry\/onpremise<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Instalaci\u00f3n en tu servidor<\/strong><\/p>\n<p><\/p>\n<p>Para instalar Sentry On-Premise en tu servidor, hay dos caminos que puedes seguir<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Compilar rpm e instalarlos \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500632\/\">https:\/\/habr.com\/ru\/post\/500632\/<\/a><\/noindex><\/p>\n<p>\n<\/li>\n<li>\n<p>Utilizar el instalador oficial:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">Instalar docker y docker-compose en el servidor\ngit clone https:\/\/github.com\/getsentry\/onpremise.git\n.\/install.sh<\/code><\/pre>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<p><strong>Uso est\u00e1ndar<\/strong><\/p>\n<p><\/p>\n<p>Para comenzar, agrega un nuevo <em>Sentry<\/em>-proyecto para la aplicaci\u00f3n desde el sitio del servicio. Despu\u00e9s de seleccionar el idioma necesario, recibir\u00e1s la documentaci\u00f3n correspondiente. En nuestro caso, elegimos <em>JavaScript<\/em>.<\/p>\n<p><\/p>\n<p>El primer ejemplo es el est\u00e1ndar <em>JavaScript<\/em>. Aqu\u00ed hay dos botones: <em>\u00abHello\u00bb<\/em> (Hola) y <em>\u00abError\u00bb<\/em> (Error).<\/p>\n<p><\/p>\n<p>Despu\u00e9s de hacer clic en el bot\u00f3n <em>\u00abHello\u00bb<\/em>, la pantalla se actualizar\u00e1 y el bloque <em>intentar<\/em> detectar\u00e1 y capturar\u00e1 el error. Una vez que el error sea \u00abcapturado\u00bb, el informe del error se env\u00eda manualmente al servicio <em>Sentry<\/em>.<\/p>\n<p><\/p>\n<p>El bot\u00f3n \u00abError\u00bb permite simplemente detectar el error.<\/p>\n<p><\/p>\n<p><em>vanilla \/ index.html<\/em><\/p>\n<p><\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=&quot;UTF-8&quot;&gt;\n&lt;title&gt;Vanilla&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;button id=&quot;hello&quot;&gt;Hola&lt;\/button&gt;\n  &lt;button id=&quot;error&quot;&gt;Error&lt;\/button&gt;\n  &lt;div id=&quot;output&quot;&gt;&lt;\/div&gt;\n  &lt;script src=&quot;https:\/\/browser.sentry-cdn.com\/4.0.5\/bundle.min.js&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;\/script&gt;\n  &lt;script&gt;\n    (function () {\n      &#039;use strict&#039;;\n      Sentry.init({ dsn: &#039;https:\/\/b5bf359072254626aba8e64368e77b7d@sentry.io\/1289664&#039; });\n      var helloEl = document.getElementById(&#039;hello&#039;);\n      var errorEl = document.getElementById(&#039;error&#039;);\n      var outputEl = document.getElementById(&#039;output&#039;);\n      helloEl.addEventListener(&#039;click&#039;, handleHelloClick);\n      errorEl.addEventListener(&#039;click&#039;, handleErrorClick);\n      function handleHelloClick() {\n        outputEl.innerHTML = &#039;Hello World&#039;;\n        try {\n          throw new Error(&#039;Caught&#039;);\n        } catch (err) {\n          Sentry.captureException(err);\n        }\n      }\n      function handleErrorClick() {\n        throw new Error(&#039;Uncaught&#039;);\n      }\n    })();\n  &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p><\/p>\n<p>Notas:<\/p>\n<p><\/p>\n<ul>\n<li>Sentry se instala desde CDN y se muestra como una variable global<\/li>\n<li>Un poco antes iniciamos Sentry en nuestro JavaScript<\/li>\n<\/ul>\n<p><\/p>\n<p>Para probar este ejemplo, podemos utilizar una plataforma de servidor web est\u00e1tico <em>Node.js<\/em>: <em>servidor http<\/em>. Accede a la carpeta donde se encuentra el archivo <em>index.html<\/em>, y escribe (la opci\u00f3n con desactiva la cach\u00e9) la siguiente l\u00ednea para abrir en el navegador la direcci\u00f3n <noindex><a rel=\"nofollow\" href=\"http:\/\/localhost:8080\/\"><em>http:\/\/localhost:8080<\/em><\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>C\u00f3mo se muestran los errores capturados<\/strong><\/p>\n<p><\/p>\n<p>Primero, hacemos clic en el bot\u00f3n <em>\u00abHello\u00bb<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/ce1390a129b56988a5630b65d7152b85.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Capturamos un error, por lo que no subir\u00e1 por la pila de llamadas y no se monitorea en la consola. Sin embargo, como estamos enviando <em>Sentry<\/em> el informe del error manualmente, veremos un mensaje sobre \u00e9l en la cuenta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/4660395849c963cf6b6bce03cdf74013.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Notas:<\/p>\n<p><\/p>\n<ul>\n<li>Podemos rastrear en qu\u00e9 l\u00ednea (24) se produjo el error<\/li>\n<li>Adem\u00e1s, la cadena de navegaci\u00f3n muestra las acciones del navegador que llevaron al error.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>C\u00f3mo se muestran los errores no capturados<\/strong><\/p>\n<p><\/p>\n<p>Hacemos clic en el bot\u00f3n <em>\u00abError\u00bb.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/d6b3e92ac9bda497d6bb5f2987bef8d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>El error se eleva en la pila de llamadas y, por lo tanto, se muestra un mensaje de error en la consola. Despu\u00e9s de esto, Sentry monitorea autom\u00e1ticamente el error, sin necesidad de acciones adicionales.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/554ada29ebadba636ad7e0edb0b8a104.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Notas:<\/p>\n<p><\/p>\n<ul>\n<li>Podemos ver en qu\u00e9 l\u00ednea (30) se ha perdido el error<\/li>\n<li>No se previ\u00f3 una cadena de navegaci\u00f3n (no entiendo muy bien por qu\u00e9)<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>C\u00f3mo asegurar la seguridad del proyecto<\/strong><\/p>\n<p><\/p>\n<p>Es posible que haya notado c\u00f3mo controlamos las p\u00e1ginas que pueden enviar informes de errores a nuestro proyecto <em>Sentry<\/em>; utilizando <em>dsn<\/em> registros. El problema es que cualquiera que vea el c\u00f3digo fuente de su p\u00e1gina puede ver la entrada.<\/p>\n<p><\/p>\n<p>Para evitar esto, es necesario limitar la cantidad de dominios que pueden enviar informes de errores a nuestro proyecto. En este ejemplo, utilizamos <em>localhost<\/em> (localhost). Esta opci\u00f3n se configura en la pesta\u00f1a de configuraci\u00f3n <em>Sentry<\/em>-del proyecto, <em>Configuraci\u00f3n del Proyecto Sentry<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/fc8990a261c2c3673a9b8eda6eaf1fd0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Versiones<\/strong><\/p>\n<p><\/p>\n<p>Si se piensa en c\u00f3mo usar <em>Sentry<\/em> en las diferentes variaciones de nuestra aplicaci\u00f3n, se necesita un mecanismo que marque los errores con un n\u00famero de versi\u00f3n.<\/p>\n<p><\/p>\n<p>No queremos que un error que hemos corregido aparezca de nuevo, mientras pensamos que lo que arreglamos no funcion\u00f3. Tambi\u00e9n puede ser que el usuario haya lanzado una versi\u00f3n anterior de la aplicaci\u00f3n que se hab\u00eda guardado en cach\u00e9.<\/p>\n<p><\/p>\n<p>Para resolver el problema, es necesario incluir el identificador <em>el lanzamiento<\/em> (de la versi\u00f3n) al ejecutar <em>Sentry<\/em>.<\/p>\n<p><\/p>\n<p><em>vanilla \/ index.html<\/em><\/p>\n<p><\/p>\n<pre><code class=\"javascript\">...\nvar RELEASE = '0.1.0';\nSentry.init({\n  dsn: 'https:\/\/b5bf359072254626aba8e64368e77b7d@sentry.io\/1289664',\n  release: RELEASE,\n});\n...<\/code><\/pre>\n<p><\/p>\n<p>Despu\u00e9s de esto, todos los nuevos errores se marcar\u00e1n como <em>release (0.1.0)<\/em>, es decir, estar\u00e1n vinculados a la versi\u00f3n correcta del c\u00f3digo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Monitoreo de errores con Sentry en aplicaciones frontend escritas en JavaScript: Parte 1\" src=\"\/wp-content\/uploads\/2020\/06\/b9776d3b6f9ebe94915c53374937dddc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Notas:<\/p>\n<p><\/p>\n<ul>\n<li>Hemos revisado un m\u00e9todo simple de c\u00f3mo usar versiones<\/li>\n<li>Sentry permite aplicar una <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.sentry.io\/learn\/releases\/?platform=javascript\"><em>m\u00e1s compleja<\/em> de ellas <em>uso de<\/em><\/a><\/noindex>, que est\u00e1 estrechamente relacionada con <em>GitHub<\/em>. Esta funci\u00f3n permite rastrear errores antes de realizar ciertas operaciones.<\/li>\n<\/ul>\n<p><\/p>\n<p>P.D. La segunda parte es m\u00e1s larga, por lo que estar\u00e1 en una publicaci\u00f3n aparte.<\/p>\n<p><\/p>\n<p>P.D. Chat de Telegram Sentry <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/sentry_ru\">https:\/\/t.me\/sentry_ru<\/a><\/noindex><\/p>\n<p><\/p>\n<p>P.D. Olvid\u00e9 mencionar que esta es una traducci\u00f3n de la publicaci\u00f3n <noindex><a rel=\"nofollow\" href=\"https:\/\/codeburst.io\/sentry-error-reporting-by-example-part-1-999b2df11556\">https:\/\/codeburst.io\/sentry-error-reporting-by-example-part-1-999b2df11556<\/a><\/noindex><\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508686\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0440\u0432\u0438\u0441 Sentry \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 JavaScript \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u043e\u0439, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a \u0447\u0435\u043c\u0443, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u041e\u0434\u043d\u0430\u043a\u043e, Sentry \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0431\u0430\u0433\u0438. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0427\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0415\u0441\u043b\u0438 \u0432\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86854,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0440\u0432\u0438\u0441 Sentry \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043e\u0448\u0438\u0431\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Sentry \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript: \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0440\u0432\u0438\u0441 Sentry \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-30T17:41:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-30T17:41:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Monitoreo de errores con Sentry en aplicaciones front-end escritas en JavaScript: Parte 1 | ProHoster","description":"El servicio Sentry permite monitorear errores de forma remota en aplicaciones front-end escritas en JavaScript.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043e\u0448\u0438\u0431\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Sentry \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript: \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u0421\u0435\u0440\u0432\u0438\u0441 Sentry \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 JavaScript.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-30T17:41:57+00:00","article:modified_time":"2020-06-30T17:41:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86853","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:05:27","updated":"2022-09-30 20:48:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/86853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=86853"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/86853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/86854"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=86853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=86853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=86853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}