Sentry-javascript: [フィードバックの募集] Sentry JavaScript SDKv7へのロードマップ

作成日 2020年08月13日  ·  18コメント  ·  ソース: getsentry/sentry-javascript

こんにちは、私の友達!

Sentryは、すべての開発者がコードを診断して修正するのに役立ちます。 JavaScript SDKの新しいメジャーバージョンの作業を開始することを計画しており、これをこれまでで最高のソフトウェアにしたいと考えています。

ただし、そのためには、皆様からのフィードバックが必要です。

_SDKを使用する際の最大の問題点は何ですか?_
_最も不足している機能は何ですか?_
_何を変えたいですか?_

すでに以下の問題のいくつかに取り組む予定です。

  • IE10および正式に非推奨になったNodeバージョンのサポートを終了します
  • バンドル全体のサイズを大幅に削減
  • SDKをよりモジュール化する
  • ツリーシェイクの互換性を向上させる
  • 統合/拡張機能を作り直して、複数のクライアントでより適切に機能する

私たちがあなたを助けるのを手伝ってください、そして私たちにあなたの考えを知らせてください! すべてのコメントに必ずお答えしますので、すべての声が重要です。

乾杯!
カミル

Breaking Discussion

最も参考になるコメント

私にとって、 drastically reduce overall bundle size目標も最も重要なものです。

全てのコメント18件

私の最大の不満は、私のエラーログライブラリが私の最大のサードパーティライブラリの1つであるということでした。 ページ速度スコアを向上させるために、最初のページの読み込みから5〜10秒後にSentryの遅延読み込みを検討することがよくあるので、この❤️に対応していることに非常に興奮しています。

私にとって、 drastically reduce overall bundle size目標も最も重要なものです。

こんにちは、

バンドル全体のサイズを大幅に削減

これが何かを変える場合に備えて、私はこれを+1しています。 そして、これを追加します。私のWebアプリでは、Sentryの初期化に30ミリ秒かかります(高速コンピューターでは)。これは、診断ロガーには多すぎます。ReactNativeアプリでは、バンドラー(Metro)が原因で、大幅に悪化します。はツリーシェイクができないため、Sentryはなんと_78ファイル_をインポートし、起動時間にもかなりの貢献をします(数%)。

こんにちは、React Nativeからのデータです:

image

これはiPhoneXでプロファイリングされます。Sentryは起動時になんと54msかかります-ファイルの大部分をインポートするためだけに最大40、JSコードを初期化するために最大15。 それに加えて、メインスレッドをブロックして_native_側を初期化するために約30msを追加し、SentryのJS(多くあります)の字句解析/解析に考慮されていない時間があります-5〜15msと思われますが、正確に測定されていません。 合計で-90-100ms-それは私のアプリを起動するための合計時間の15%です!

素晴らしい質問です! ユーザーをconsole.logに公開したくないが、パンくずリストとしてキャプチャしたい本番アプリの、より柔軟なログオプション(またはドキュメントの作成方法)を確認したいと思います。 これにより、 https: //github.com/getsentry/sentry/issues/12618https://github.com/getsentry/sentry-javascript/issues/1883などの問題を解決でき

たぶん、Sentryブレッドクラムは、 debugloglevelなどのロギングライブラリと統合できます。 これは本番アプリの一般的なユースケースのようで、すでにいくつかのDIYアプローチでサポートされている可能性がありますが、現在のドキュメントに基づいてこれが可能かどうかは明確ではありません。 (または、それがあり、私がどういうわけかそれを逃した場合、私はどんなヒントにも感謝するでしょう)。 ありがとう!

こんにちは、SDKの初期化に関する推奨事項があります。

オプションを指定してSentry.initを呼び出す代わりに、SDKは名前付きグローバル変数などのSentryOptionsを自動的にチェックして、DSNIDやその他のオプションをフェッチできます。

必要に応じてJSファイルを動的にロードしており、クロスドメインリクエストやネットワークの問題でバンドルjsのロードイベントを追跡するのは困難です。 この変数を自動的にチェックすることはこれに役立ち、init関数を排他的に呼び出す必要はありません。

_SDKがイベントの送信に失敗しました_表示

capureEventがリクエストの送信に失敗したことを示すために、キューに入れて後で再試行できるようにしたいと思います。

これは、オフラインファーストのアプリ(プログレッシブウェブアプリ)に非常に役立ちます。

ブラウザがオンライン状態にあるが、接続/タイムアウトが不安定なためにネットワーク要求が失敗する場合があります(つまり、ネットワークカバレッジが不十分なトラフエリアを移動します)。

オフライン統合がありますが、それはその場合をカバーするのに十分ではないオンラインおよびオフラインイベントに依存しています。

ネットワークエラーにより、そのような状況を考慮しないアプリケーションがエラーをスローし、Sentryによるログ記録に失敗し、無効になってしまう可能性があります。

PWAであるプロジェクトがあり、アプリがオフラインのときにイベントを取得しません。また、歩哨取り込みドメインに登録されていないため、ServiceWorkerでバックグラウンド同期を実行する方法がありません。

@edelvalle
これはWorkboxとBackgroundSyncプラグインで可能になるはずです〜しかし、私はまだそれをテストしていません〜
正常に動作しているようです。また、イベントの日付はエラーが発生した時点のものです。

// service-worker.js
import { registerRoute } from 'workbox-routing'
import { NetworkOnly } from 'workbox-strategies'
import { BackgroundSyncPlugin } from 'workbox-background-sync'

registerRoute(
  new RegExp('^https://[^\\.]+\\.ingest\\.sentry\\.io/api/.*$'),
  new NetworkOnly({
    plugins: [
      new BackgroundSyncPlugin('project-name/sentry-event-queue', {
        maxRetentionTime: 7 * 24 * 60, // 7 days
      })
    ],
  }),
  'POST'
)

こんにちは、 drastically reduce overall bundle sizeが計画されているのを見るのが大好きです。 gatsby + preactプロジェクトがあり、歩哨はメインバンドルサイズの約28%を占めています(95kbのうち27kb)。 1ページあたりのjsバンドルを90kb未満に抑えて、接続が悪い地方でアプリのパフォーマンスを向上させようとしています。 大幅に小さい歩哨SDKサイズが大いに役立ちます。

IE11のサポートもやめませんか? Microsoftを含む多くの大規模サイトは、年末までにこのブラウザのサポートを終了します。 もちろん、問題は、これが実際にライブラリのサイズに影響を与えるかどうかです。

@kamilogorek v6がいつ来るかもしれないという考えはありますか?

また、 @ xr0masterにも同意し、新しいバージョンのIE11を含めてIEのサポートを完全に廃止する必要があると思います。

SDKを使用する際の最大の問題点は何ですか?

  • インポート。しかし、それは「ツリーの揺れ」、つまりモジュール性とうまく調和していると思います。
// This is not nice, as it doesn't get auto-completion when importing
import * as Sentry from '@sentry/browser'

// This is better, but has given me problems on Sentry 5.x
import { captureException } from '@sentry/browser'
  • コールスタックのデバッグ。 Sentryの実装方法の観点からは明らかかもしれませんが、すべてのconsole.loginstruments.js:1から発生しているように見えます。これは、デバッグ時には役に立ちません。 console.traceはやり過ぎなので、 console.logに手動でブレッドクラムを書き込んで、現在ログに記録されているものに関する情報を取得することになります。

最も不足している機能は何ですか?

健康のサポート。

それをサポートするノードバージョンでAsyncLocalStorageを使用する計画はありますか?

そのため、今日は6.0.0を出荷しましたが、デフォルトでセッションデータを送信する以外に大きな変更はありません。 cc @OmgImAlexis
この号のタイトルをv7に変更しました。これは、それをよりよく反映しているはずです。

Sentry.init別にフレームワーク統合を公開するのは素晴らしいことです。 これは、Vueが遅延ロードされる#3232に対応するため、歩哨の初期化時に存在することが保証されません。 Vueのロード時に呼び出すことができるSentry.configureVue(Vue)ようなもの。

独自のルーターとより具体的なルートを使用して、遅延呼び出しで同じドキュメント内のセカンダリ反応アプリのロードとアンロードをサポートするreact-router統合

このページは役に立ちましたか?
0 / 5 - 0 評価