监控数据库事件映射

本主题包含对于由 Windows Workflow Foundation (WF) 运行时发出的每种事件类型,监控数据库中暂存表的字段到事件视图的映射。配置非 SQL 监控数据库以便用于 Microsoft AppFabric 1.1 for Windows Server 时需要此信息。使用 SQL Server 时,通过 AppFabric 配置过程创建全部视图和暂存表。但是,在非 SQL 数据库实现中,您将需要手动创建这些视图和暂存表。当在 AppFabric 管理的 WCF 或 WF 服务中发生一个事件时,事件收集服务 会向监控数据库的 ASStagingTable 表中写入一个与该事件对应的行。需要将该数据映射到相应的视图中,以便可以使用 AppFabric 仪表板显示。使用您选择的任何机制获取暂存表中的数据到支持监控视图的任何表时可能会发生此映射。例如,您可以使用数据库触发或作业。

该文档只包含几个事件和视图映射。有关完整的事件及其关联的映射集,请下载 AppFabric 数据库事件映射。有关此映射过程的详细信息,请参阅如何:使用非 SQL Server 监控数据库监控数据库视图和表

所有事件的常见映射

ASStagingTable 表

每个事件都将填充 ASStagingTable 表中的以下字段。

ASStagingTable 列 事件数据

EventTypeId

发出事件的 ID

E2EActivityId

随此事件发出的端到端活动 ID

计算机

发出此事件的计算机名

EventSource

此事件的虚拟路径

ProcessId

进程 ID

TraceLevelId

发出事件的跟踪级别

TimeCreated

为此事件创建的时间

ASEventSources 视图

几乎所有事件都将填充 ASEventSources 视图(事件 ID 499 例外)。

列名称 数据源

ID

事件源的 ID。由其他视图使用,以获取事件源的详细信息。

名称

从 ASStagingTable 中的 EventSource 列提取的服务的名称

计算机

映射到 ASStagingTable 中的计算机

站点

从 ASStagingTable 中的 EventSource 列提取的站点的名称

VirtualPath

从 ASStagingTable 中的 EventSource 列提取的完全 VirtualPath 的名称

ApplicationVirtualPath

从 ASStagingTable 中的 EventSource 列提取的应用程序虚拟路径的名称

ServiceVirtualPath

从 ASStagingTable 中的 EventSource 列提取的服务虚拟路径的名称

ASEvents 视图

几乎所有事件都将填充 ASEvents 视图(事件 ID 499 例外)。

列名称 数据源

EventTypeId

映射到 ASStagingTable.EventTypeId 的 EventTypeId

EventName

事件的名称

EventVersion

事件的版本。目前为 0。

EventSourceID

映射到 ASEventSources 视图中的事件源的 ID

ProcessId

映射到 ASStagingTable.ProcessId

TraceLevelId

映射到 ASStagingTable.TraceLevelID

TraceLevel

TraceLevelId 的字符串表示形式

E2EActivityId

映射到 ASStagingTable.E2EActivityId

TimeCreated

映射到 ASStagingTable.TimeCreated

事件

以下是一些实现监控数据库的事件映射。

事件 ID 100

除了常见的列之外,事件收集服务 还将为事件 ID 100 填充 ASStagingTable 表中的以下列。

事件数据 ASStagingTable 列

TypeName

Data1UniqueId

RecordNumber

Data1BigInt

ActivityRootId

Data3Str

状态

Data2Str

跟踪配置文件名称

Data1Str

注释

CustomAnnotations

来自事件 100 的数据将填充以下视图:ASEventSources、ASWfEvents、ASEvents、ASWfTrackingProfiles 和 ASWfEventAnnotations。常见映射中指定了数据从 ASStagingTable 到常见视图 ASEventSources 和 ASEvents 的映射。

视图:ASWfEventAnnotations

此视图经过了更新,包含随来自 WF 服务的 WF 跟踪事件发出的注释。

列名称 填充的数据

ID

此事件行的唯一标识符

AnnotationSetId

用于查找发出注释的 WF 事件的键

名称

从 ASStagingTable.CustomAnnotations 获取的注释的名称

从 ASStagingTable.CustomAnnotations 获取的注释的值

从 ASStagingTable.CustomAnnotations 提取注释名称和值

将按如下所示存储注释。注释随此事件一同发出。注释的值使用以下格式存储。

 
< items >
< item  name = "annotationName" type="System.String">annotationValue</item>
</items > 

如果未指定任何注释,则字符串将包含 </items>。通过分析 ASStagingTable.CustomAnnotations 列中存储的值提取 namevalue

查看 ASWfTrackingProfiles

列名称 填充的数据

ID

跟踪配置文件的唯一 ID

名称

映射到 ASStagingTable-> 列 ASStagingTable.Data1Str

查看 ASWfEvents

仅指定此视图中为此事件填充的列。其他所有列都具有 NULL 值。由事件特别填充的值以粗体指定。此视图针对为 WF 实例发出的跟踪事件而创建。

列名称 填充的数据

ID

生成的唯一 ID

EventTypeId

100(映射到:ASStagingTable-> 列 EventTypeId)

EventType

“WorkflowInstanceRecord”

EventVersion

0

EventSourceId

ASEventSources 视图中的 ID

ProcessId

映射到 ASStagingTable-> 列:ASStagingTable.ProcessId

WorkflowInstanceId

映射到 ASStagingTable-> 列:ASStagingTable.Data1UniqueId

TrackingProfileId

映射到 ASWfTrackingProfiles 视图中此 ID 列的跟踪配置文件的唯一 ID。此 ID 与 ASWfTrackingProfiles 都更新到单个事务中。

E2EActivityId

映射到 ASStagingTable-> 列:ASStagingTable.E2EActivityId

TraceLevelId

映射到 ASStagingTable-> 列:ASStagingTable.TraceLevelId

TraceLevel

依赖于 TraceLevelId:0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose”

RecordNumber

映射到 ASStagingTable-> 列:ASStagingTable.Data1BigInt

AnnotationSetId

映射到 ASWfEventAnnotations 视图中 AnnotationSetId 列的注释集的唯一 ID。此 ID 与 ASWfEventAnnotations 都更新到单个事务中。

TimeCreated

映射到 ASStagingTable-> 列:ASStagingTable.TimeCreated

ActivityRootId

映射到 ASStagingTable-> 列:ASStagingTable.Data3Str

状态

映射到 ASStagingTable-> 列:ASStagingTable.Data2Str

视图:ASWfInstances

此视图经过了更新,包含活动 WF 的实例状态。此视图按照 ASWfEvents 视图进行了更新,但在同一事务中。当向 ASWfEvents 视图中添加了某个事件之后,此视图需要随 ASWfEvents 视图中插入的值同时更新,因此在同一事务中。每个工作流实例只占一行。将每个事件添加到 WFEvents 表都会修改工作流实例的行。仅在某些特定条件下才在此表中添加/更新行。如果 ID 为 100 的事件的状态 = “Deleted”或“Unloaded”(ASWfEvents.State),则不在此表中添加行。

列名称 填充的数据

ID

此条目的唯一 ID

WorkflowInstanceId

映射到 ASStagingTable-> 列:ASStagingTable.Data1UniqueId 仅为唯一实例添加一次。

LastEventSourceId

最后一个修改此行的 eventSourceID。映射到 ASWfEvents.EventSourceId。

LastEventStatus

映射到 ASWfEvents 视图-> 列:ASWfEvents.State。仅在状态不等于“Deleted”或“Unloaded”时插入/更新。如果状态 == “Deleted”或“Unloaded”,则不在此表中添加行。

StartTime

映射到 ASWfEvents-> 列:ASWfEvents.TimeCreated。这是具有此工作流实例最低 RecordNumber 的事件的 TimeCreated。

LastModifiedTime

映射到 ASWfEvents-> 列:ASWfEvents.TimeCreated。在状态更改时更新。还请注意,要更新此列,WorkflowRecord 的 RecordNumber 要大于前一个更新此值的 RecordNumber。(可能的实现是:保留一个临时表,该临时表将此表中的实例 ID 从对其进行修改的 ASWfEvents 映射到工作流事件记录的 RecordNumber。当新事件尝试为此实例更新此行时,请检查 RecordNumber 是否大于最后一次修改的 RecordNumber。)

CurrentDuration

运行工作流的持续时间 (LastModifiedTime – StartTime)

ExceptionCount

WF 遇到的例外数量。未由事件 ID 100 更新。

LastAbortedTime

未由事件 ID 100 更新

有关此事件的详细信息,请参阅 100 - WorkflowInstanceRecord (https://go.microsoft.com/fwlink/?LinkId=187224)。

事件 ID 103

除了常见的列之外,事件收集服务 还将为事件 ID 103 填充 ASStagingTable 表中的以下列。

事件数据 ASStagingTable 列

workflowinstanceid

Data1UniqueId

RecordNumber

Data1BigInt

跟踪配置文件名称

Data1Str

状态

Data2Str

ActivityName

Data3Str

ActivityId

Data4Str

ActivityInstanceId

Data5Str

ActivityTypeName

Data6Str

注释

CustomAnnotations

变量

CustomProperties

参数

CustomArguments

来自事件 103 的数据将填充以下视图:ASEventSources、ASWfEvents、ASEvents、ASWfTrackingProfiles、ASWfEventAnnotations、ASWfEventProperties 和 ASWfPropertyNames。常见映射中指定了数据从 ASStagingTable 到常见视图 ASEventSources 和 ASEvents 的映射。

视图:ASWfEventAnnotations

此视图经过了更新,包含随来自 WF 服务的 WF 跟踪事件发出的注释。

列名称 填充的数据

ID

此事件行的唯一标识符

AnnotationSetId

用于查找发出注释的 WF 事件的键

名称

从 ASStagingTable.CustomAnnotations 获取的注释的名称

从 ASStagingTable.CustomAnnotations 获取的注释的值

从 ASStagingTable.CustomAnnotations 提取注释名称和值

注释随此事件一同发出。注释的值使用以下格式存储。如果未指定任何注释,则字符串包含 </items>。通过分析 ASStagingTable.CustomAnnotations 列中存储的值提取名称和值。

 
< items >
< item  name = "annotationName" type="System.String">annotationValue</item>
</items > 

视图:ASWfPropertyNames

此视图针对从 WF 服务提取的跟踪属性名称而创建。该名称可以为变量名称、参数名称或 customtrackingrecord 中的名称。

列名称 填充的数据

EventSourceId

此事件的事件源。具体指的是 EventSources 视图中的 ID。

名称

跟踪属性的名称

类型

跟踪属性的类型

从 ASStagingTable.CustomProperties 或 ASStagingTable CustomArguments 提取名称和类型

工作流变量存储在 ASStagingTable.CustomProperties 中。对于事件 103,变量的格式如下。如果未指定任何变量,则字符串包含 </items>。分析 XML 字符串,以获取该变量的名称和类型。

< items >
< item  name = "variableName" type="System.String">variableValue</item>
</items > 

参数存储在 ASStagingTable.CustomArguments 中。对于事件 103,参数的格式如下。分析 XML 字符串,以获取该参数的名称和类型。如果未指定任何参数,则字符串包含 </items>。

< items >
< item  name = "argumentName" type="System.String">argumentValue</item>
</items > 

视图:ASWfEventProperties

在此视图中,从 WF 事件提取的每个变量/参数/自定义属性均占一行。

列名称 填充的数据

EventId

映射到 ASWfEvents 视图中的事件 ID -> ASWfEvents.Id 指的是发出此数据的 WF 事件。

名称

对来自 ASStagingTable.CustomArguments 或 ASStagingTable.CustomProperties 的 XML 进行分析时提取的名称

WfDataSource

属性(参数、变量或自定义数据)的源。如果数据从 ASStagingTable.CustomArguments 填充,则该值为“Argument”。如果数据从 ASStagingTable.CustomProperties 填充,则该值为“Variable”。

类型

属性的类型从 CustomProperties xml 的 CustomArguments 中提取

当类型为简单类型时,属性的值从 CustomProperties xml 的 CustomArguments 中提取

ValueBlob

当类型为复杂类型时,属性的值从 CustomProperties xml 的 CustomArguments 中提取

TimeCreated

此属性被发出映射到 ASWfEvents.TimeCreated 时的时间戳

查看 ASWfTrackingProfiles

列名称 填充的数据

ID

跟踪配置文件的唯一 ID

名称

映射到 ASStagingTable-> 列 ASStagingTable.Data1Str

查看 ASWfEvents

仅指定此视图中为此事件填充的列。其他所有列都具有 NULL 值。由事件特别填充的值以粗体指定。此视图针对为 WF 实例发出的跟踪事件而创建。

列名称 填充的数据

ID

生成的唯一 ID

EventTypeId

103(映射到:ASStagingTable-> 列 EventTypeId)

EventType

“ActivityStateRecord”

EventVersion

0

EventSourceId

ASEventSources 视图中的 ID

ProcessId

映射到 ASStagingTable-> 列:ASStagingTable.ProcessId

WorkflowInstanceId

映射到 ASStagingTable-> 列:ASStagingTable.Data1UniqueId

TrackingProfileId

映射到 ASWfTrackingProfiles 视图中此 ID 列的跟踪配置文件的唯一 ID。此 ID 与 ASWfTrackingProfiles 都更新到单个事务中。

E2EActivityId

映射到 ASStagingTable-> 列:ASStagingTable.E2EActivityId

TraceLevelId

映射到 ASStagingTable-> 列:ASStagingTable.TraceLevelId

TraceLevel

依赖于 TraceLevelId:0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose”

RecordNumber

映射到 ASStagingTable-> 列:ASStagingTable.Data1BigInt

AnnotationSetId

映射到 ASWfEventAnnotations 视图中 AnnotationSetId 列的注释集的唯一 ID。此 ID 与 ASWfEventAnnotations 都更新到单个事务中。

TimeCreated

映射到 ASStagingTable-> 列:ASStagingTable.TimeCreated

ActivityName

映射到 ASStagingTable-> 列:ASStagingTable.Data3Str

ActivityId

映射到 ASStagingTable-> 列:ASStagingTable.Data4Str

ActivityInstanceId

映射到 ASStagingTable-> 列:ASStagingTable.Data5Str

ActivityTypeName

映射到 ASStagingTable-> 列:ASStagingTable.Data6Str

状态

映射到 ASStagingTable-> 列:ASStagingTable.Data2Str

视图:ASWfInstances

此视图经过了更新,包含活动 WF 的实例状态。此视图按照 ASWfEvents 视图进行了更新,但在同一事务中。当向 ASWfEvents 视图添加了某个事件之后,此视图需要随 ASWfEvents 视图中插入的值同时更新,因此在同一事务中。每个工作流实例只占一行。将每个事件添加到 WFEvents 表都会修改工作流实例的行。

列名称 填充的数据

ID

此条目的唯一 ID

WorkflowInstanceId

映射到 ASStagingTable-> 列:ASStagingTable.Data1UniqueId。仅为唯一实例添加一次。

LastEventSourceId

最后一个修改此行的 eventSourceID。映射到 ASWfEvents.EventSourceId。

LastEventStatus

映射到 ASWfEvents 视图-> 列:ASWfEvents.State。仅在状态不等于“Deleted”或“Unloaded”时插入/更新。如果状态 == “Deleted”或“Unloaded”,则不在此表中添加行。对于事件 101,该值为“UnhandledException”。

StartTime

映射到 ASWfEvents-> 列:ASWfEvents.TimeCreated。这是具有此工作流实例(由 ASWfEvents.WorkflowInstanceId 代表)最低 RecordNumber 的事件的 TimeCreated。

LastModifiedTime

映射到 ASWfEvents-> 列:ASWfEvents.TimeCreated。在状态更改时更新。还请注意,要更新此列,WorkflowRecord 的 RecordNumber 要大于前一个更新此值的 RecordNumber。(可能的实现是:保留一个临时表,该临时表将此表中的实例 ID 从对其进行修改的 ASWfEvents 映射到工作流事件记录的 RecordNumber。当新事件尝试为此实例更新此行时,请检查 RecordNumber 是否大于最后一次修改的 RecordNumber。)

CurrentDuration

运行工作流的持续时间 (LastModifiedTime – StartTime)

ExceptionCount

WF 遇到的例外数量。此 WF 实例(由实例 ID ASWfEvents 代表)遇到的事件 101 的计数。WorkflowInstanceId。

LastAbortedTime

来自事件 ID 101 或事件 ID 102 的 ASWfEvents 视图的最新时间。对于由 ASWfEvents.WorkflowInstanceId 代表的工作流实例。

有关此事件的详细信息,请参阅 103 - ActivityStateRecord (https://go.microsoft.com/fwlink/?LinkId=187226)。

事件 ID 214

除了常见的列之外,事件收集服务 还将为事件 ID 214 填充 ASStagingTable 表中的以下列。

事件数据 ASStagingTable 列

MethodName

Data1Str

持续时间

Data1Int

来自事件 214 的数据将填充以下视图:ASEventSources、ASWcfEvents 和 ASEvents。常见映射中指定了数据从 ASStagingTable 到常见视图 ASEventSources 和 ASEvents 的映射。

查看 ASWcfEvents

仅指定此视图中为此事件填充的列。其他所有列都具有 NULL 值。由事件特别填充的值以粗体指定。

ColumnName 填充的数据

ID

生成的唯一 ID

EventTypeId

214(映射到:ASStagingTable-> 列 EventTypeId)

EventType

“OperationCompleted”

EventVersion

0

EventSourceId

ASEventSources 视图中的 ID

ProcessId

映射到 ASStagingTable-> 列:ProcessId

TraceLevelId

映射到 ASStagingTable-> 列:TraceLevelId

TraceLevel

依赖于 TraceLevelId:0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose”

E2EActivityId

映射到 ASStagingTable-> 列:ASStagingTable.E2EActivityId

TimeCreated

映射到 ASStagingTable-> 列:ASStagingTable.TimeCreated

OperationName

映射到 ASStagingTable-> 列:ASStagingTable.Data1Str

持续时间

映射到 ASStagingTable-> 列:ASStagingTable.Data1Int

有关此事件的详细信息,请参阅 214 - OperationCompleted (https://go.microsoft.com/fwlink/?LinkId=187225)。

事件 ID 219

除了常见的列之外,事件收集服务 还将为事件 ID 214 填充 ASStagingTable 表中的以下列。

事件数据 ASStagingTable 列

ExceptionTypeName

Data1Str

ExceptionToString

Data1MaxStr

来自事件 219 的数据将填充以下视图:ASEventSources、ASWcfEvents 和 ASEvents。常见映射中指定了数据从 ASStagingTable 到常见视图 ASEventSources 和 ASEvents 的映射。

查看 ASWcfEvents

仅指定此视图中为此事件填充的列。其他所有列都具有 NULL 值。由事件特别填充的值以粗体指定。

ColumnName 填充的数据

ID

生成的唯一 ID

EventTypeId

219(映射到:ASStagingTable-> 列 ASStagingTable .EventTypeId)

EventType

“ServiceException”

EventVersion

0

EventSourceId

ASEventSources 视图中的 ID这是 ASWcfEvents 中的事件到 ASEventSources 视图的映射。

ProcessId

映射到 ASStagingTable-> 列:ASStagingTable.ProcessId

TraceLevelId

映射到 ASStagingTable-> 列:ASStagingTable.TraceLevelId

TraceLevel

依赖于 TraceLevelId:0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose”

E2EActivityId

映射到 ASStagingTable-> 列:ASStagingTable.E2EActivityId

TimeCreated

映射到 ASStagingTable-> 列:ASStagingTable.TimeCreated

ExceptionMessage

映射到 ASStagingTable-> 列:ASStagingTable.Data1MaxStr

ExceptionTypeName

映射到 ASStagingTable-> 列:ASStagingTable.Data1Str

有关此事件的详细信息,请参阅 219 - ServiceException (https://go.microsoft.com/fwlink/?LinkId=187230)。

  2012-03-05