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

イベント処理について知りたかった5つのこと

 イベント処理について知りたかった5つのこと

イベント処理について知りたかった5つのこと
#ServiceNowアドカレ LT大会

カレンダー記事
https://qiita.com/daifuku085/items/6e3590d17174f817f381

ServiceNow Japan Meetup

January 08, 2025
Tweet

More Decks by ServiceNow Japan Meetup

Other Decks in Technology

Transcript

  1. © NTT Communications Corporation All Rights Reserved. イベント処理について知りたかった5つのこと 2024 年

    12 月 11 日 NTTコム エンジニアリング株式会社 菊池 裕 (@daifuku085)
  2. © NTT Communications Corporation All Rights Reserved. 2 こんな経験ありませんか メ

    ー ル 送 っ た の に ま だ 起 票 さ れ な い ん で す が メ ー ル の 送 信 遅 れ て な い ? N o w S u p p o r t に 確 認 中 で す 根 本 原 因 と 再 発 防 止 策 を
  3. © NTT Communications Corporation All Rights Reserved. 3 おことわり •

    本資料ではServiceNowのシステムイベントについて説明しています。 ITOMの文脈における「イベント」の話題ではないためご留意ください。 • 製品ドキュメント、Communityの情報や動作検証結果を基に憶測を交えて記載しています。 指摘事項があればぜひ元記事へコメントをお願いします。 • 対象バージョンは Washington D.C.です。 ※Xanaduでは一部仕様が異なる部分があります。 https://qiita.com/daifuku085/items/6e3590d17174f817f381
  4. © NTT Communications Corporation All Rights Reserved. 4 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  5. © NTT Communications Corporation All Rights Reserved. 5 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  6. © NTT Communications Corporation All Rights Reserved. 6 イベントはキューに格納される 負荷軽減のため、イベントは一旦キューに格納されてから順に実行される

    用途ごとに用意されたキューもあるが、特に指定のない場合はデフォルトキューが使用される メールの受信 gs.eventQueue(“event_name”, …);※ プラグインの有効化 イベントへの応答 フローの実行 テキストインデックス作成 イベントキュー イベントの生成 メールの送信 text_index キュー flow_engine キュー デフォルトキュー ・ ・ ・ ※引数で指定しない場合
  7. © NTT Communications Corporation All Rights Reserved. 7 gs.eventQueue() の第五引数

    gs.eventQueue() メソッドは、第五引数でキューを指定することができる デフォルトキューの滞留を引き起こす場合、カスタムキューを作成※し、そちらで処理させることが可能 キューを指定する例(OOTBの「Attachment events」ビジネスルール) ※ServiceNow製品ドキュメント『カスタムキューを使用してイベントを処理する』
  8. © NTT Communications Corporation All Rights Reserved. 8 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  9. © NTT Communications Corporation All Rights Reserved. 9 イベント処理の同時実行数=アクティブなノードの数に一致(注:デフォルトキューの場合) •

    イベント委任者(Delegator):準備完了(ready)状態のイベントをプロセッサーに割り当てる • イベントプロセッサー(Processor):割り当てられたイベントをキューから取り出し、処理する ノード #2 ノード #1 イベント処理の同時実行数 ノード #3 ノード #4 (例)合計4ノード(Failover 構成)の場合 イベント委任者 イベントプロセッサー イベントプロセッサー イベント
  10. © NTT Communications Corporation All Rights Reserved. 10 イベント委任者/プロセッサーはスケジュール済みジョブ スケジュール

    [sys_trigger] テーブルで名前が “events process” で始まるレコードを検索 • イベント委任者:親フィールドが(空) • イベントプロセッサー:親フィールドがイベント委任者 イベント委任者 イベントプロセッサー ある日を境に遅くなったと感じたら、イベントプロセッサーが消えていないか確認しましょう!
  11. © NTT Communications Corporation All Rights Reserved. 12 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  12. © NTT Communications Corporation All Rights Reserved. 14 イベントテーブルの読み方 システム管理者目線で押さえておきたいフィールド

    フィールド名 説明 (参考)日本語ラベル Queue イベントの処理に使用するキュー。 デフォルトキューの場合は(空)。 キュー State 現在のイベントの状態。 ステータス Claimed by イベントを割り当てられたイベントプロセッサー名。 要求元 Process on イベントの処理開始予定日時。 未来日が入る場合もある(スケジュール済みジョブの場合など) 処理日時 Processed イベントの処理を実際に開始した日時。 処理済み Processing duration イベントの処理にかかった時間(ミリ秒)。 処理期間
  13. © NTT Communications Corporation All Rights Reserved. 15 イベント処理のステータス遷移(こんな感じ?) Process

    on (開始予定日時) Processed (開始日時) ready queued.<Event ProcessorのSys ID> processed / error Processing duration (処理時間(ミリ秒)) State : Updated (終了日時≒最終更新日時) Created (イベント登録日時) キューの滞留を引き起こしているイベントを調査し、「ボトルネックを取り除いて処理を改善する」 「カスタムキューで捌く」などの措置を施しましょう。
  14. © NTT Communications Corporation All Rights Reserved. 16 イベント [sysevent]

    テーブル transferred ステータスとは? ローテーションテーブルの切り替え時、積み残しになったイベントを次のシャードに転送(コピー)する sysevent0000 sysevent0001 sysevent0002 sysevent0005 sysevent0006 ・ ・ ・ ready ready sysevent0000 sysevent0001 sysevent0002 sysevent0005 sysevent0006 ・ ・ ・ transferred transferred ready ready イベント [sysevent] テーブル 現在使用中のシャード (サブテーブル) 現在使用中のシャード (サブテーブル)
  15. © NTT Communications Corporation All Rights Reserved. 17 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  16. © NTT Communications Corporation All Rights Reserved. 18 デフォルトでルールが5つ用意されており、適宜変更が可能 ウォッチリストに登録されたユーザーに通知が飛ぶ

    イベントアラートの構成テーブル 条件に合致したらInsert 書き込まれたら通知 イベントアラートテーブル [sysevent_alert]
  17. © NTT Communications Corporation All Rights Reserved. 19 System Event

    Processing ダッシュボード プラットフォーム上のイベントとキューに関する状態、傾向を把握できる
  18. © NTT Communications Corporation All Rights Reserved. 20 イベント処理について知りたかった5つのこと イベントとキュー

    イベント処理の同時実行数 sysevent テーブルの読み方 異常にどう気付くか もっと分かりやすいツールないの?
  19. © NTT Communications Corporation All Rights Reserved. 21 Application Insights

    というものがあるらしいが…… ServiceNow Store から入手可能だったが、現在はインストール不可(Zurichで廃止予定のため) 後継は “Impact Instance Observer”? (参考)https://www.youtube.com/watch?v=P72zNA9C0Ik • システムの状態を基準と比較し、 異常を特定するデータを提供 • データを深掘りして、問題の原因や 状況を特定する機能 • 発生したイベントを重ね合わせ、 問題の因果関係や関連性を分析する 機能 • ユーザーが独自の条件に基づいた しきい値を設定可能 • しきい値を超えた場合に、アラート や通知を送信する機能の設定
  20. © NTT Communications Corporation All Rights Reserved. 22 “System Event

    Chart” ダッシュボード イベント処理を可視化するダッシュボードを作ってみた ServiceNow Share – “System Event Chart” 本機能は個人が独自に開発したものであり、所属する企業・団体とは一切関係ありません。 プログラムの動作やその影響について保証するものではありませんのでご了承ください。 • 指定された期間およびキューの イベントを時系列順に描画 • イベントプロセッサーごとに 色分けしてイベントをプロット • プロットするイベント数の上限を システムプロパティで制御可能 (デフォルト10,000件)