<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>sentry Archives - Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/tag/sentry/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/tag/sentry/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Wed, 04 Oct 2023 07:11:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>sentry Archives - Tomoshare</title>
	<link>https://blog.tomosia.com.vn/tag/sentry/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sentry.io cho người mới bắt đầu (Vuejs)</title>
		<link>https://blog.tomosia.com.vn/sentry-io-cho-nguoi-moi-bat-dau-vuejs/</link>
					<comments>https://blog.tomosia.com.vn/sentry-io-cho-nguoi-moi-bat-dau-vuejs/#comments</comments>
		
		<dc:creator><![CDATA[admin_tomosia]]></dc:creator>
		<pubDate>Wed, 04 Oct 2023 07:08:05 +0000</pubDate>
				<category><![CDATA[VueJS]]></category>
		<category><![CDATA[sentry]]></category>
		<category><![CDATA[debug]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=259</guid>

					<description><![CDATA[<p>Tình huống Bạn đang phát triển một ứng dụng web Vue.js lớn với khách hàng cũng lớn không&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/sentry-io-cho-nguoi-moi-bat-dau-vuejs/">Sentry.io cho người mới bắt đầu (Vuejs)</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-1024x375.png" alt="" class="wp-image-260" style="width:680px;height:249px" width="680" height="249" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-1024x375.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-300x110.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-768x282.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-380x139.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-800x293.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js-1160x425.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sentry-and-vue-js.png 1200w" sizes="(max-width: 680px) 100vw, 680px" /></figure>



<h2 id="tinh-huong" class="wp-block-heading">Tình huống</h2>



<p>Bạn đang phát triển một ứng dụng web Vue.js lớn với khách hàng cũng lớn không kém. Một ngày đẹp trời nào đó, khách hàng gửi cho bạn 1 bug mà thoạt nhìn có vẻ đơn giản, tuy nhiên, bạn không thể tái hiện lỗi này trong môi trường phát triển của mình, và bạn không có thông tin rõ ràng về tình trạng lỗi. Trong tình huống này, bạn có thể sử dụng <a href="https://sentry.io/welcome/"><strong>Sentry</strong></a> để giúp xác định và giải quyết lỗi một cách hiệu quả. Vậy cùng mình đi tìm hiểu xem Sentry là gì mà lại lợi hại như vậy.</p>



<h2 id="sentry-la-gi" class="wp-block-heading">Sentry là gì</h2>



<p>Sentry là một dịch vụ quản lý lỗi (error tracking) và giám sát (monitoring) phần mềm được sử dụng để theo dõi và ghi lại các lỗi và sự cố trong ứng dụng phần mềm. Sentry giúp các nhà phát triển và nhóm phát triển phát hiện, theo dõi, và khắc phục lỗi một cách hiệu quả. Dịch vụ này có thể được tích hợp vào các ứng dụng web và ứng dụng di động để ghi lại thông tin về lỗi, crash, và sự cố xảy ra trong quá trình chạy ứng dụng</p>



<h2 id="loi-ich-cua-sentry" class="wp-block-heading">Lợi ích của Sentry</h2>



<ul class="wp-block-list">
<li><strong>Ghi lại lỗi tự động:</strong> Sentry có thể được tích hợp vào mã của bạn để tự động ghi lại thông tin về lỗi mỗi khi nó xảy ra trong môi trường sản xuất. Điều này cho phép bạn nhận được thông báo ngay khi có sự cố xảy ra.</li>



<li><strong>Thông tin về lỗi chi tiết:</strong> Sentry không chỉ ghi lại lỗi mà còn cung cấp thông tin chi tiết về nguồn gốc của lỗi, ngăn chặn lỗi, và cách lỗi xảy ra. Điều này giúp bạn dễ dàng xác định vị trí và nguyên nhân gây ra lỗi.</li>



<li><strong>Theo dõi thời gian thực:</strong> Sentry cung cấp một giao diện quản lý web cho phép bạn theo dõi lỗi trong thời gian thực và tìm hiểu về tần suất và ngữ cảnh xảy ra lỗi.</li>



<li><strong>Cung cấp stack trace:</strong> Sentry có khả năng tạo ra stack trace, cho phép bạn xem các hàm và dòng mã cụ thể liên quan đến lỗi. Điều này giúp bạn tìm ra lỗi trong mã của bạn.</li>



<li><strong>Thông báo ngay lập tức: </strong>Sentry có thể bắn thông báo qua mail, SMS, &#8230;</li>
</ul>



<h2 id="setup-sentry-cho-vue2" class="wp-block-heading">Setup Sentry cho Vue2</h2>



<p>Muốn sử dụng Sentry trước tiên bạn cần có tài khoản, vào <a href="https://sentry.io/signup/ ">https://sentry.io/signup/ </a> để đăng ký tài khoản.</p>



<p>Sau khi đăng ký xong và đăng nhập thành công giao diện sẽ hiển thị như sau: </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="624" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-1024x624.png" alt="" class="wp-image-297" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-1024x624.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-300x183.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-768x468.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-1536x936.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-2048x1248.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-380x232.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-800x487.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1-1160x707.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-02-at-18.18.11-1.png 2728w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Okay, tiếp theo thì ấn vào nút <strong>Create project</strong>, trong phần tạo đấy, vì mình đang hướng dẫn cho vue nên hãy chọn vuejs, nhập tên project và nhấn nút <strong>Create Project</strong>: </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="701" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-1024x701.png" alt="" class="wp-image-290" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-1024x701.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-300x205.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-768x526.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-1536x1051.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-2048x1402.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-380x260.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-800x547.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06-1160x794.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-11.47.06.png 2300w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Vậy là chúng ta đã tạo xong <em>Project</em> trên <strong>Sentry</strong>, bước tiếp theo là lấy <strong>Client Keys (DSN)</strong> để có thể tích hợp vào dự án vuejs, từ <strong>Menu -&gt; Projects -&gt; Chọn Project bạn vừa tạo -&gt; Chọn cài đặt bên góc trên bên phải -&gt; Client Keys (DSN)</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="653" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-1024x653.png" alt="" class="wp-image-294" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-1024x653.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-300x191.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-768x490.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-1536x979.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-2048x1306.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-380x242.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-800x510.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51-1160x740.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-03-at-12.11.51.png 2296w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Cài đặt <strong>Sentry</strong> cho vue: <strong><code><mark style="background-color:#e9ecef" class="has-inline-color has-black-color">npm install @sentry/cli</mark></code></strong></p>



<p>Trong <strong>main.js</strong>, khởi tạo <em>Sentry.init</em> với <em>dsn</em> chính là <strong>Client Keys (DSN)</strong> bạn lấy ở bên trên: </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import Vue from 'vue'
import App from './App.vue'
import * as Sentry from &quot;@sentry/vue&quot;

Vue.config.productionTip = false

Sentry.init({
  Vue,
  dsn: &quot;https://51b9f7xxxxxxxx.ingest.sentry.io/45059xxxxxxxxx&quot;
});

new Vue({
  render: h =&gt; h(App),
}).$mount('#app')
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> Vue </span><span style="color: #FF79C6">from</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">vue</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> App </span><span style="color: #FF79C6">from</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">./App.vue</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">*</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">as</span><span style="color: #F8F8F2"> Sentry </span><span style="color: #FF79C6">from</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">@sentry/vue</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">Vue.config.productionTip </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">false</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">Sentry.</span><span style="color: #50FA7B">init</span><span style="color: #F8F8F2">({</span></span>
<span class="line"><span style="color: #F8F8F2">  Vue,</span></span>
<span class="line"><span style="color: #F8F8F2">  dsn</span><span style="color: #FF79C6">:</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">https://51b9f7xxxxxxxx.ingest.sentry.io/45059xxxxxxxxx</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">});</span></span>
<span class="line"></span>
<span class="line"><span style="color: #FF79C6; font-weight: bold">new</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">Vue</span><span style="color: #F8F8F2">({</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #50FA7B">render</span><span style="color: #FF79C6">:</span><span style="color: #F8F8F2"> </span><span style="color: #FFB86C; font-style: italic">h</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">=&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">h</span><span style="color: #F8F8F2">(App),</span></span>
<span class="line"><span style="color: #F8F8F2">}).</span><span style="color: #50FA7B">$mount</span><span style="color: #F8F8F2">(</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">#app</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span></code></pre></div>



<p>Các bước đã xong, giờ bạn đã có thể test <strong>Sentry</strong> bằng cách tạo thử 1 <em>Exception</em>.</p>



<p>Khi 1 <em>Exception</em> được thực thi, <strong>Sentry</strong> sẽ bắt và trả về cho bạn thông tin xoay quanh <em>Exception</em> đó: </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="545" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-1024x545.png" alt="" class="wp-image-376" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-1024x545.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-300x160.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-768x409.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-1536x817.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-2048x1089.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-380x202.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-800x426.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-1160x617.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38-1920x1024.png 1920w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-12.19.38.png 2722w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="tong-ket" class="wp-block-heading">Tổng kết</h2>



<p>Trên đây là thông tin cũng như hướng dẫn cơ bản để có thể tích hợp <strong>Sentry</strong> vào dự án vuejs, còn rất nhiều tính năng hay ho nữa như filter bằng trình duyệt, hỗ trợ source map trong việc gửi thông tin stack trace của exception, &#8230;. bạn hãy tự mình khám phá thêm nhé, mình đã làm được và mình tin bạn cũng sẽ làm được. Hẹn gặp lại ở bài tiếp theo</p>
<p>The post <a href="https://blog.tomosia.com.vn/sentry-io-cho-nguoi-moi-bat-dau-vuejs/">Sentry.io cho người mới bắt đầu (Vuejs)</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/sentry-io-cho-nguoi-moi-bat-dau-vuejs/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
	</channel>
</rss>
