Sentry-javascript: index.jsの゜ヌスコヌドが芋぀かりたせんでした

䜜成日 2018幎12月06日  Â·  28コメント  Â·  ゜ヌス: getsentry/sentry-javascript

パッケヌゞ+バヌゞョン

  • [] @sentry/browser
  • [x] @sentry/node
  • [] raven-js
  • [] raven-node _ノヌドのレむノン_
  • [ ] 他の

バヌゞョン

4.4.1

説明

次のむベントキャプチャコヌドは、むベントの解析䞭にSentryで゚ラヌを生成したす Source code was not found for /.../index.js

const Sentry = require('@sentry/node');

Sentry.init({ dsn: 'https://5d29[...][email protected]/13[...]6' });

(async () => {
  const sentryEvent = await Sentry.Parsers.parseError(new Error('Test'));
  Sentry.captureEvent(sentryEvent);
})();

セントリヌでのむベントの様子は次のずおりです。
Sentry Event Screenshot

Needs Information

最も参考になるコメント

わかりたした。これは私にはUXのバグのように芋えたす。 私の意芋では、少なくずもNode.jsプロゞェクトの堎合これは単なる譊告であり、 Source code was not foundではなく、 Source maps were not foundようなものである必芁がありたす。 これにより、1幎以䞊の履歎を持぀問題を防ぐこずができたでしょう;
必芁に応じお、この問題をフロント゚ンド/ディスプレむ郚分で䜜業しおいる人のレポヌトずしお再床開くか、閉じたたたにしおこの誀解を報告しおください。 最終的にこれを明確にしおくれおありがずう

党おのコメント28件

むベントぞの盎接リンクを投皿できたすか

以前にマスクしたスタックトレヌススクリヌンショットのいく぀かのパスも芋逃したした😅

Sentry.captureException盎接䜿甚せず、独自のむベントを䜜成したい特別な理由はありたすか

はい、これはむベントです https 

Sentry.captureEvent()を䜿甚する理由は、次のずおりです。hapiルヌトハンドラヌ芁求デヌタで匷化によっおスロヌされた゚ラヌむベントをキャプチャするhapiプラグむンを維持しおいたす。 参照 hapi- sentry ./index.js#L41-L67

@guischdiこの゚ラヌが発生する理由は、ロヌカルファむルパスがリモヌトサヌバヌに到達できないためです。
Sentryは、 /something/local/src/app.jsをフェッチしお解決し、そこから゜ヌスコヌドを読み取っお、より適切な゚ラヌマッピングを提䟛しようずしおいたす゜ヌスマップファむルでも同じように機胜したす。

あなたのファむルをアップロヌドするには、䜿甚するこずができたす私たちのCLI https://docs.sentry.io/cli/たたはWebPACKのプラグむンhttps://github.com/getsentry/sentry-webpack-plugin

゜ヌスマップに関する叀いドキュメントをいく぀か瀺したすが、抂念は新しいSDK https://docs.sentry.io/clients/node/sourcemaps/でも同じです珟圚の問題にも同じように適甚されたす。

すべおのフレヌムのパスを曞き換えるために䜿甚できる既存の統合もありたすhttps://github.com/getsentry/sentry-javascript/blob/master/packages/core/src/integrations/pluggable/rewriteframes.ts

したがっお、たずえば

Sentry.init({
  dsn: "https://[email protected]/297378",
  integrations: [new Sentry.Integrations.RewriteFrames()]
});

/something/local/src/app.jsをapp:///app.js  app:///は内郚プレフィックスです。したがっお、 app.jsを歩哚リリヌスアヌティファクトにアップロヌドするず、それがなくおも正しく読み取られたす。倖郚ファむルをフェッチする必芁がありたす。

基本的にあなたがする必芁があるのは

  • 蚭定releaseでinitコヌルを
  • セントリヌの同じリリヌスに゜ヌスをアップロヌドする
  • キャッチした゚ラヌのフレヌムがアップロヌドファむルのフレヌムに察応しおいるこずを確認しおください

それがあなたのためにいく぀かのこずをクリアするこずを願っおいたす。 さらにサポヌトが必芁な堎合は、お気軜にお問い合わせください。

こんにちは@kamilogorek
詳现な回答ありがずうございたす。

正解でしたNode.jsアプリケヌションのスタックトレヌスをSentryに衚瀺する䞀般的な方法は、RewriteFrames統合を介しお、たたは手動で各リリヌスのファむルをアップロヌドするこずです。 もしそうなら、どうしおcaptureException / catch-allのスタックトレヌスが衚瀺され、「゜ヌスコヌドが芋぀かりたせん」ずいう゚ラヌはトリガヌされたせん。

node_modules libで゚ラヌをスロヌする方法をテストしたした。 ラむブラリからでも゜ヌスコヌドを含めお゚ラヌが正しく報告されたす。 https://sentry.io/share/issue/2b95ecb13ce24227b2184b2561e4f6e3/を参照しお

では、なぜこれはcaptureExceptionで機胜し、 captureEvent倱敗するのでしょうか。

Sentry Screenshot

@guischdi䞡方のむベントぞの完党なリンクを過ぎお

たた、今埌3週間は䞍圚になるので、戻っおきたらこれに戻ろうず思いたす。

@kamilogorek

  • これはcaptureEventリンクです
  • これはcaptureExceptionリンクです

これを芋おくれおありがずう

@kamilogorekリリヌスごずにnode_modulesフォルダヌ党䜓をアップロヌドする必芁があるずいうこずですか サヌバヌ䞊で実行しおいお、このすべおの゜ヌスを利甚できるのに、なぜ@sentry/nodeが゚ラヌレポヌト付きの必芁なファむルをアップロヌドできないのですか

フレヌム統合を蚭定し、基本的にnode_modules党䜓をアップロヌドするず、この問題が解決するこずを確認したした。 しかし、非垞に倚くのnode_modulesファむルをアップロヌドするプロセスは非垞に遅いです。

これに察する解決策は次のいずれかだず思いたす。

  1. 歩哚がリリヌス党䜓の.tarをアップロヌドするこずを蚱可する
  2. ノヌドプロゞェクトを単䞀の.jsず.mapコンパむルし、これら2぀のファむルのみをデプロむしおアップロヌドしたす。

たた、 node_modules npmパッケヌゞに含たれおいない元の.tsファむルを参照する゜ヌスマップに問題がありたした-https //github.com/prisma/graphql-middleware/issues/159

@kamilogorekこの問題に関するニュヌスはありたすか

フレヌムの曞き換えが解決策だったこずも確認できたす。

私たちのケヌスは少し異なり、゜ヌスマップを機胜させようずしおいたしたが、瞮小されたファむルは垞にSentryによっお䜿甚されたものでした。 察応するリリヌスでは、瞮小されたファむルず関連する゜ヌスマップをアップロヌドしおいたす。 Sentryは゜ヌスマップを芋぀けおおらず、デフォルトで瞮小ファむルただし、゜ヌスマップず同じパスでホストされおいるになっおいるようです。

Sentryのinitの統合キヌにnew Integrations.RewriteFrames()を远加したずころ、新しい問題ごずに゜ヌスマップが取埗され始めたした。

RewriteFrames統合ずnode_modulesアップロヌドが問題を解決しおいるように芋えるこずを知っおおくずよいでしょう。 しかし、最初に @ mieszko4ですでに述べたように、非垞に倚くのファむルをアップロヌドするのは非垞に面倒です。 そしおさらに私の最初の発芋は、

captureException / catch-allのスタックトレヌスが衚瀺され、「゜ヌスコヌドが芋぀かりたせん」゚ラヌがトリガヌされないこず

したがっお、次の質問は未解決のたたです。

では、なぜこれはcaptureExceptionで機胜し、 captureEvent倱敗するのでしょうか。

もっず正確に蚀えば、問題なくcaptureExceptionを介しお゚ラヌをキャプチャできたすが、 captureEventを介しおキャプチャするには、すべおのファむルのアップロヌド RewriteFrames統合たたは手動が必芁です。 「゜ヌスコヌドが芋぀かりたせんでした」-゚ラヌ。 これはバグですか、それずも意図されたものですか、@ kamilogorek

@guischdi応答が遅くなっおすみたせん。 少しトラックを倱いたした。 ここで䜕が起こっおいるのか私の蚘憶をリフレッシュし、いく぀かのサンプルむベントを提䟛できたすか

@kamilogorek
はい、私たちの問題は次のずおりです。

  • captureException node_moduleが゚ラヌをスロヌした堎合でも、 captureExceptionは問題なく機胜したす。 このテスト䟋倖を参照しおください
  • captureEventは歩哚のしゃっくりを䞎えたす error encountered while processing this event: [...] Source code was not found ; このテストむベントを芋る

@guischdi確認のために、これは生のノヌドjsファむルですよね Webpack、コンパむル、゜ヌスマップはありたせん。 異なる行に2぀の異なる呌び出しがある1぀のindex.jsファむルだけですか 可胜であれば、このファむルの内容を提䟛できたすか

@kamilogorek
はい、生のnodeJSです。 䞊でリンクしindex.js 13行すべおがすでに衚瀺されおいたす。

@guischdiは、なぜこのように動䜜するのかを調査しおいたす同じURLの2぀の連続したフレヌムがこれをトリガヌしたす。 それたでの間、プロゞェクトの蚭定で[JavaScript゜ヌスフェッチを有効にする]をオフにするこずができたす。 https://sentry.io/settings/kamil-ogorek/projects/testing-project/
これはノヌドアプリなので、それを行う意味はありたせん。

@kamilogorek OK、「JavaScript゜ヌスフェッチを有効にする」蚭定をオフにしお、別の゚ラヌをトリガヌしたした。 しかし、それでも1 error encountered while processing this event: [...] Source code was not found この問題を参照

奇劙なこずに、それは私にずっおはうたくいきたす。 ずにかく、なぜそれが起こるのかを調査しようずしたすが、それが䜕も機胜しないこずを劚げる倧きな問題ではないので、い぀起こるかは玄束できたせん。 あなたを投皿し続けたす

@kamilogorekこれに関するニュヌスはありたすか

私の堎合、問題ビュヌは゜ヌスコヌドにいく぀かのファむルがないこずを報告したすが、それらはすべおスタックトレヌスの䞋に存圚し、衚瀺できたす。

セルフホストのSentryを実行しおいお、 @sentry/node 5.4.3

これが私のコヌドです

// file: <path>/code/cli
const Sentry = require('@sentry/node');
Sentry.init({ dsn: process.env.SENTRY_DSN });
function test () {
  throw new Error('test');
}
test();

この゚ラヌも発生したす

image

そしお、ここにスタックがありたす

Error: test
  File "<path>/code/cli", line 10, col 9, in test
    throw new Error('test');
  File "<path>/code/cli", line 13, col 1, in Object.<anonymous>
    test();
  File "internal/modules/cjs/loader.js", line 1063, col 30, in Module._compile
  File "internal/modules/cjs/loader.js", line 1103, col 10, in Module._extensions..js
  File "internal/modules/cjs/loader.js", line 914, col 32, in Module.load
  File "internal/modules/cjs/loader.js", line 822, col 14, in Module._load
  File "internal/modules/cjs/loader.js", line 1143, col 12, in Module.runMain
  File "internal/main/run_main_module.js", line 16, col 11, in null.<anonymous>

私もこの問題にSource code was not found

@LukeXF圱響を受けるむベントぞのリンクを提䟛できたすか

「゜ヌスコヌドが芋぀かりたせん」ずいう゚ラヌが衚瀺されおも、゜ヌスコンテキスト぀たり、問題の行の䞊䞋のコヌドが衚瀺される理由は、SDKで、むベントを送信する前に、スタックトレヌスのこの情報を

ただし、これは私たちの偎のバグです。リリヌスごずにnode_modulesをアップロヌドするこずを実際に期埅しおいるわけではないためですノヌドアプリの堎合、ブラりザヌアプリの堎合は、ずにかくバンドル/瞮小する可胜性がありたす。 https://github.com/getsentry/sentry/pull/17538で修正する必芁がありたす。これは、数時間でデプロむされたす。

それが解決したら、ここにコメントした人は、ただ問題/質問があるかどうか、そしおそれらが䜕であるかを私たちに知らせおもらえたすか 必芁に応じお、これを再床開いおください。

こんにちは@lobsterkatie
次のスニペットnpmの珟圚のREADMEから削陀を䜿甚しお、再床テストしたした。

const Sentry = require('@sentry/node');

Sentry.init({ dsn: process.env.DSN });

(async () => {
  Sentry.captureException(new Error('Good bye'));
})();

残念ながら、 https//sentry.io/share/issue/0247fe07741c4e358089461f113cef42/でSource code was not found゚ラヌが発生したす
昚日導入した修正はすでに展開されおいたすか

たた、珟圚のv4.xxバヌゞョンv4.6.6および@ sentry / nodeの最新リリヌスv5.14.0でテストされおいたす。

@guischdiアヌティファクトをアップロヌドしおおらず、構成にリリヌスも含たれおいたせん。

最初にドキュメントに埓っおください https 

@kamilogorek

SDKでは、むベントを送信する前に、スタックトレヌスの凊理の䞀郚ずしおこの情報を蚘録したす。 ゚ラヌは、サヌバヌがその情報を入力しようずしおいるこずから発生しおいたす。
ただし、リリヌスごずにnode_modulesをアップロヌドするこずを実際に期埅しおいるわけではないため、これは私たちの偎のバグです。

その時点で@lobsterkatieを理解しおいれば䞊蚘で匕甚、コヌドをアップロヌドする必芁はありたせん。 問題のリンクでは、問題を理解するために必芁なすべおの゜ヌスコヌドコンテキストこの堎合はスクリプトのすべおの゜ヌスコヌドを確認できたす。 したがっお、これは正しく蚘録されおいるようです。 ゜ヌスマップは瞮小されおいないプレヌンなNode.jsプログラムであるため、リンクが提案しおいるように゜ヌスマップをアップロヌド/提䟛する必芁はないず思いたす。
残っおいる唯䞀の問題は、コンテキストが適切に提䟛されおいないのに衚瀺される゚ラヌです。 サヌバヌは、私の偎からの远加のアップロヌドが必芁ないこずを認識しおいないようです。 私はそれを正しく@lobsterkatieにしおいたすか

@guischdi探しおいるファむルは、node_modulesからではなく、アプリからのものであるため、サヌドパヌティのコヌドをより適切に陀倖するために行った倉曎はここでは適甚されたせん。

ノヌドアプリの゜ヌスマップを凊理しようずする理由は、コヌドが瞮小されおいない可胜性が非垞に高いこずは事実ですが、コヌドは非垞に簡単にトランスパむルされる可胜性があるためたずえば、タむプスクリプトで蚘述されおいる堎合、゜ヌスが必芁になるためです。 babelからの出力ではなく、蚘述されたずおりにコヌドを衚瀺するようにマップしたす。

わかりたした。これは私にはUXのバグのように芋えたす。 私の意芋では、少なくずもNode.jsプロゞェクトの堎合これは単なる譊告であり、 Source code was not foundではなく、 Source maps were not foundようなものである必芁がありたす。 これにより、1幎以䞊の履歎を持぀問題を防ぐこずができたでしょう;
必芁に応じお、この問題をフロント゚ンド/ディスプレむ郚分で䜜業しおいる人のレポヌトずしお再床開くか、閉じたたたにしおこの誀解を報告しおください。 最終的にこれを明確にしおくれおありがずう

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡