問題
もし、Pythonエージェントでブラウザのインスツルメンテーション が問題になった場合は、 標準的なトラブルシューティング手順 ブラウザのモニタリングに従ってください。ここでは、Pythonに関する追加のヒントを紹介します。
解決策
以下の推奨事項に従って、コンテンツの構造をチェックし、コンテンツ圧縮が妨げられていないかどうかを確認してください。
ブラウザエージェントが自動的に追加されることを期待していたにもかかわらず、追加されなかった場合は、以下のような制限が適用されていないか確認してください。
HTML レスポンスの
Content-Type
は、text/html
でなければなりません。Content-Encoding
レスポンスヘッダーが設定できません。Content-Disposition
レスポンスヘッダーは、レスポンスを添付ファイルとしてマークすることはできません。Content-Disposition
HTML< head>
要素内のhttp-equiv
meta タグで指定されたものは、応答を添付ファイルとしてマークすることはできません。< body>
HTMLレスポンスの要素は、最初の64kbytes以内に現れなければなりません。HTMLページのレスポンスを生成し、 Content-Type application/xhtml+xml
を使用している場合は、許可されるコンテンツタイプをオーバーライドして、このコンテンツタイプとtext/html
の両方をエージェント構成ファイルに記載することができます。browser_monitoring.content_type = text/html application/xhtml+xmlbrowser_monitoring.content_type
が、スペースで区切られたコンテンツタイプのリストであることを確認してください。application/xhtml+xml
を自動計測の許容コンテンツタイプとして追加した場合、結果として得られるページはapplication/xhtml+xml
として正しく検証されなくなることに注意してください。ただし、ページはブラウザによって正しく読み込まれ、レンダリングされるはずです。その他のコンテンツの制限に関する問題を解決するには、 マニュアルインストルメント.
WSGI や Web フレームワークのミドルウェアや、レスポンスの圧縮を行う場合など、レスポンスの内容をエンコードするプラグインを使用している場合、自動インスツルメンテーションが機能しないことがあります。Python エージェントは、Django GZipMiddleware
と Flask-Compress
に対して、自動インスツルメンテーションの具体的なサポートを提供しています。しかし、現在のところ、 paste.gzipper
についてはサポートされていません。これは、ブラウザ監視機能を追加するエージェントのWSGIミドルウェアと組み合わせても使用できないバグを含んでいるからです。
この問題が発生した場合は、 manual instrumentation を使用するか、ウェブアプリケーション内で圧縮を行うのではなく、ウェブサーバーまたはフロントエンドプロキシを使用してレスポンスコンテンツを圧縮するように変更してください。後者の方法は、パフォーマンス面でもメリットがあります。
ページのソースを確認すると、ブラウザエージェントが条件ブロックの中に誤って挿入されています。
<!--[if IE]> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript">/*Browser agent here*/</script><![endif]-->
これは、Pythonエージェントがブラウザエージェントの配置を決定する際に、これらの条件付きブロックをチェックしないために起こります。この場合、 手動インストルメント の使用を検討してください。