メインコンテンツまでスキップ

CEP (複合イベント処理)

目次​


概要​

CEP(Complex Event Processing)機能は、リアルタイムイベントストリームから意味のあるパターンを検出し、即座にアクション(保存・発行・アラーム)を実行するルールエンジンです。現在、左側メニューでは 自動化 グループの EQLクエリ と ステートメント として表示されます。

サブメニュー内部URL用途
EQLクエリ/query/indexEQL(Event Query Language)の臨時クエリをリアルタイムストリームに適用し、結果を即時に確認
ステートメント/statement/index資産単位のドメインルール(状態/集計/イベント/命令)の照会

CEPルールの結果は、フロー の資産トリガー(flow_on_asset_event など)へも自動的に接続されます。


画面構成 — 自動化グループのEQL画面​

画面主なユーザー概要
クエリ運用分析担当者EQLを1行記述して即座に実行し、リアルタイムストリームで結果を確認
ステートメント運用者資産に登録されたドメインルールの状態と実行統計を照会

クエリ画面 (/query/index)​

EQLの臨時クエリを作成し、▶ボタンで即座に実行してリアルタイムストリームの結果を確認する画面です。

上部 — クエリ保存・履歴​

🔍 쿼리 [💾 이 쿼리를 저장] [↩ 마지막 쿼리] [▼ 이력 ▼]
ボタン動作
このクエリを保存saveQueryHistory() — 現在のEQLをお気に入りに保存
最後のクエリloadLastQuery() — 直近に実行したクエリを読み込み
履歴ドロップダウンloadQueryHistory() — 保存したクエリ履歴をドロップダウンで表示(最大400pxスクロール)

上部または左側メニューのEQL入力窓で作成したクエリは、この画面に自動的に転送され実行できます。

EQL入力パネル​

黒い枠線の大きな入力ボックス(textarea[name=epl], 高さ8行) + 右上部の2つのアイコン。

アイコン動作
▶ (再生, 白色)runQuery() — EQL実行
⚙ (ギア, 灰色)resultConfig() — 結果表示オプションダイアログ (display_count・expire_time・result_format・チャートオプションなど)

実行結果パネル​

結果パネルのヘッダーには以下が表示されます。

項目表示
左側⚪ 「クエリ実行結果」 + (保存済みクエリの場合) [배치시간=..., EQL ID=...]
右側▶ 開始 / ⏸ 停止 ボタン (リアルタイム結果受信の一時停止)

結果チャート (query_result_chart, 160px)​

  • 右上に入力カウント(input_count_cur) と分当たり入力数(input_count_min) を表示
  • 結果データの受信が始まるとチャートが描画される。リアルタイムラインチャート形式
  • データ受信前は「チャートデータ受信待ち...」 (回転アイコン)

結果テーブル (query_result_table)​

カラム説明
#行番号
出力時間EQLが結果をemitした時刻
行数1回のemitあたりの行数
データJSONまたは表形式の結果本文

実行を停止しない限り、結果テーブルにデータが蓄積され続けます。停止ボタンを押すか、新しいクエリを実行すると蓄積が止まります。


トリガー画面 参照​

独立した トリガー メニューは左側メニューにありません。既存の /trigger/index 画面や内部APIを運用中の環境では、以下の内容をレガシー参照としてのみ使用してください。新規の自動化は、フロー のトリガーノードと 自動化 > EQLクエリ / ステートメント のフローを優先して使用してください。

EQLのマッチング結果を外部メッセージチャネルへ発行したり、ストレージに保存したりするユーザー定義トリガーを管理します。

上部ツール​

⚡ 트리거 [➕ 트리거 추가] [↻]

リストテーブル​

リストパネルヘッダーの右側には、選択したトリガー配置 / 解除 / すべて再配置 の3つのボタンがあります。

カラム幅説明
選択50px一括配置/解除用チェックボックス
状態80px配置/解除バッジ
トリガー ID110pxシステム自動付与ID
トリガー名 | 説明自動運用者が指定したメタデータ
MQストリーミング70pxMQ発行の使用有無 (Y/N)
ストレージ保存70px結果のストレージ蓄積使用有無 (Y/N)
全体実行件数70px累計マッチング件数
最終実行日110px直近のマッチング時刻
エラー70px累計エラーカウント
登録日110px登録時刻
最終修正日110px最終修正時刻
アクション80px修正・削除ボタン

ページ下部には案内ボックスが表示されます。

ユーザー定義トリガーの使用 特定の条件に合致した際にアクションを実行するユーザー定義トリガーを追加できます。さらに、これをMQを通じてストリーミングしたり、ストレージに保存したりすることが可能です。

トリガー追加/修正様式​

上部の トリガー追加 ボタンで様式画面(/trigger/form)へ移動します。

1) 基本情報 fieldset​

入力path幅備考
トリガー IDtrigger_id200px読み取り専用 — システム自動付与
トリガー名trigger_name450px識別しやすい名称
説明trigger_desc600 × 100px (textarea)トリガーの用途

2) EQL fieldset​

入力path説明
EQLepl8行 textarea — EQLクエリ作成 (SELECT ... FROM ... WHERE ...)
▶ 試験実行(アイコン)runQuery() — 作成したEQLを即座に試験実行。結果は以下の クエリ結果 表(graph_query_result)に表示

クエリ結果表(試験実行結果プレビュー):

カラム説明
出力時間EQLが結果をemitした時刻
データ結果本文

3) ストリーミング fieldset​

入力path説明
MQ出力有無use_mq (チェックボックス)結果データを外部メッセージチャネルへ発行するかどうか
プロトコルmq_protocol (セレクター)MQTT または KAFKA
デスティネーションmq_destination (450px)発行先トピック/チャネル — 区別: KAFKA -, MQTT /. 例: device-machine-topic-1 または device/machine/topic_1

4) ストレージ保存 fieldset​

入力path説明
ストレージ保存有無use_storage (チェックボックス)結果データをストレージに蓄積するかどうか

ストレージテーブル名・カラム定義領域は、トリガー結果保存テーブルが固定されているため、現在は非活性状態です。

フォーム送信​

ボタン動作
リスト(☰)トリガーリスト画面に戻る
保存 (青)入力検証後に保存。保存しただけでは配置されず、リスト画面で 選択したトリガー配置 を押すことで実際の動作が開始される

すべて再配置​

ボタン位置動作
すべて再配置リストパネルヘッダー右側 (🔁)登録されたすべてのトリガーを一括再配置。ルールエンジン再起動後または設備点検後に使用

運用手順​

  1. トリガー追加 → EQL・ストリーミング・ストレージオプションを入力 → 保存
  2. リストで該当トリガーにチェック → 選択したトリガー配置 をクリック → 状態が「配置」に変更
  3. 運用中に一時停止させる場合は 解除 をクリック → 状態が「解除」に変更
  4. 点検後、すべて再配置 で一括再稼働

ステートメント画面 (/statement/index)​

資産単位で登録されたドメインルール(状態/集計/イベント/命令)の状態と実行統計を照会する画面です。

上部 検索・フィルタ​

√ 스테이트먼트 [유형 ▼] [검색 ...] [조회] [↻]
コントロールオプション説明
タイプセレクター (search_type)全タイプ・状態(CONTEXT)・集計(AGGREGATION)・イベント(EVENT)・命令(COMMAND)4種類のルールタイプフィルタ
検索入力 (txt)(250px)placeholder: 「検索 ...」 — ルール名/適用資産ID/説明キーワード
照会(赤 + 🔍)search() — 条件でリストを更新
更新(赤 + ↻)refresh() — 画面をリフレッシュ

4種類のルールタイプ​

コード名称意味
CONTEXT状態資産の現在状態(稼働/停止/異常)をEQLで定義
AGGREGATION集計一定ウィンドウ期間の平均/最大値などを集計
EVENTイベント特定パターン(閾値超過など)発生時にドメインイベントを発行
COMMAND命令ルールマッチング時に資産へ命令(flow_on_asset_command)を発行

リストテーブル​

カラム幅説明
状態80px活性/非活性バッジ
適用済みアセット ID150pxルールが付与された資産識別子
タイプ80px4つのタイプのうち1つ (上の表を参照)
ステートメント名自動ルールの名前
説明300pxルールのメモ
全体実行件数80pxルールがマッチングした累計回数
最終実行日120px直近のマッチング時刻
エラー60px累計エラーカウント
登録日120pxルール登録時刻
詳細50pxクリックしてルール詳細表示画面(/statement/view)へ移動

ステートメント作成 — 種類別の必須項目​

ステートメントは設備に紐付けます。アセットツリーから設備を選択し、レジストリ タブの ステートメント追加 から開きます (ADMINのみ表示)。この画面(/statement/index)は照会・運用用です。

EQLの SELECT は種類別に定められた出力項目をすべて出力しなければ保存されません。 プラットフォームがその名前で値を読み取るためです。それ以外の項目は自由です。

種類ダイアログ名必須項目
EVENTイベントtimestamp · plugin · name · color · from_timestamp · to_timestamp · value
CONTEXT文脈timestamp · plugin · key · value
AGGREGATION集計timestamp · plugin · key · value
COMMAND命令timestamp · plugin · key · value
項目意味
timestampイベント時刻(epoch ms)
plugin出典プラグイン(OEE·RAM·EMSなど)
key項目名(状態・集計・命令の名前)
value値
nameイベント名
color表示色
from_timestamp · to_timestamp開始 · 終了時刻(epoch ms)

項目は ... AS 칸 で出力するか、同じ名前の項目をそのまま選択します。SELECT * は項目名が文中にないため通りません。種類を選択すると この種類が出力すべき項目 の案内が変わり、エディタが空の場合はその種類のテンプレートが埋められます。

SELECT
timestamp AS timestamp,
'-' AS plugin,
'' AS key,
'' AS value
FROM Point(tag_id = '...')

ダイアログは保存前に EQL実行(▶)でまず検証することになっています。項目が不足していると保存が拒否され(HTTP 422, asset_statement.eql.missing_columns)、EQLエディタ下のオレンジ色のボックスに不足項目が表示されます。

AGGREGATION ステートメントのEQLに必須項目がありません: key. SELECTの出力名(... AS 項目)としてtimestamp, plugin, key, valueをすべて出力してください。

同様の規則がコンソール・V5・ISOプラグイン適用・プラグインテンプレート・MCP validate_eql にも適用されます。4種類以外の値は asset_statement.eql.unknown_type として拒否されます。

詳細表示​

リストの 詳細 ボタンをクリックすると、別画面(/statement/view/{asset_id}/{statement_name})へ移動して以下を確認できます(下の ステートメント詳細画面 参照)。

  • ルールのEQL本文
  • 実行結果履歴
  • 実行トレンド/集計
  • 分析性能トレンド
  • 状態履歴

ステートメント詳細画面​

詳細ボタンから進入する分析ビュー(statement/view.jsp, 715行)。1つのルールのすべての運用情報を1つの画面にまとめています。

上部 — 識別ヘッダー​

√ 스테이트먼트 | {statement_name} [ {asset_id} ] [← 목록] [↻]
ボタン動作
リスト(←)/statement/index へ戻る
更新画面を再読み込み

パネル 1 — ステートメント情報 (5カラム表)​

カラム幅説明
状態250px活性/非活性 + 最終実行時刻
ステートメント名自動ルールの名前
適用アセット200px資産ドメインバッジ — クリックで 資産ツリー へ移動
タイプ200px状態(CONTEXT)·集計(AGGREGATION)·イベント(EVENT)·命令(COMMAND)
登録日160pxルール登録時刻

EQL本文 fieldset​

ルールのEQLクエリ本文がそのまま表示されます。テキスト領域からコピーして クエリ画面 に貼り付け、試験実行することができます。

入力・出力 fieldset​

領域表示
入力シリーズルールの入力に使用されるタグ・イベントタイプリスト
出力シリーズルールが発行するドメインイベントタイプ
エラーカウント初期化累計エラーカウントのみを0にリセット(resetErrorCount(asset_id, statement_name))

パネル 2 — 実行結果履歴 (4カラム表)​

カラム幅説明
実行時間160pxルール実行時刻
結果60px成功(緑) / エラー(赤)
結果値 / エラーメッセージ自動成功時は結果本文、エラー時はエラーメッセージ
コピー50px📋 — 結果値/エラーメッセージをクリップボードにコピー

パネル 3 — 実行トレンドチャート​

項目説明
ヘッダー📊 「実行トレンド」
ボタン今日(switchTrendDay(0)) / 昨日(switchTrendDay(-1)) トグル
チャート24時間時間帯別の成功/エラー累計棒グラフ (シリーズ: 成功・エラー)

パネル 4 — 実行集計​

項目説明
ヘッダー📊 「実行集計」
ボタン今日(switchAggDay(0)) / 昨日(switchAggDay(-1)) トグル
fieldset 1分単位集計(時間帯別カウント・平均処理量など)
fieldset 2優先順位または結果分布

パネル 5 — 分析性能トレンド​

項目説明
ヘッダー🖥 「分析性能トレンド」
ボタン今日(switchCpuDay(0)) / 昨日(switchCpuDay(-1)) トグル
チャートルール処理に使用されたCPU/処理時間の時系列 — 負荷の高いルールを識別

パネル 6 — 状態履歴表​

カラム説明
変更時間ルール状態変更時刻 (活性・解除・再配置など)
状態変更された状態

ルールライフサイクル(いつ活性化・解除・修正されたか)を追跡する際に使用します。

活用パターン​

分析フロー画面フロー
エラールールの診断実行結果履歴 → エラーメッセージ → コピー → EQL本文検討 → クエリ画面 で試験実行
負荷の高いルールの識別分析性能トレンド → CPU使用量が多い時間帯 → EQL本文の簡素化
ルールマッチング分布分析実行トレンド + 集計 → 時間帯別のマッチングパターン
運用ルールの整備状態履歴 → 活性化/解除時点の追跡

活用シナリオ​

シナリオ画面手順
現在のライン稼働状態を即座に確認クエリEQL入力窓に SELECT * FROM AssetData.win:time(1 sec) WHERE asset_id='LINE-A' → ▶
新しいアラームルールの試験・配備トリガー追加 → EQL作成 → ▶ 試験実行 → 結果確認 → 保存 → 配置
外部SCADAへ資産イベントを中継トリガーEQLマッチングメッセージをMQTTトピック scada/line-a/events へ発行
資産単位のルール点検ステートメントタイプ=EVENT + 資産ID検索 → 活性ルールリスト + 実行件数
ルールの暴走が疑われる場合ステートメント全体実行件数が多いルールから確認 → 詳細でEQL/入力検討
自動化でルールの結果を受信フローflow_on_asset_event トリガーでドメインルールの結果を直接受信

よくある質問​

Q. EQLはSQLと同じですか? A. 似た構文を使用していますが、EQLは 時間ウィンドウ と ストリーム の概念が追加されたイベント処理言語です。例: Point.win:time(5 sec) は直近5秒のデータのみを、Point.win:length(100) は直近100件のみを処理します。

Q. クエリ画面で実行したクエリは保存されますか? A. ▶ 実行しただけでは一時的であり、このクエリを保存 ボタンを押すことでお気に入りに保存されます。単発の分析用であれば保存しなくても問題ありません。

Q. トリガーを保存しましたが動作しません。 A. 保存は定義を登録しただけの状態です。リストでそのトリガーにチェックを入れ、選択したトリガー配置 をクリックすることで、実際のルールエンジンに登録されマッチングが開始されます。

Q. トリガーのデスティネーションはどう決めればよいですか? A. プロトコル によって区切り文字が異なります。

  • KAFKA: ハイフン(-)区切り — 例: device-machine-topic-1
  • MQTT: スラッシュ(/)区切り — 例: device/machine/topic_1

Q. ステートメント画面で検索しても結果が出ません。 A. タイプセレクターで「タイプ」(全体)が選択されているか確認してください。また、資産IDの一部を入力しても部分一致検索が可能です。

Q. 全体実行件数が異常に大きいです。 A. ルールの入力ウィンドウが狭すぎるか、マッチング条件が広すぎる可能性があります。詳細 ボタンでEQLを検討するか、フロー のトリガパターン(*_pattern)でメッセージを事前フィルタリングしてください。

Q. トリガーのEQL試験実行結果が空です。 A. 試験時点でデータ入力がないか、EQLのウィンドウが長すぎて最初の方のマッチングに時間がかかっている可能性があります。試験を1分ほど待ってから再確認するか、ウィンドウを短く (win:time(1 sec)) 調整して試験してください。

Q. トリガーを一時的に停止させるには? A. リストで該当トリガーにチェックを入れ、解除 をクリックしてください。再始動させる場合は 選択したトリガー配置 をクリックします。

Q. 資産にルールが自動的に付与されますか? A. 資産登録時の運用環境設定により、基本ドメインルールが自動付与される場合があります。現在適用されているルールはステートメント画面で確認でき、追加/削除が必要な場合はシステム管理者または資産別設定画面で行ってください。

Q. EQLの結果を自動的に処理したいです。 A. フロー の資産トリガー(flow_on_asset_event/flow_on_asset_alarm など)を使用してドメインルールの結果を自動受信し、後続アクション(作業指示発行・メール・外部API呼出)へ接続できます。


関連画面​