Мониторинг событий

IBM® Business Process Manager отправляет события отслеживания. Эти событие отправляются в IBM Business Monitor, чтобы можно было отслеживать каждое создаваемое и развертываемое приложение процессов.

События отслеживания отправляются при выполнении процессов для поддержки отслеживания, их не следует путать с событиями процесса, которые являются однонаправленными сообщениями в составе алгоритма процесса.
Прим.: События отслеживания, описываемые в этом разделе, отправляются процессами BPMN, созданными в Process Designer. Информация об отслеживании событий для процессов BPEL, созданных в Integration Designer, приведена в разделе "Каталог событий".

Части события отслеживания

В следующей таблице описаны важные части события отслеживания. Формат события подробно описан в схеме XML schema.

Для указания на части событий применяется стандартная нотация XPath. Если применяются вложенные элементы, это обозначается косой чертой (/), отделяющей имена частей события. Символ @ означает, что часть является атрибутом элемента. В таблице также показано, является ли часть события обязательной.

Копия схемы XML также приведена для справки в связанном разделе "Расширения схемы событий".

Часть события Описание Обязательная или необязательная Тип
mon:monitorEvent Корневой элемент события.

Для каждого события существует один корневой элемент.

Обязательный complex
mon:monitorEvent/@mon:id Уникальный идентификатор события. Необязательный xs:string

mon:monitorEvent/
mon:eventPointData

Описывает характер, время и источник вхождения, о котором сообщает событие. Для каждого события существует один элемент mon:eventPointData. Обязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:kind

Определяет разновидность события (например, bpmnx:PROCESS_STARTED). Для каждого события существует один элемент mon:kind. Обязательный xs:Qname

mon:monitorEvent/
  mon:eventPointData/
  mon:model

Описывает исполняемый элемент модели, определяющий точку отправки события (например, неавтоматизированная задача, такая как Проверить иск).

Для каждого события существует хотя бы один элемент mon:model, но может быть несколько элементов mon:model, если точка отправки события является частью определенной в модели структуры (например, неавтоматизированная задача, определенная в процессе, входящем в состав приложения процессов).

Обязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:model/@mon:type

Задает тип элемента модели процесса, из которого отправляется событие. Значение атрибута mon:type указывает на элементы, определенные в схеме BPMN 2.0 (например, bpmn:process или bpmn:userTask). Обязательный xs:QName

mon:monitorEvent/
  mon:eventPointData/
  mon:model/
  mon:instance

Указывает или описывает экземпляр исполняемого элемента модели, который отправил событие (например, конкретное выполнение задачи). Экземпляр обычно выполняется в среде выполнения, такой как модуль процессов, но на него указывает элемент mon:instance.

Существует не более одного элемента mon:instance на каждый элемент mon:model. В некоторых случаях элемент mon:model может появиться без элемента mon:instance (например, когда элемент верхнего уровня mon:model указывает на конструктивный элемент группировки, такой как приложение процесса или решение, в котором отсутствуют динамические экземпляры).

Обязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:correlation/
  mon:ancestor

Содержит иерархическую структуру идентификаторов зависимости, которую можно автоматически создать с помощью модуля процесса или которую может определить пользователь.
Для событий, отправляемых из IBM Business Process Manager, дерево <mon:ancestor> заполняется модулем процесса. Элементы <mon:ancestor> содержат идентификаторы экземпляров, определяющие следующие элементы:
  • Шаг процесса, на котором отправляется событие (например, неавтоматизированная задача)
  • Выполнение процесса (например, обработка исков)
  • Любые инициаторы

Дополнительные идентификаторы зависимости, такие как номера заказов клиентов или идентификаторы заявок, могут быть добавлены в раздел mon:correlation, расположенный за деревом <mon:ancestor>. Можно использовать дополнительные идентификаторы для обеспечения зависимости в разных бизнес-процессах.

Необязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:source

Описывает расположение источника, из которого отправляется событие (например, определенный сервер). Необязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:source/
  mon:server

Обозначает сервер, на котором выполняется отправитель событий. Необязательный complex

mon:monitorEvent/
  mon:eventPointData/
  mon:source/
  mon:server/@mon:type

Показывает синтаксис идентификации сервера (например, URL или IP-адрес). Если элемент mon:server присутствует, необходимо указать атрибут mon:type для уточнения идентификации сервера. Обязательный xs:QName

mon:monitorEvent/
  mon:applicationData

Содержит правильно сформированный XML, отправляемый в отчете приложения, отправляющего события. Этот элемент в событии содержит пользовательские бизнес-данные, такие как данные отслеживаемых полей, информация о точке мониторинга или данные KPI.

Некоторые события не содержат элемент applicationData. Дополнительная информация о структуре applicationData приведена в связанном разделе "Расширения схемы событий". Также смотрите пример applicationData в конце этого раздела.

Необязательный complex

Имена частей события отслеживания начинаются с префикса пространства имен mon, связанного с пространством имен http://www.ibm.com/xmlns/prod/websphere/monitoring/7.5.

Префикс пространства имен xs, используемый для указания типов схемы XML, связан с http://www.w3.org/2001/XMLSchema.

Совет: Если несколько элементов <mon:ancestor> существуют в дереве <mon:ancestor>, следует читать дерево снизу вверх. В следующем примере элемент mon:ancestor, выделенный полужирным шрифтом, является родительским элементом для первого элемента mon:ancestor:
<mon:correlation>
    <mon:ancestor mon:id="3e888eb2-9c18-4cd5-a9de-3991aeb4f40e.2064.33692aa7-cb0e-4f0a-ac90-b85a5a5687ffT.161.6">
        <mon:ancestor mon:id="3e888eb2-9c18-4cd5-a9de-3991aeb4f40e.2064.33692aa7-cb0e-4f0a-ac90-b85a5a5687ffT.161">
        </mon:ancestor>    
    </mon:ancestor>
    <wle:starting-process-instance>3e888eb2-9c18-4cd5-a9de-3991aeb4f40e.2064.33692aa7-cb0e-4f0a-ac90-b85a5a5687ffT.161
<mon:correlation>

В следующем примере события отслеживания префиксы пространства имен связаны атрибутами xmlns в корневом элементе.

Пример события отслеживания

<mon:monitorEvent xmlns:mon="http://www.ibm.com/xmlns/prod/websphere/monitoring/7.5" 
   mon:id="C1299df7f13ced21792162189" 
   xmlns:bpmn="http://schema.omg.org/spec/BPMN/2.0" 
   xmlns:bpmnx="http://www.ibm.com/xmlns/bpmnx/20100524/BusinessMonitoring" 
   xmlns:ibm="http://www.ibm.com/xmlns/prod/websphere/monitoring/7.5/extensions" 
   xmlns:wle="http://www.ibm.com/xmlns/prod/websphere/lombardi/7.5" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <mon:eventPointData>
    <mon:kind mon:version="2010-11-11">bpmnx:PROCESS_STARTED</mon:kind>
    <mon:time mon:of="occurrence">2011-02-03T10:44:13.829-05:00</mon:time>
    <ibm:sequenceId>2</ibm:sequenceId>
    <mon:model mon:type="bpmn:process" mon:id="854325da-04ea-4ea6-8664-c701b4bf3d61" 
    mon:version="2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55">
      <mon:name>Ping</mon:name>
      <mon:documentation>Определение процесса "Ping". </mon:documentation>
      <mon:instance mon:id="754">
        <mon:state>Active</mon:state>
      </mon:instance>
    </mon:model>
    <mon:model mon:type="wle:processApplication" mon:id="b9e85db9-5c4d-40e7-9421-e53acb738f4e" 
    mon:version="2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55">
      <mon:name>Вызовы туда-сюда</mon:name>
      <mon:documentation>Пинг-понг между двумя процессами. </mon:documentation>
    </mon:model>
    <mon:correlation>
      <mon:ancestor mon:id="854325da-04ea-4ea6-8664-c701b4bf3d61.2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55.754"/>
      <wle:starting-process-instance>854325da-04ea-4ea6-8664-c701b4bf3d61.2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55.754
      </wle:starting-process-instance>
    </mon:correlation>
  </mon:eventPointData>
</mon:monitorEvent>

Пример элемента applicationData

<mon:applicationData>
    <wle:tracking-point wle:time="2011-02-03T10:44:16.054-05:00" wle:name="Вызвать Ping ? (PRE)" 
     wle:id="8bfe448-7ceebpdid571234bad276b9a1-4cb5676012c08bfe448-7cd0 (PRE)" 
     wle:version="2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55" 
     wle:groupName="at12886649788291288665594539" 
     wle:groupId="guid:571234bad276b9a1:-4cb56760:12c08bfe448:-7cee" 
     wle:groupVersion="2064.9d926c59-6511-4ee9-a0d2-4015fb19cb55">
      <wle:tracked-field wle:name="levelEnteringPong" 
        wle:id="bpdid:571234bad276b9a1:-1448ee2a:12c08c263e4:-7fbc" 
        wle:type="xs:integer">1</wle:tracked-field>
      <wle:tracked-field wle:name="reportOfWhereInPong" 
        wle:id="bpdid:571234bad276b9a1:-1448ee2a:12c08c263e4:-7fba" 
        wle:type="xs:string">Это Pong. Вызван с уровнем = 1. </wle:tracked-field>
      <wle:tracked-field wle:name="argumentForPing" 
        wle:id="bpdid:571234bad276b9a1:-1448ee2a:12c08c263e4:-7fb8" 
        wle:type="xs:integer"/>
      <wle:kpi-data wle:name="Трудозатраты" 
         wle:id="fbec4968-5e4c-4f2b-b11b-f3c9ef63d09b" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:decimal">0</wle:kpi-data>
      <wle:kpi-data wle:name="Общее время (часы)" 
         wle:id="67cbb213-0032-4f14-be44-7e9c7a1a146f" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:dayTimeDuration">P0DT0H0M0S</wle:kpi-data>
      <wle:kpi-data wle:name="Пауза (часы)" 
         wle:id="43b503bd-63e7-4c42-8268-92d1033e0997" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:dayTimeDuration">P0DT0H0M0S</wle:kpi-data>
      <wle:kpi-data wle:name="Стоимость ресурсов" 
         wle:id="d5da2c80-b2af-40a6-981d-9de4df12ed12" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:decimal">0</wle:kpi-data>
      <wle:kpi-data wle:name="Добавленная стоимость" 
         wle:id="e30cf309-a884-4a7b-a2db-16e8a371a4c1" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:decimal">1</wle:kpi-data>
      <wle:kpi-data wle:name="Время выполнения (часы)" 
         wle:id="8601bb6b-9c9d-4cba-936e-16350a036de3" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:dayTimeDuration">P0DT0H0M0S</wle:kpi-data>
      <wle:kpi-data wle:name="Стоимость" 
         wle:id="995ba3fc-e786-45eb-b356-47acb3d3ebbc" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:decimal">0.00000000</wle:kpi-data>
      <wle:kpi-data wle:name="Переработка" 
         wle:id="0f650e6c-a9d7-4355-90bd-06530fa3eeec" 
         wle:version="2064.8d7ade38-7307-4894-a633-9903b7fc69d6" 
         wle:type="xs:decimal">0</wle:kpi-data>
    </wle:tracking-point>
  </mon:applicationData>

IBM BPM version 8.6.0 cumulative fix 2018.03Особенности мониторинга событий, генерируемых процессами IBM BPM

Выражение корреляции для входящих событий в модели монитора использует значение элемента <wle:starting-process-instance> в элементе <mon:correlation> из элемента <mon:eventPointData>. По умолчанию это значение содержит ИД моментальной копии. Вместо него можно использовать ИД системы IBM BPM, указав следующий параметр в файле 100Custom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <common>
        <monitor-event-emission merge="replace">
          <enabled>true</enabled>
          <use-system-id-for-correlation>true</use-system-id-for-correlation>
        </monitor-event-emission>
    </common>
</properties>"