宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見(jiàn)問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

使用 Sentry 為 PHP 和 Web 移動(dòng)小程序提供多平臺(tái)錯(cuò)誤監(jiān)控

管理 管理 編輯 刪除

今天我在 reddit 上看到 Sentry 的推廣,想到 19 年我第一次在公司自研產(chǎn)品b2b2c上使用 Sentry 的經(jīng)歷,后面在其他項(xiàng)目上多次使用Sentry,今天就順手分享一下在 Laravel 項(xiàng)目中接入 Sentry 的實(shí)踐心得。

現(xiàn)代項(xiàng)目往往涉及 Web、移動(dòng)端和小程序,錯(cuò)誤追蹤和日志集中化顯得尤其重要,Sentry 在這方面真的挺香的。

安裝與基礎(chǔ)配置

Laravel 后端集成 Sentry 很直觀,官方提供了 SDK。最簡(jiǎn)單的安裝方式是通過(guò) Composer


composer require sentry/sentry-laravel

然后在 config/app.php 注冊(cè)服務(wù)提供者(Laravel 5.x):


Sentry\Laravel\ServiceProvider::class,

或者在 Laravel 6+ 可以直接使用自動(dòng)發(fā)現(xiàn)。配置文件可以發(fā)布出來(lái):


php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"

會(huì)生成 config/sentry.php,里面可以設(shè)置 DSN、環(huán)境、采樣率等。比如:


return [
    'dsn' => env('SENTRY_DSN'),
    'environment' => env('APP_ENV', 'production'),
    'traces_sample_rate' => 0.2,
];

前端 Vue 使用官方 JS SDK:


npm install @sentry/vue @sentry/tracing

初始化示例:


import * asSentryfrom"@sentry/vue";
import { Integrations } from"@sentry/tracing";

Sentry.init({
  app,
dsn: process.env.VUE_APP_SENTRY_DSN,
integrations: [newIntegrations.BrowserTracing()],
tracesSampleRate: 0.2,
});

移動(dòng)端 iOS/Android 可用官方 SDK 或第三方橋接庫(kù),注意需要在 info.plist 或 AndroidManifest 中聲明權(quán)限。

微信小程序比較特殊,需要在 微信公眾平臺(tái)配置域名白名單,否則 SDK 無(wú)法向 Sentry 發(fā)送數(shù)據(jù)。具體是把 Sentry 的上報(bào)域名加入 request 合法域名即可。

環(huán)境區(qū)分與配置優(yōu)化

在 Laravel 中,可以通過(guò) .env 文件區(qū)分環(huán)境:


SENTRY_DSN_DEV=https://[email protected]/123
SENTRY_DSN_PROD=https://[email protected]/456
APP_ENV=dev

然后在 config/sentry.php 中根據(jù)環(huán)境選擇 DSN:


'dsn' => env('APP_ENV') === 'prod' ? env('SENTRY_DSN_PROD') : env('SENTRY_DSN_DEV'),

這樣開(kāi)發(fā)、預(yù)發(fā)和生產(chǎn)環(huán)境的事件不會(huì)互相干擾。同時(shí)可以調(diào)整 traces_sample_rate 或日志等級(jí),避免開(kāi)發(fā)環(huán)境刷屏。

捕獲異常與忽略策略

Laravel 默認(rèn)會(huì)捕獲異常并發(fā)送到 Sentry,但有些非致命錯(cuò)誤不需要打擾,例如第三方包的警告??梢栽?before_send 鉤子中過(guò)濾:


Sentry\configureScope(function (Sentry\State\Scope $scope): void {
    $scope->addEventProcessor(function (array $event) {
        if (isset($event['exception']) && str_contains($event['exception']['values'][0]['type'], 'SomeNonCriticalException')) {
            return null; // 忽略
        }
        return $event;
    });
});

同時(shí)也可以手動(dòng)捕獲異常:


try {
    // 業(yè)務(wù)邏輯
} catch (\Exception $e) {
    Sentry\captureException($e);
}

前端 Vue、移動(dòng)端或小程序同理,可以根據(jù) error.message 或 URL 過(guò)濾不必要的事件。

與隊(duì)列和日志結(jié)合

Laravel 隊(duì)列任務(wù)出錯(cuò)時(shí),如果沒(méi)有捕獲,異??赡鼙煌痰簟M扑]在 Handler 或隊(duì)列 Job 中統(tǒng)一處理:


public function failed(Exception $exception)
{
    Sentry\captureException($exception);
}

結(jié)合日志系統(tǒng)也很方便,Sentry 可以作為自定義日志通道:


'channels' => [
    'sentry' => [
        'driver' => 'sentry',
    ],
],

這樣 Log::channel('sentry')->error('Something happened') 就能發(fā)送到 Sentry,同時(shí)保留本地日志。

跨平臺(tái)注意事項(xiàng)

  1. 1. Vue 前端:一定要配置 source map,這樣 Sentry 才能顯示真實(shí)的行號(hào)和文件。
  2. 2. iOS/Android:建議在 release 版本開(kāi)啟符號(hào)化上傳,這樣崩潰棧才可讀。
  3. 3. 微信小程序:除了域名白名單,還要考慮 network timeout,避免 SDK 堵塞前端邏輯。

小技巧是前端可以捕獲全局未處理異常,統(tǒng)一發(fā)送:


window.addEventListener('error', event => {
    Sentry.captureException(event.error);
});

Sentry 平臺(tái)部署

除了 SDK 集成,很多人關(guān)心 Sentry 本身的平臺(tái)選型。Sentry 提供兩種模式:SaaS獨(dú)立部署。

SaaS 版本就是官方托管的服務(wù),你只需要注冊(cè)賬號(hào)、配置 DSN,就能馬上收集錯(cuò)誤,省去運(yùn)維煩惱,升級(jí)和安全都由官方負(fù)責(zé)。適合絕大多數(shù)中小型項(xiàng)目或者希望快速落地的團(tuán)隊(duì)。

獨(dú)立部署則可以把 Sentry 安裝在自己的服務(wù)器上,完全控制數(shù)據(jù)、網(wǎng)絡(luò)訪問(wèn)和存儲(chǔ)策略。部署難度稍高,需要配置 PostgreSQL、Redis、Kafka 等依賴(lài),也需要處理版本升級(jí)和備份策略,但對(duì)數(shù)據(jù)隱私要求高或者企業(yè)內(nèi)網(wǎng)項(xiàng)目,這幾乎是唯一選擇。不過(guò),官方提供了Docker鏡像可以直接使用。

實(shí)際上,在企業(yè)里經(jīng)??吹交旌鲜褂茫貉邪l(fā)環(huán)境或小型項(xiàng)目走 SaaS,核心業(yè)務(wù)走自建,既靈活又安全。Laravel 項(xiàng)目接入時(shí),只要 DSN 對(duì)應(yīng)正確,代碼層面無(wú)需額外改動(dòng),平臺(tái)切換非常順暢。

實(shí)用技巧與優(yōu)化

  • ? 批量忽略低優(yōu)先級(jí)錯(cuò)誤,比如 404 或第三方腳本錯(cuò)誤。
  • ? 調(diào)整采樣率降低重復(fù)告警,例如 traces_sample_rate: 0.1
  • ? 配合 release 標(biāo)簽區(qū)分不同版本,便于追蹤回歸問(wèn)題:
Sentry\configureScope(function (Sentry\State\Scope $scope): void {
    $scope->setTag('release', config('app.version'));
});
  • ? 隊(duì)列和日志結(jié)合,保證即便異步任務(wù)失敗,也能可靠上報(bào)。

寫(xiě)在最后

從 SDK 集成到平臺(tái)部署,其實(shí) Sentry 的魅力就在于統(tǒng)一、多端、可擴(kuò)展。多環(huán)境、多平臺(tái)、隊(duì)列日志結(jié)合后,你會(huì)發(fā)現(xiàn)錯(cuò)誤的可見(jiàn)性大大提高,排查問(wèn)題也不再是盲人摸象的狀態(tài)。19 年 BBC 的經(jīng)歷到現(xiàn)在依然印象深刻,Sentry 幫我節(jié)省了無(wú)數(shù)調(diào)試時(shí)間。今天分享出來(lái),希望對(duì)大家 Laravel 項(xiàng)目的多平臺(tái)錯(cuò)誤監(jiān)控有所啟發(fā)。

寫(xiě)作不易,希望您動(dòng)動(dòng)發(fā)財(cái)?shù)男∈?,幫忙一鍵三連(點(diǎn)贊、推薦、關(guān)注),您的鼓勵(lì),就是我寫(xiě)作的動(dòng)力!


請(qǐng)登錄后查看

各大電商API接口——> Brad19970108118 最后編輯于2025-09-04 10:39:20

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
20
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見(jiàn)問(wèn)題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁(yè)頭條 首頁(yè)動(dòng)態(tài) 首頁(yè)推薦
取 消 確 定
回復(fù)
回復(fù)
問(wèn)題:
問(wèn)題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開(kāi)源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服