PayUはどのようにモバイルSDKのプロアクティブエラー監視を行っているか -: - www.deekpay.com
コンテキスト
PayUはオンラインビジネス向けに決済ゲートウェイ・ソリューションを提供しており、50万以上の加盟店にサービスを提供し、150以上の決済手段をサポートしています。PayUは、すべての主要なeコマース企業やほとんどの航空会社を含むeコマース加盟店に選ばれている決済パートナーです。
PayUには、加盟店アプリケーションの決済機能において重要な役割を果たすモバイルSDKが多数あります。PayUの主な目標は、加盟店のPayUプラットフォームへの統合を可能な限りシンプルかつシームレスに、最小限の労力で実現することです。
以下では、PayUクラッシュレポーターSDKを構築し、早期修正戦略のために当社のすべてのSDK製品に統合した方法について説明します。
問題提起
PayUは公開リポジトリ(Maven CentralやCocoa Podsなど)を通じてSDKを配布し、企業はそれをアプリケーションに統合します。当社のコードベースでクラッシュが発生すると、クラッシュ情報は加盟店のクラッシュツールダッシュボードに記録され、後で当社に通知されます。リアルタイムでクラッシュを監視することはできません。加盟店のダッシュボードから必要なデバッグ情報を取得するのは必ずしも容易ではなかったため、デバッグには時間がかかりました。SDKのバージョン情報や対応するマッピングファイルが見つからないため、スタックトレースの解析に苦労することもありました。
探検
私たちは、市販されている複数の製品(Crashlytics、ACRA、BugSnagなど)を使ってこの問題を解決しようとしましたが、どれもプラグアンドプレイではありませんでした。
問題を解決できない理由はここにある:
これらのソリューションはすべて、アプリケーション・レベルで一意のIDを設定する必要があるため、1つのアプリケーションで複数のソリューションを同時に使用することは技術的に不可能です。これらの製品はライブラリ・モジュールをサポートしておらず、アプリケーション・レベルでのプロジェクト使用に限定されています。
私たちは、上記の問題を解決するオープンソースのソリューション、Sentryを見つけました。 SentryにはSDK製品があり、SDKのクラッシュを監視するという私たちの主な目標を満たしてくれますが、いくつかの課題もあります:
かさばる:Sentry SDKのサイズは約1000KBで、ヘルスモニタリングやNDKのクラッシュレポートなど、私たちが興味のない多くの機能を提供しているためだ。
データ・コントロール:Sentry SDKは、我々にとって重要でない多くのデータ・ポイントをキャプチャするため、データをより厳密にコントロールしたかった。そのため、ペイロードのサイズも大きくなってしまいました。
最終アプローチ
PayU Crash Reporter SDKは、スタックトレースを解析するグローバル例外ハンドラを登録し、PayU SDK内で発生したクラッシュのみを報告します。頻度の高いイベントは、スプリントサイクルに組み込まれるか、ホットフィックスとして解決され、より安定したSDKが作成されます。
PayUクラッシュレポーターSDKフロー
PayUクラッシュレポーターSDKダッシュボード
サイズ:約40KBで、Sentry SDKの25分の1です。不要な機能をすべて削除することで、サイズを小さくしました。
データコントロール:ライブラリバージョン、トランザクションID、加盟店アプリケーションの全モジュールの詳細、スタックトレースなど、デバッグを簡素化するために必要なフィールドのみをレポートします。
安定性:PayUクラッシュレポーターはすべてKotlinで書かれており、ネットワークコールを軽減し、安定性を向上させるために最新のプラクティス(コプロセシングなど)を使用しています。
拡張性:PayU Crash Reporter SDKは、クラッシュ監視のために当社のすべてのSDK製品で使用できるように設計されています。
強くなる
PayUクラッシュレポーターSDKがすべてのSDKに統合されたことで、150以上の加盟店にスムーズで安定したエクスペリエンスを提供できるようになりました。
最近の例では、数百万人のデイリーアクティブユーザーを持つトップEコマース企業の1社が、デバイスのメモリが少ないときに当社のSDKがクラッシュし、カスタマーエクスペリエンスが低下していました。私たちは、PayU Crash Reporter SDKを使用して、アプリの初期リリース段階でこの問題を発見し、修正しました。
これに加えて、実行時にPayU Crash Reporter SDKによって観測された頻繁なクラッシュ(例:処理されない例外、数値フォーマット例外、不正なパラメータ例外、NULLポインタ例外など)は、対応するSDKの後続バージョンで直ちに修正されました。
スタートアップに必要なものすべて
AndroidとiOSの両方で、シームレスな決済体験のためにPayUが提供する様々な決済SDKをチェックすることができます。
統合に関するサポートについては、キーアカウントマネージャーにお問い合わせいただくか、[email protected] まで電子メールをお送りください。
