Sentry Là Gì

Sentry.io là gì? Tại sao lại buộc phải dùng tới Sentry

Sentry.io là 1 trong vận dụng giúp họ tracking lại đầy đủ error xảy ra phía bên trong áp dụng trong quá trình người tiêu dùng áp dụng, gửi thông báo lỗi trải qua email, SMS.

Bạn đang xem: Sentry là gì

Trên trang chủ Sentry.io, nói rằng:

When your code breaks.Sentry is here to help you fix it.

Mỗi developer viết ra mặt hàng tấn những bugs, và cấp thiết tránh khỏi có không ít bugs còn vĩnh cửu bên trên production. Sentry giúp cho bạn tìm ra các bugs đó trước khi customer nhận biết bọn chúng.

Xem thêm: Cách Nhận Danh Hiệu Weapon Master Pubg Mobile Là Gì, Cách Nhận Danh Hiệu Weapon Master Pubg Mobile

Tạo một Organization mới bên trên Sentry.io

Trước hết chúng ta vào đây nhằm tạo 1 Organization cho các dự án công trình của chính bản thân mình,

*
sau thời điểm tạo ra Organization xong, trang đã chuyển tới hình ảnh cho chính mình chế tạo Project của chính mình. Có không hề ít ngôn từ được Sentry cung cấp, câu hỏi của người tiêu dùng là chỉ việc chọn một loại, điền tên và Sentry đã gửi chúng ta tới giao diện trả lời integration và cung ứng cho bạn 1 DSN key nhằm bạn áp dụng sống vào vận dụng của bản thân mình.
*

Thêm Sentry vào dự án Laravel để khắc ghi lỗi

Laravel được tư vấn vày Sentry trải qua package sentry-laravel, để thực hiện Sentry trong dự án chúng ta chỉ việc cài đặt nói trải qua Composer:

$ composer require sentry/sentry-laravel:1.1.1Nếu bạn đang dùng Laravel 5.5 trlàm việc lên thì làm lơ bước này:

"providers" => array( // ... SentryLaravelServiceProvider::class,)"aliases" => array( // ... "Sentry" => SentryLaravelFacade::class,)Thêm Sentry vào App/Exceptions/Handler.php để vận dụng của doanh nghiệp report cho tới Sentry.io mỗi lúc tất cả Exception xảy ra:

public function report(Exception $exception) if (app()->bound("sentry") && $this->shouldReport($exception)) app("sentry")->captureException($exception); parent::report($exception);Tạo tệp tin config của Sentry bởi command

$ php artisan vendor:publish --provider="SentryLaravelServiceProvider"return array( "dsn" => env("SENTRY_LARAVEL_DSN"), // capture release as git sha // "release" => trim(exec("git log --pretty="%h" -n1 HEAD")), // Capture bindings on SQL queries "breadcrumbs.sql_bindings" => true, // Capture default user context "user_context" => true,);Cuối cùng, bạn cần bổ sung vào .env DSN key của dự án công trình mà bạn vẫn chế tạo ra sinh sống trên:

SENTRY_LARAVEL_DSN=https:///xxxxxĐể khám nghiệm xem Sentry đã nhận được được lỗi trong vận dụng Laravel chưa, chúng ta cũng có thể chạy thử bằng vấn đề vào tạo ra 1 route throw ra 1 exception:

Route::get("/debug-sentry", function () throw new Exception("Laravel Sentry error!"););với đây Sentry đã capture lại Exception vừa rồi:

*
*

Thêm Sentry vào dự án công trình React

Để sử dụng Sentry trong React, các bạn thực hiện package
sentry/browserTrước cơ, mỗi một khi xảy ra một Javascript error trong một phần của UI, nó sẽ gây ra crash tổng thể app. Để giải quyết và xử lý vấn đề này cho React user, trường đoản cú phiên bản 16 trngơi nghỉ lên, React reviews một concept new Error Boundary. Error boundaries là 1 trong React component đã catch Javascript errors xẩy ra bên trong những child component, log lại error cùng hiển thị lỗi tại vị trí UI đó vậy bởi crash tổng thể phầm mềm.

Sentry tận dụng tối đa nó nhằm capture các error trên client.

trước hết bản thân tạo nên 1 instance của Sentry:

import Raven from "raven-js"import config from "config/"const SENTRY_DSN = "https:///xxxxx"Raven.config(SENTRY_DSN, environment: "local").install()export mặc định Ravenimport React, Component from "react"import sentry from "sentry"class ErrorBoundary extends Component state = eventId: null componentDidCatch(error, errorInfo) const eventId = sentry.captureException(error, extra: errorInfo ) this.setState(eventId) render() return this.props.errorStatus ? button onClick=() => sentry.showReportDialog( eventId: this.state.eventId )>Report feedback/button> : this.props.children export default ErrorBoundaryCuối cùng chúng ta chỉ việc quấn tổng thể những Component vào ứng dụng của công ty bằng ErrorBoundary ngơi nghỉ trên

import React, Component from "react"import ErrorBoundary from "ErrorBoundary"class App extends Component render() return ( ErrorBoundary> // Các component nhỏ /ErrorBoundary> ) export mặc định App