{"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\/fr\/blog\/administrirovanie\/monitoring-oshibok-s-pomoshhyu-sentry-vo-frontend-prilozheniyah-napisannyh-na-javascript-chast-1","title":{"rendered":"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Service <em>Sentry<\/em> permet de surveiller \u00e0 distance les bugs dans les applications front-end \u00e9crites en <em>JavaScript<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/26936c2af48cb0d849eca4abd21b7deb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tenter de r\u00e9soudre les probl\u00e8mes dans les applications front-end sur <em>JavaScript<\/em> peut s'av\u00e9rer \u00eatre un d\u00e9fi, car ils surviennent dans le navigateur de l'utilisateur, auquel vous n'avez souvent pas acc\u00e8s. Cependant, <em>Sentry<\/em> permet de surveiller \u00e0 distance les bugs.<\/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\">Ici<\/a><\/noindex> vous pouvez t\u00e9l\u00e9charger les solutions abord\u00e9es dans cet article.<\/p>\n<p><\/p>\n<p><strong>Ce qu'il vous faut<\/strong><\/p>\n<p><\/p>\n<p>Si vous souhaitez utiliser ces exemples, vous aurez besoin de :<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/en\/\"><em>Node.js<\/em><\/a><\/noindex>: Un outil de d\u00e9veloppement multifonction qui ne fait pas partie de l'application. Nous avons t\u00e9l\u00e9charg\u00e9 la derni\u00e8re version LTS (8.12.0)<\/li>\n<li><em>Sentry<\/em>: Soit un compte sur le service Sentry (vous pouvez enregistrer jusqu'\u00e0 10 000 bugs par mois gratuitement), soit un Sentry install\u00e9 localement \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>Installation sur votre serveur<\/strong><\/p>\n<p><\/p>\n<p>Pour installer Sentry On-Premise sur vos serveurs, vous pouvez suivre 2 voies<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Construire des rpm et les installer \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>Utiliser l'installateur officiel :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">Installer Docker et docker-compose sur le serveur\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>Utilisation standard<\/strong><\/p>\n<p><\/p>\n<p>Pour commencer, ajoutez un nouveau <em>Sentry<\/em>-projet pour l'application sur le site du service. Apr\u00e8s avoir choisi le langage d\u00e9sir\u00e9, vous recevrez la documentation correspondante. Dans notre cas, nous avons choisi <em>JavaScript<\/em>.<\/p>\n<p><\/p>\n<p>Le premier exemple \u2014 standard <em>JavaScript<\/em>. Ici, il y a deux boutons : <em>\u00abBonjour\u00bb<\/em> (Hello) et <em>\u00abErreur\u00bb<\/em> (Error).<\/p>\n<p><\/p>\n<p>Apr\u00e8s avoir cliqu\u00e9 sur le bouton <em>\u00abBonjour\u00bb<\/em>, l'\u00e9cran se rechargera et le bloc <em>try<\/em> d\u00e9tectera et interceptera le bug. Une fois le bug \u00abintercept\u00e9\u00bb, le rapport d'erreur est envoy\u00e9 manuellement au service <em>Sentry<\/em>.<\/p>\n<p><\/p>\n<p>Le bouton \u00abErreur\u00bb permet simplement de d\u00e9tecter le bug.<\/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;Vanille&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;button id=&quot;hello&quot;&gt;Bonjour&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>Remarques :<\/p>\n<p><\/p>\n<ul>\n<li>Sentry est install\u00e9 depuis le CDN et est affich\u00e9 comme une variable globale<\/li>\n<li>Un peu plus t\u00f4t, nous avons lanc\u00e9 Sentry dans notre JavaScript<\/li>\n<\/ul>\n<p><\/p>\n<p>Pour tester cet exemple, nous pouvons utiliser une plateforme de serveur web statique <em>Node.js<\/em>: <em>serveur http.<\/em>Acc\u00e9dez au dossier o\u00f9 se trouve le fichier <em>index.html<\/em>, et tapez (l'option d\u00e9sactive la mise en cache) la ligne suivante pour ouvrir l'adresse dans le navigateur <noindex><a rel=\"nofollow\" href=\"http:\/\/localhost:8080\/\"><em>http:\/\/localhost:8080<\/em><\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Comment les bugs intercept\u00e9s sont affich\u00e9s<\/strong><\/p>\n<p><\/p>\n<p>Tout d'abord, cliquez sur le bouton <em>\u00abBonjour\u00bb<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/ce1390a129b56988a5630b65d7152b85.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nous avons intercept\u00e9 un bug, donc il ne remontera pas dans la pile d'appels, et ne sera donc pas surveill\u00e9 dans la console. Cependant, comme nous envoyons <em>Sentry<\/em> le rapport de bug manuellement, nous verrons un message \u00e0 son sujet dans le compte.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/4660395849c963cf6b6bce03cdf74013.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Remarques :<\/p>\n<p><\/p>\n<ul>\n<li>Nous pouvons suivre dans quelle ligne (24) le bug s'est gliss\u00e9.<\/li>\n<li>De plus, le fil d'Ariane affiche les actions du navigateur qui ont conduit \u00e0 l'erreur.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Comment les bugs non attrap\u00e9s sont affich\u00e9s<\/strong><\/p>\n<p><\/p>\n<p>Cliquons sur le bouton <em>\u00abErreur\u00bb.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/d6b3e92ac9bda497d6bb5f2987bef8d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le bug remonte dans la pile d'appels et, par cons\u00e9quent, un message d'erreur est affich\u00e9 dans la console. Apr\u00e8s cela, Sentry surveille automatiquement le bug, sans aucune action suppl\u00e9mentaire.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/554ada29ebadba636ad7e0edb0b8a104.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Remarques :<\/p>\n<p><\/p>\n<ul>\n<li>Nous pouvons voir \u00e0 quelle ligne (30) le bug s'est perdu<\/li>\n<li>Il n'y a pas de fil d'Ariane pr\u00e9vu (je ne comprends pas vraiment pourquoi)<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Comment s\u00e9curiser le projet<\/strong><\/p>\n<p><\/p>\n<p>Vous avez peut-\u00eatre remarqu\u00e9 comment nous contr\u00f4lons les pages qui peuvent envoyer des rapports d'erreurs \u00e0 notre projet <em>Sentry<\/em>; gr\u00e2ce \u00e0 <em>dsn<\/em> enregistrements. Le probl\u00e8me est que l'entr\u00e9e peut \u00eatre vue par quiconque regardant le code source de votre page.<\/p>\n<p><\/p>\n<p>Pour \u00e9viter cela, il faut limiter le nombre de domaines qui peuvent injecter des rapports d'erreurs dans notre projet. Dans cet exemple, nous avons utilis\u00e9 <em>localhost<\/em> (localhost). Cette option se configure dans l'onglet des param\u00e8tres <em>Sentry<\/em>-projet, <em>Param\u00e8tre de Projet Sentry<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/fc8990a261c2c3673a9b8eda6eaf1fd0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Releases<\/strong><\/p>\n<p><\/p>\n<p>En r\u00e9fl\u00e9chissant \u00e0 comment utiliser <em>Sentry<\/em> dans diff\u00e9rentes variations de notre application, un m\u00e9canisme est n\u00e9cessaire pour marquer les erreurs avec un num\u00e9ro de version.<\/p>\n<p><\/p>\n<p>Il ne faut pas que le bug que nous avons corrig\u00e9 r\u00e9apparaisse, alors que nous pensions que notre correctif avait fonctionn\u00e9. Il peut aussi arriver que l'utilisateur ait lanc\u00e9 une version plus ancienne et mise en cache de l'application.<\/p>\n<p><\/p>\n<p>Pour r\u00e9soudre le probl\u00e8me, il faut saisir l'identifiant <em>la sortie<\/em> (version) lors du lancement <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>Apr\u00e8s cela, toutes les nouvelles erreurs seront marqu\u00e9es comme <em>release (0.1.0)<\/em>, c'est-\u00e0-dire qu'elles seront li\u00e9es \u00e0 la bonne version du code.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Surveillance des erreurs avec Sentry dans les applications front-end \u00e9crites en JavaScript : Partie 1\" src=\"\/wp-content\/uploads\/2020\/06\/b9776d3b6f9ebe94915c53374937dddc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Remarques :<\/p>\n<p><\/p>\n<ul>\n<li>Nous avons pr\u00e9sent\u00e9 une m\u00e9thode simple pour utiliser les releases<\/li>\n<li>Sentry permet d'appliquer des m\u00e9thodes plus <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.sentry.io\/learn\/releases\/?platform=javascript\"><em>complexes<\/em> qui sont \u00e9troitement li\u00e9es \u00e0 <em>l'utilisation<\/em><\/a><\/noindex>. Cette fonction permet de suivre les bugs avant d'effectuer certaines op\u00e9rations. <em>GitHub<\/em>P.S. La deuxi\u00e8me partie est plus longue, elle sera donc dans un post s\u00e9par\u00e9.<\/li>\n<\/ul>\n<p><\/p>\n<p>P.S. Chat Telegram Sentry<\/p>\n<p><\/p>\n<p>P.S. J'ai oubli\u00e9 de pr\u00e9ciser que c'est une traduction de post <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/sentry_ru\">https:\/\/t.me\/sentry_ru<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Acc\u00e9l\u00e9rer le d\u00e9veloppement avec les services Azure : cr\u00e9er des chatbots et des services cognitifs avec la plateforme <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>Source : <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\/fr\/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=\"fr_FR\" \/>\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\/fr\/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\udd47Surveillance des erreurs avec Sentry dans les applications frontend \u00e9crites en JavaScript : Partie 1 | ProHoster","description":"Le service Sentry permet de surveiller \u00e0 distance les bugs dans les applications front-end \u00e9crites en JavaScript.","canonical_url":"https:\/\/prohoster.info\/fr\/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":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/86853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=86853"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/86853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/86854"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=86853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=86853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=86853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}