Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

New Relic University at Future Stack Tokyo 2019

165 visualizaciones

Publicado el

New Relicのエキスパート・インストラクターが、New Relic プラットフォームの詳細を説明しながら、実践的なハンズオントレーニングを実施します。

対象:
既にNew Relic をお使いの方はもちろん、これから使ってみようかとご検討中の方にもオススメ。
実践的な観点からNew Relicのベストプラクティスを伝授いたします。

アジェンダ:
・アプリケーションパフォーマンス管理再考 ー 何をどう確認すれば良いのか?
・New Relic Insights 集中講座 ー 集めたデータをどう分析・活用すべきか?
・New Relic Alerts 集中講座 ーリスク最小化のためのアラート実践術!

担当講師:
New Relic 株式会社
シニア ソリューション コンサルタント
日吉 潤一郎
経歴:大手SIerでのシステムエンジニア、グローバルなソフトウェアハウスでの開発者を経て、2000年よりアプリケーションパフォー マンスのプロフェッショナルとして活躍。APM分野では17年のキャリアを持ち、日本における第一人者。

Publicado en: Educación
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

New Relic University at Future Stack Tokyo 2019

  1. 1. ©2008–18 New Relic, Inc. All rights reserved
  2. 2. ©2008–18 New Relic, Inc. All rights reserved シニアソリューションコンサルタント • New Relic 株式会社 ⽇吉潤⼀郎
  3. 3. Confidential ©2008–17 New Relic, Inc. All rights reserved 3 本⽇のトレーニングの趣旨1 各製品で 共通に使える 機能
  4. 4. Confidential ©2008–17 New Relic, Inc. All rights reserved 4 本⽇のトレーニングの趣旨2 機能が豊富なことは わかったが使いこなせる かどうか... XX(システム監視ツール名)と 何が違うんですか? New Relic の DNAである ”Data Nerd (データおたく)”の精神をご理解頂きたい
  5. 5. Confidential ©2008–17 New Relic, Inc. All rights reserved 5 1. アプリケーションパフォーマンス管理再考 (35分) • New Relic データ収集の仕組み • アプリケーションのパフォーマンスメトリック • どう対応すべきか(個別対応と全体最適) • デモ 2. New Relic Insights 集中講座 - 集めたデータをどう分析・活⽤すべきか? (70分) • Lab : ダッシュボードを作成する • イベントとNRQL • Lab : NRQL をひたすら書いてみる • (10分間の休憩) • カスタム属性とカスタムイベント 3. New Relic Alerts 集中講座 - リスク最⼩化のためのアラート実践術!( 40分) • New Relic Alerts の基本構成 • 3つの閾値の使い分け • デモ • ダイナミックな環境におけるアラート • Lab : アラートコンディションを定義する 本⽇のトレーニング 主なメニュー
  6. 6. ©2008–18 New Relic, Inc. All rights reserved アプリケーションパフォーマンス管理再考 − 何をどう確認すれば良いのか? ( 9:35 ‒ 10:10 ) 6
  7. 7. ホスト(OS) アプリケーション監視が特別である理由 アプリケーション (サービス) 外部サービス データベース ⼊⼒ 出⼒ 他プロセス 他プロセス 他プロセス 1. 影響を受ける要素が多い • データ、多スレッド(他サービス⼲渉)、外部接続、他プロセス 商品販売 利⽤料徴収 予約 広告 ビジネス カスタマケア 2. ただ動いているだけでは⼗分ではない • マネタイズしているか(↑)、クラウド等のリソース利⽤コスト(↓)
  8. 8. サーバ(OS) New Relic データ収集の仕組み(アプリケーション) アプリケーション 外部サービス データベース APM エージェント トランザクション(リクエスト窓⼝) の⾃動検出とパフォーマンス計測 外部プロセスとの通信の ⾃動検出とパフォーマンス計測
  9. 9. ホスト(OS) New Relic データ収集の仕組み(ホストOS) アプリケーション 外部サービス データベース InfraエージェントOS および各プロセスの パフォーマンス計測
  10. 10. ホスト(OS) ホスト(OS) New Relic データ収集の仕組み(データベース等) アプリケーション 外部サービス データベース Infraエージェント パフォーマンスメトリック 収集⽤インターフェース 収集
  11. 11. ホスト(OS) New Relic データ収集の仕組み(webフロントエンド) アプリケーション 外部サービス データベース APM エージェント HTTPレスポンスに Browserエージェント(JS)を ⾃動付加 Webページ(HTML) Browser エージェント
  12. 12. アプリケーションのパフォーマンスメトリック アプリケーションに送信された全てのリクエストについて集計します レスポンスタイム 処理時間 スループット リクエスト数 / 分 Apdex スコア ユーザーの満⾜度 を⽰す業界標準スコア エラー率 全リクエスト中の エラーリクエストの割合
  13. 13. Confidential ©2008–17 New Relic, Inc. All rights reserved さて、どこから始めていけば良いのやら?? 平均応答時間も悪くないし 実際画⾯叩いても速いし 遅延してる所は 分かったし 毎分の数千件の処理を 1つの値で判断して⼗分? もしかして 速いと感じてるのは ⾃分だけ? このコード変更の 効果はどれだけあるの?
  14. 14. Confidential ©2008–17 New Relic, Inc. All rights reserved 14 ラーメン屋のパフォーマンスメトリック 皆さんがラーメン屋の主⼈なら何を確認しますか? 顧客 満⾜度 注⽂ 間違い 件数 回転率 出来上がり 時間 売上額
  15. 15. Confidential ©2008–17 New Relic, Inc. All rights reserved 15 ラーメン屋の店主としてやるべきと思われること 1. ビジネス⽬標(売上額)を達成したか確認 ü Yesなら、新たな⽬標設定のために ü Noなら、原因確認と改善のために 2. 全体のパフォーマンスを確認 3. 個別のトラブルシューティング or 全体の最適化
  16. 16. Confidential ©2008–17 New Relic, Inc. All rights reserved 16 1. ビジネス⽬標を達成したかどうか確認 Insightsでビジネス⽬標と現在値をダッシュボード化 次のセクションでお話しします
  17. 17. Confidential ©2008–17 New Relic, Inc. All rights reserved 17 2. 全体のパフォーマンスを確認 ヒストグラム: データの分布区分毎の件数(例:1秒台=10件、2秒台=20件、、、) 異常なのか? 通常なのか?
  18. 18. Confidential ©2008–17 New Relic, Inc. All rights reserved 18 2. 全体のパフォーマンスを確認 パーセンタイル: データを⼩さい順に並べた時の、全体の割合とその値を時系列で確認 極端に遅い処理が、 同じタイミングで 発⽣している?
  19. 19. Confidential ©2008–17 New Relic, Inc. All rights reserved 19 2. 全体のパフォーマンスを確認 Apdex スコア: ユーザー全体の満⾜度を0(全て不満)から1(全て満⾜)で表す Apdex の算出⽅法 1. 閾値 (Apdex T) を決定し、要素を3つに分類 • 満⾜:T 未満 • やや満⾜:T 以上、4 T 未満 • 不満:4T 以上 2. Apdex計算式 (満⾜の件数)+(やや満⾜の件数の半分) (総 数) 3. 評価(Apdex閾値との⽐較) 詳細は、apdex.org をご参照ください T 4T T 4T T 4T Apdex=1 Excellent Apdex=0.5 Poor Apdex=0 Unacceptable
  20. 20. Confidential ©2008–17 New Relic, Inc. All rights reserved 3. 個別のトラブルシューティング or 全体の最適化 個別のトラブル シューティング 全体の最適化 (全体を下げたい)
  21. 21. Confidential ©2008–17 New Relic, Inc. All rights reserved 3. 個別のトラブルシューティング or 全体の最適化 消費時間が 多いもの 処理時間が 遅いもの 全体の 処理詳細 サマリ 個別の 処理詳細
  22. 22. Confidential ©2008–17 New Relic, Inc. All rights reserved 22 デ モ
  23. 23. Confidential ©2008–17 New Relic, Inc. All rights reserved アプリケーションパフォーマンス管理で重要なこと 前提:トランザクションがどんな処理なのかを理解すること key transaction を考慮してみることをお勧めします 1. ビジネス⽬標を意識すること (その⽅法は、Insightsのところでお話しします) 2. トランザクション全体のパフォーマンスを意識すること • トランザクションの分布(ヒストグラム、パーセンタイル、Apdex) • 全体における実⾏時間の割合 (time consuming) 3. 個別事象の対応なのか、全体の最適化なのかを意識すること • 個別の事象の確認(トランザクショントレース、エラーアナリシス) • 全体の最適化(ブレークダウンテーブル、エラーアナリシス) • 部分の最適化 • 共通処理の最適化(ログ取得処理など)
  24. 24. ©2008–18 New Relic, Inc. All rights reserved New Relic Insights 集中講座 - 集めたデータをどう分析・活⽤すべきか? (10:10 – 11:20) 24
  25. 25. Confidential ©2008–17 New Relic, Inc. All rights reserved 25 Insights を利⽤する⽬的 • データを分析する • ダッシュボードを作成する • 各製品のPROライセンスをお持ちのアカウントでは、 Insights を 以下の期間分のデータに対して無償利⽤ できます • NR APM & Browser Pro – 8 ⽇間 • NR Infrastructure & Synthetics – 13 ヶ⽉ • NR Mobile – Mobile events – 8 ⽇間, Crash and error events – 90 ⽇間
  26. 26. Confidential ©2008–17 New Relic, Inc. All rights reserved 26 もっとも簡単なダッシュボードを作成⽅法 ü 既存のチャートを貼り付ける 各チャートの 右下辺りに マウスを置くと メニューが 現れます
  27. 27. Confidential ©2008–17 New Relic, Inc. All rights reserved 27 Lab: ダッシュボードを作成する (10分) 1. APMのアプリケーション”New Relic Pet Clinic”に⼊って、任意のチャートの右下のメニューボタンをクリック 2. ”Add to an Insights dashboard”を選択 3. "Copy to a new dashboard"を選択 4. お好きなチャート名を⼊⼒ 5. ダッシュボード名は、fstokyo<ご⾃⾝が認識できるユニークな⽂字列> を⼊⼒(以後同じものを使います) 6. "Copy"をクリック 7. 画⾯上部のタブ ”Insights” をクリックします 8. 画⾯左ペインの"All dashboards"をクリック 9. 画⾯上部のサーチボックスに ⾃⾝のダッシュボードを名を⼊⼒ 10. ⾃⾝のダッシュボードに コピーしたチャートが表⽰されているか 確認してください 11. 画⾯左上の"Edit"ボタンをクリックしてダッシュボードを⾃由に 編集したり、表⽰時間を変えたりしてみてください
  28. 28. Confidential ©2008–17 New Relic, Inc. All rights reserved 28 イベントとNRQL (New Relic Query Language) ü エージェントは対象上で発⽣した各種”イベント”を検出し、様々な”アトリ ビュート(属性)”と⼀緒に Insights のデータベースにストアします ü Insights では、それらイベントを NRQL を使って分析することができます ü APM ü Transaction ü Transaction Error ü Infrastructure ü SystemSample ü ProcessSample ü StorageSample ü NetworkSample ü InfrastructureEvent ü Browser ü PageAction ü BrowserInteraction ü PageView ü JavaScriptError ü AjaxRequest ü BrowserTiming ü Mobile ü その他 Insights DB
  29. 29. Confidential ©2008–17 New Relic, Inc. All rights reserved 29 Transactionイベントに収集されるデータ 下線付きは デフォルト属性 下線なしは カスタム属性 (ユーザー定義)
  30. 30. Confidential ©2008–17 New Relic, Inc. All rights reserved Data Explorer • (クエリを書かないで)プルダウンから属性を選択することでチャートを作成 <デモで説明します>
  31. 31. Confidential ©2008–17 New Relic, Inc. All rights reserved 31 NRQL 構⽂ SELECT function(attribute) [AS 'label'][, ...] FROM event [WHERE attribute [comparison] [AND|OR ...]][AS 'label'][, ...] [FACET attribute | function(attribute)] [LIMIT number] [SINCE time] [UNTIL time] [WITH TIMEZONE timezone] [COMPARE WITH time] [TIMESERIES time] ※ [オプション]
  32. 32. Confidential ©2008–17 New Relic, Inc. All rights reserved 32 SELECT FROM SINCE 該当するイベント(の属性)をリストします 1. SELECT * FROM Transaction SINCE 30 minutes ago 2. FROM Transaction SELECT appName, name, host, duration SINCE 30 minutes ago "Add to a dashboard"をクリックし、ご⾃⾝のダッシュボードに 追加してください
  33. 33. Confidential ©2008–17 New Relic, Inc. All rights reserved 33 SELECT function() FROM 1. FROM Transaction SELECT uniques(appName) 2. SELECT count(*) FROM Transaction 3. SELECT average(duration) as '平均応答時間' FROM Transaction 4. SELECT min(duration), percentile(duration, 50), average(duration), max(duration) FROM Transaction
  34. 34. Confidential ©2008–17 New Relic, Inc. All rights reserved 34 SELECT function() FROM 4. SELECT apdex(duration, 0.5) * 100 FROM Transaction • 算術演算⼦( 和 +, 差 -, 商 /, 積 *) 5. SELECT average(duration) FROM Transaction COMPARE WITH 1 hour ago 6. SELECT average(duration) FROM Transaction COMPARE WITH 1 hour ago TIMESERIES
  35. 35. Confidential ©2008–17 New Relic, Inc. All rights reserved 35 SELECT FROM WHERE 1. SELECT uniquecount(session) FROM PageView WHERE appName='New Relic Pet Clinic' 2. SELECT uniquecount(session) FROM PageView WHERE appName='New Relic Pet Clinic' AND pageUrl LIKE '%/petclinic/owners/%' 3. SELECT uniquecount(session) FROM PageView WHERE appName='New Relic Pet Clinic' AND pageUrl LIKE '%/petclinic/owners/%' FACET city
  36. 36. Confidential ©2008–17 New Relic, Inc. All rights reserved 36 SELECT filter(function() ,WHERE) FROM 1. FROM PageView SELECT filter( average(duration), WHERE appName='FoodMe'), filter( average(duration), WHERE appName= 'New Relic Pet Clinic') TIMESERIES
  37. 37. Confidential ©2008–17 New Relic, Inc. All rights reserved 37 SELECT histogram() FROM 1. SELECT histogram(duration, 8, 16) FROM PageView 2. SELECT histogram(duration, 8, 16) FROM PageView FACET pageUrl
  38. 38. Confidential ©2008–17 New Relic, Inc. All rights reserved 38 SELECT funnel() FROM 1. FROM PageView SELECT funnel( session, WHERE name='controller/storefront/home_page', WHERE name='controller/storefront/click_item', WHERE name='controller/storefront/add_to_cart', WHERE name='controller/storefront/check_out', WHERE name='controller/storefront/pay')
  39. 39. 10分間の休憩 New Relicを使えば、誰がサイトを使⽤しているのか、どのような体験が得られて いるのかを知ることができます。これは本当に⽬を⾒張るべきことです ‒ Keith Patterson IT Operations Manager, COSTA coffee
  40. 40. Confidential ©2008–17 New Relic, Inc. All rights reserved 40 ビジネス⽬標をどう取り込んだらよいのか? カスタム属性やカスタムイベントを利⽤する 顧客 満⾜度 注⽂ 間違い 件数 回転率 出来上がり 時間 売上額
  41. 41. Confidential ©2008–17 New Relic, Inc. All rights reserved 41 custom attributes(属性) • ビジネスのパフォーマンスを測定したい →エージェントはデフォルトで取得しません →エージェントにアプリケーションのソース上の任意の データをカスタム属性として取得させて⾃分のアカウン トに送信させ、ダッシュボード上で利⽤ • カスタム属性の追加 • 各種エージェントAPIを使ってソース上の任意の データを取得し、イベントのカスタム属性として Insightsに送信 • 例えばAPMエージェントの場合は、追加したコー ドが含まれるトランザクションのイベント (Transaction) として送信される
  42. 42. Confidential ©2008–17 New Relic, Inc. All rights reserved 42 custom events • ユーザー定義のイベントタイプを作り、イベントをストア したい → カスタムイベントを⾃分のアカウントに送信する • エージェントAPI で • REST API でInsightsに任意のデータをJSONで送信 • 注意!! Insights のオプション料⾦が発⽣します • 実践例: CloudWatch Logs をカスタムイベントでInsightsに取り込む ( https://qiita.com/harryh )
  43. 43. Confidential ©2008–17 New Relic, Inc. All rights reserved Dashboard でのフィルタリング有効化 • ダッシュボード上にフィルタリング⽤のコントロールを追加します <デモで説明します>
  44. 44. Confidential ©2008–17 New Relic, Inc. All rights reserved Data App • (クエリを書かないで)プルダウンから属性を選択することでチャートを作成 <デモで説明します>
  45. 45. ©2008–18 New Relic, Inc. All rights reserved New Relic Alerts 集中講座 -リスク最⼩化のためのアラート実践術! ( 11:20 – 12:00 ) 45
  46. 46. Confidential ©2008–17 New Relic, Inc. All rights reserved 46 New Relic Alerts 基本構成 condition notification (通知) チャネル entity (対象) threshold (閾値) Runbook URL incident preference (発⾏のタイミング) incidents notifications New Relic Alerts のキーコンセプト ● アラートポリシー 1. インシデントプリファレンス: インシデントを作成するタイミング 2. コンディション ● エンティティ :モニタ対象 ● threshold (閾値) ● Runbook URL 3. Notification (通知)チャネル ● violation( 違反)ではなく incidentを通知 Alert Policy
  47. 47. Confidential ©2008–17 New Relic, Inc. All rights reserved 47 通知が⾏われるタイミング • コンディション違反毎ではなく、インシデント毎に通知 • インシデントプリファレンス:インシデントの粒度の設定
  48. 48. Confidential ©2008–17 New Relic, Inc. All rights reserved 48 インシデント プリファレンス インシデントの粒度:細かい インシデントの件数:多い
  49. 49. Confidential ©2008–17 New Relic, Inc. All rights reserved 49 インシデントの例
  50. 50. Confidential ©2008–17 New Relic, Inc. All rights reserved 50 通知チャネル
  51. 51. Confidential ©2008–17 New Relic, Inc. All rights reserved 51 インシデントライフサイクル • インシデントをwebhook経由でInsights(カスタムイベント)に送 り、インシデントの傾向を分析する • ブログポスト ”Sending Alerts Data to Insights”をご参考ください ( https://blog.newrelic.com/product-news/sending-alerts-data-to-insights/ )
  52. 52. Confidential ©2008–17 New Relic, Inc. All rights reserved 52 3種類の閾値で、異常を検出する 閾値 適応対象 例 固定値 ほぼ⼀定、あるいは線形で変化 上限下限があるもの ディスク使⽤率 メモリ使⽤率 ベースライン 常に値が変動するもの、⾮線形 曜⽇や時間によって傾向が変わるもの CPU使⽤率 応答時間 外れ値 ( outlier ) 上記 かつ 対象が複数ある 複数のCPU使⽤率 複数の応答時間
  53. 53. Confidential ©2008–17 New Relic, Inc. All rights reserved 53 固定値
  54. 54. Confidential ©2008–17 New Relic, Inc. All rights reserved 54 ベースライン
  55. 55. Confidential ©2008–17 New Relic, Inc. All rights reserved 55 外れ値 (Outlier)
  56. 56. Confidential ©2008–17 New Relic, Inc. All rights reserved 56 デ モ
  57. 57. Confidential ©2008–17 New Relic, Inc. All rights reserved 57 ダイナミックな環境のためのアラート(1) • ラベルによるエンティティ指定 • 共通の属性を持つものに共通のアラートを適応
  58. 58. Confidential ©2008–17 New Relic, Inc. All rights reserved 58 ダイナミックな環境のためのアラート(2) • REST APIでアラート設定を⾃動化 • Puppet, Chef, Ansible の利⽤ • New Relic API Explorer https://rpm.newrelic.com/api/explore/
  59. 59. Confidential ©2008–17 New Relic, Inc. All rights reserved 59 Lab: ダッシュボードを作成する (10分) 1. ”Alerts” ‒ "Alert policies" - "+ New alert policy" を クリック 2. "Alert policy name" に ”fs[任意の名前]” を⼊⼒し、 画⾯最下部の”Create alert policy”をクリック 3. "NRQL" を選択し、"Next, define thresholds"をク リック 4. 本⽇学習した任意のNRQLを記⼊してください 5. "Threshold Type" の、それぞれを選択しそれぞれの 閾値を設定して、閾値とアラートの関係を⽬視 ※ Outlierの場合は、NRQL に FACET句が必要です
  60. 60. ©2008–18 New Relic, Inc. All rights reserved 最後に:こちらもご参考ください 60
  61. 61. Confidential ©2008–17 New Relic, Inc. All rights reserved 61 learn.newrelic.com
  62. 62. Confidential ©2008–17 New Relic, Inc. All rights reserved 62 docs.newrelic.co.jp
  63. 63. ©2008–18 New Relic, Inc. All rights reserved AFTERNOON AGENDA 13:00 - 14:00 基調講演: The Platform for Modern Times Lew Cirne, CEO and Founder, New Relic 14:00 - 14:30 インサイトとデータを組織の⼒にする 14:30 ‒ 15:00 ZOZOタウンのシステムリプレースメントにおけるNew Relic活⽤術! 15:30 ‒ 16:00 モニタリングと可視化がデジタルトランスフォーメーションを救う! 16:00 ‒ 16:30 全世界400万⼈が利⽤する家族アルバム「みてね」を⽀えるNew Relic 16:30 ‒ 17:00 New Relicを活⽤したAWSへのアプリケーション移⾏ 17:00 ‒ 17:30 年間9300万件以上のサロン予約を⽀えるホットペッパービューティ。 サービスの状態可視化から改善施策に結びつけるNew Relic活⽤術
  64. 64. ©2008–18 New Relic, Inc. All rights reserved SPECIAL CLOSING SPEAKER E-SPORTS AFTER PARTY システム開発に驚きと喜びの連鎖を クレディセゾン CTO テクノロジーセンター⻑ ⼩野 和俊 ⽒
  65. 65. Confidential ©2008–17 New Relic, Inc. All rights reserved 65 ご質問等は jhiyoshi@newrelic.com までお願いします

×