监控数据库事件映射
本主题包含对于由 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 列中存储的值提取 name
和 value
。
查看 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