【问题标题】:Setting ETW event level in service fabric tracing在服务结构跟踪中设置 ETW 事件级别
【发布时间】:2016-07-13 16:40:22
【问题描述】:

当您使用 Visual Studio 创建服务结构应用程序项目时,您会获得 EventSource(称为 ServiceEventSource)的实现。例如,这里是方法实现之一:

    private const int ServiceRequestStopEventId = 6;
    [Event(ServiceRequestStopEventId, Level = EventLevel.Informational, Message = "Service request '{0}' finished", Keywords = Keywords.Requests)]
    public void ServiceRequestStop(string requestTypeName)
    {
        WriteEvent(ServiceRequestStopEventId, requestTypeName);
    }

如您所见,此方法具有 Event 属性,其中设置了 Level 参数。

  1. 我应该在哪里设置 Level 参数值?
  2. 我认为设置此级别的参数值将显示生成了多少输​​出。我说的对吗?
  3. 我可以在运行时随意修改这个 Level 参数值吗?

【问题讨论】:

    标签: trace azure-service-fabric azure-diagnostics


    【解决方案1】:
    1. 您只能在Event 属性中设置Level
    2. 生成的输出量取决于日志的使用者。如果没有消费者或侦听器,则不会在任何级别生成事件。我们可以说该级别取决于输出量,但前提是存在此类事件的消费者。
    3. 不,您不能动态修改关卡。为此,您可以使用两个具有相同签名和不同级别的方法。

    您可以找到有关 ETW 及其配置here 的所有有趣信息。

    【讨论】:

    【解决方案2】:

    该代码仅指示有关它生成的 ETW 事件的信息。设置级别指示事件将被放置在哪个类别中。它不配置是否输出事件。记录工具确定它是否被记录。您通常可以在运行时在日志工具中更改该级别。

    一些有用的链接:

    1. 配置 WAD: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostics-how-to-setup-wad/

    2. 使用弹性搜索 https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostic-how-to-use-elasticsearch/

    3. 使用 OMS 分析事件。 https://azure.microsoft.com/en-us/documentation/articles/log-analytics-service-fabric/

    4. 使用服务探查器(参与者) https://www.azureserviceprofiler.com/

    【讨论】:

    • 我了解该属性只是设置写入事件的级别。我还查看了 WAD 配置。我不是实时查看日志数据,而是仅在一段时间后查看。我确实明白这是一个发布/订阅架构。在 WAD 文章中,我没有看到任何会捕获事件的关卡信息。特别是,我查看了“IaaSDiagnostics”部分。它没有任何级别信息。此外,服务分析器似乎仅适用于 azure Web 应用程序,而不适用于托管在 Service Fabric 集群中的微服务。
    猜你喜欢
    • 2019-02-25
    • 2019-06-03
    • 2020-05-23
    • 1970-01-01
    • 2023-03-04
    • 2022-08-09
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多