Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New Relic で始めるアプリプラットフォームのオブザーバビリティ

Avatar for Nao-RandD Nao-RandD
July 25, 2025
21

New Relic で始めるアプリプラットフォームのオブザーバビリティ

こちらのイベントで登壇した資料になります
https://yappli.connpass.com/event/359014/

# 発表内容
近年、オブザーバビリティという概念が広く注目されており、モバイルアプリケーションの領域においても、その重要性が高まってきています。

ヤプリではNew Relicを導入し、モバイルアプリのオブザーバビリティ基盤を構築しています。本発表では、その導入背景からCI/CDとの連携、そして実際の運用体制についてご紹介します。本発表が、モバイルにおけるオブザーバビリティについて皆様と一緒に考えるきっかけとなれば幸いです。

#YapTechPlayground

Avatar for Nao-RandD

Nao-RandD

July 25, 2025
Tweet

Transcript

  1. 可観測性のこと(Observe + Ability = 観測する能⼒) • 監視とは異なることに注意 ◦ 監視は「何が起きたかを⾒続けること」 ◦

    対象としきい値を設定しておき、超えたところで アラートとして通知する仕組みは「結果」しか得られない オブザーバビリティとは? オブザーバビリティ‧エンジニアリング: https://www.oreilly.co.jp/books/9784814400126/
  2. 可観測性のこと(Observe + Ability = 観測する能⼒) • 監視とは異なることに注意 ◦ 監視は「何が起きたかを⾒続けること」 ◦

    対象としきい値を設定しておき、超えたところで アラートとして通知する仕組みは「結果」しか得られない • 何らかの異常発⽣時に 通知だけでなくどこで‧なぜ 起こったのか把握する能⼒ ‧仕組み オブザーバビリティとは? オブザーバビリティ‧エンジニアリング: https://www.oreilly.co.jp/books/9784814400126/
  3. ヤプリで実現したいオブザーバビリティ 導⼊する選択肢としては2つ Firebase Crashlytics + Firebase Performance ◦ アプリごとにプロジェクト管理が必要になる ◦

    Big Queryに出⼒することで全体の分析が可能になる New Relic New Relic 導⼊までの流れ Export Firebase Crashlytics data to BigQuery: https://firebase.google.com/docs/crashlytics/bigquery-export
  4. ヤプリで実現したいオブザーバビリティ 導⼊する選択肢としては2つ Firebase Crashlytics + Firebase Performance New Relic ◦

    ひとつの管理画⾯で全体の観測とアプリ単位の情報を取得できる ◦ ユースケースに応じてダッシュボードの雛形が存在する ◦ 他チームで採⽤されておりベンダーとの関係値が築けている New Relic 導⼊までの流れ
  5. SDKの組み込み New Relic 導⼊までの流れ 初期化: • トークンを渡して start メソッドを呼ぶだけで計測が⾏える import

    NewRelic // トークンを渡して計測開始 NewRelic.start(withApplicationToken: "[New Relic Token]") newrelic-document: https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-ios/ios-sdk-api/ios-sdk-api-guide/
  6. SDKの組み込み New Relic 導⼊までの流れ import NewRelic NewRelic.start(withApplicationToken: "[New Relic Token]")

    New Relic モバイル: グループクラッシュタブ: https://docs.newrelic.com/jp/docs/errors-inbox/mobile-tab/ 初期化: • トークンを渡して start メソッドを呼ぶだけで計測が⾏える
  7. SDKの組み込み カスタム属性をセット: • デフォルトの属性(OSバージョンやアプリバージョンなど) 以外に計測で必要なカスタム属性を追加できる New Relic 導⼊までの流れ // アプリを識別する情報をセット

    NewRelic.setAttribute( "SKU", value: "XXXXXXXXX" // アプリの識別子 ) Create a custom attribute: https://docs.newrelic.com/jp/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/create-attribute/#ios
  8. パンくずリストによる⾏動分析: • ユーザーがどういった⾏動をしたかを計測できる SDKの組み込み // 処理A NewRelic.recordBreadcrumb( "処理A", // パンくずに記録する名称

    attributes: attributes // 必要な属性追加 ) ・・・ // 処理B NewRelic.recordBreadcrumb( "処理B", // パンくずに記録する名称 attributes: attributes // 必要な属性追加 ) ・・・ // ここでクラッシュ 💥 (処理 A→ 処理B を踏んでクラッシュしたことがわかる ) New Relic 導⼊までの流れ
  9. 現在の運⽤体制 以下を元に体制を整備している 1. Slack でのクラッシュ通知 ◦ 2種類の通知 i. 1時間で発⽣したクラッシュの通知 ii.

    24時間以内で発⽣件数が200件以上のクラッシュの通知 運⽤の「 これまで 」と「 これから 」
  10. 現在の運⽤体制 以下を元に体制を整備している 1. Slack でのクラッシュ通知 2. 未対応のクラッシュをチケット化 運⽤の「 これまで 」と「

    これから 」 ✅ 定点観測: • 異常事態を早めに検知して対応できる • 問い合わせで初めて問題に気づく状態をなくす ✅ チケット管理 • 緊急度に応じてメンバーにアサインして進められる
  11. まとめ 本⽇お話ししたこと • オブザーバビリティの導⼊背景: ◦ どのような効果や要件を求めて導⼊したか • New Relic SDK

    の組み込み‧考慮点: ◦ 実装に組み込んだ機能や、ビルド基盤で必要だった考慮点について • 運⽤体制の「これまで」と「これから」: ◦ 現在の運⽤体制と、今後の⽬標について New Relic で始めるアプリプラットフォームのオブザーバビリティ
  12. まとめ 本⽇お話ししたこと • オブザーバビリティの導⼊背景 • New Relic SDK の組み込み‧考慮点 •

    運⽤体制の「これまで」と「これから」 New Relic で始めるアプリプラットフォームのオブザーバビリティ 💡 ポイント オブザーバビリティはすぐに課題解決できる銀の弾丸ではないが、 より良いサービスにつなげる基盤となるもの