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

Azure Function Operation Monitoring

Azure Function Operation Monitoring

Azure Functionの運用監視についてやったことをご紹介
2019/06/29 Interact 2019
https://interact.connpass.com/event/91059/

hamamotsu

June 29, 2019
Tweet

Other Decks in Technology

Transcript

  1. 自己紹介 濱本 一慶(はまもと かずのり) @airish9 (修羅イバー) ▪ シグマコンサルティング株式会社所属 ▪ C#

    >> python >> php >> VB.NET ▪ Backend > Frontend ▪ 元福岡県民 ▪ うどん >>>> 超えられない壁 >>>> ラーメン ▪ 週末はモータースポーツおじさん ▪ ラブライブ! 東條希 推し
  2. 運用と監視 ▪ ポジティブな監視 ▪ アプリケーションが正常に動いているか ▪ リクエスト数やユーザー数を把握できるか ▪ ネガティブな監視 ▪

    想定外の動作をしていないか ▪ どこで問題が発生しているか ▪ どんな問題が発生しているか ▪ 不正なアクセス等を受けていないか
  3. Azure Functionの監視 ____ / \ / ─ ─\ / (•)

    (•) \ | (__人__) | / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | \ /___ / FaaSの監視…?
  4. Azure Functionの監視 ▪ 基本的にWeb Appsと同じ ▪ FaaS(Function as a Service)

    ▪ Serverは管理しなくても良いけど存在する ▪ 存在するからには監視する ▪ Hostも死ぬ時には死ぬ
  5. Azure Functionの監視 ____ / \ / ─ ─\ / (•)

    (•) \ | (__人__) | / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | \ /___ / 監視サービス使う?
  6. Application Insights ▪ 要求レート、応答時間、およびエラー率 ▪ 依存率、応答時間、およびエラー率 ▪ 例外 ▪ ページ

    ビュー ▪ 読み込みのパフォーマンス ▪ AJAX calls ▪ ユーザー数とセッション数 ▪ パフォーマンス カウンター ▪ ホスト診断 ▪ トレース ログ ▪ カスタム イベントとメトリック Application Insightsで監視できる項目
  7. Let’s Monitoring ∩_ 〈〈〈 ヽ ____ 〈⊃ } /⌒ ⌒\

    | | /( •) (•)\ ! ! / :::::⌒(__人__)⌒:::::\| l | |r┬-| | / \ ` ー'´ // / __ / (___) / 監視作れそう
  8. ログアラートの固有ペイロード { "schemaId": "Microsoft.Insights/LogAlert", "data": { "SearchResult": { "tables": [

    { "name": "PrimaryResult", "columns": [ ], "rows": [ [ "2019-06-28T16:03:13.9668869Z", "Executed 'Functions.Echo' (Failed, Id=ec585d9c-1620-4f5d-9019-7d07893bb6c4)", 3, <<中略>> ] ] } ], "dataSources": [ ] }, "AlertType": "Number of results" } } Application Insightsで検索した内容が」 rows配列に含まれる
  9. 共通ペイロード(抜粋) { "schemaId": "azureMonitorCommonAlertSchema", "data": { "essentials": { }, "alertContext":

    { "SearchResults": { "tables": [ { "name": "PrimaryResult", "columns": [ ], "rows": [ [ "2019-06-28T16:03:13.9668869Z", "Executed 'Functions.Echo' (Failed, Id=ec585d9c-1620-4f5d-9019-7d07893bb6c4)", 3, "trace" ] ] } ] } } } } Application Insightsで検索した内容が alertContextは以下のrows配列に含まれる
  10. Slackの内容にApplication Insightsの内容を含める "queries": { "channel": "hogehoge", "text": "Alertが発生しました。¥nMessage : @{items('row-for')[1]}"

    } "rows": [ [ "2019-06-28T16:03:13.9668869Z", "Executed 'Functions.Echo' (Failed, Id=ec585d9c-1620-4f5d-9019-7d07893bb6c4)", 3, "trace" ] ] rowsのインデックスと対応する Channel IDを指定する(Private Channelでも可)