在没有.NET的Windows Azure中启用诊断

在没有.NET的Windows Azure中启用诊断,azure,azure-diagnostics,Azure,Azure Diagnostics,我正在使用WindowsAzure来主持我的python项目,我正在尝试启用诊断,但没有取得好的结果 由于我使用的是python而不是.NET,所以我可以实际配置它的唯一方法是通过配置文件 下面是我的配置文件: 服务定义.csdef ... <Imports> <Import moduleName="Diagnostics" /> </Imports> ... 。。。 ... ServiceConfiguration.Cloud.cscfg ...

我正在使用WindowsAzure来主持我的python项目,我正在尝试启用诊断,但没有取得好的结果

由于我使用的是python而不是.NET,所以我可以实际配置它的唯一方法是通过配置文件

下面是我的配置文件:

服务定义.csdef

...
<Imports>
    <Import moduleName="Diagnostics" />
</Imports>
...
。。。
...
ServiceConfiguration.Cloud.cscfg

....
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<my-account-name>;AccountKey=<my-account-key"/>
....
。。。。
....
诊断。wadcfg

<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"
      configurationChangePollInterval="PT10M"
      overallQuotaInMB="1200">

   <DiagnosticInfrastructureLogs bufferQuotaInMB="100"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M" />

   <Logs bufferQuotaInMB="200"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M" />

   <Directories bufferQuotaInMB="600" 
      scheduledTransferPeriod="PT5M">

      <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="200" />
      <FailedRequestLogs container="wad-frq" directoryQuotaInMB="200" />
      <IISLogs container="wad-iis" directoryQuotaInMB="200" />
   </Directories>
   <WindowsEventLog bufferQuotaInMB="200"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M">

      <DataSource name="System!*" />
   </WindowsEventLog>
</DiagnosticMonitorConfiguration>

在Diagnostics Manager中,我实际上看不到任何数据


谢谢。

请问diagnostics.wadcfg在哪里?对于常规工作者角色,diagnostics.wadcfg必须位于根文件夹中,并且由于项目中没有工作者角色模块,因此角色文件夹的体系结构位置非常重要。确保Python应用程序中的文件夹结构与普通工作者角色完全相同,然后将diagnostics.wadcfg放到角色根文件夹中。(将该信息添加回您的问题以进行验证)

您是否看到在*.diagnostics.ConnectionString中配置的Windows Azure Blob存储中创建了诊断配置XML。这是一项检查,表明Azure角色中的诊断组件能够读取提供的配置,并且可以在目标blob存储中创建配置XML(相同的Azure存储将用于写入日志Azure表存储)。请核实

最后,您的diagnostics.wadcfg还需要一些工作。由于这是一个非.net工作角色,您已经配置了IIS日志记录(您真的在工作角色中运行IIS吗?),并且还安排了系统事件日志以传输“仅限警告”,以便在没有警告的情况下传输。最后,日志传输时间设置为5分钟,这在测试期间很长

我的建议如下,以测试诊断是否正常:

  • 如果您没有运行Azure VM的IIS,请删除IIS日志
  • 从系统中替换事件日志数据源!*到应用程序!*并将过滤器设置为信息级别
  • 将日志传输时间更改为少于一分钟
  • 使用连接到实际Azure存储的诊断连接字符串在开发结构中运行完全相同的代码
  • 在您的计算机中添加自定义事件日志,查看它们是否在时间限制内传输到Azure表存储并创建特定表

以上内容将帮助您解决问题

请问diagnostics.wadcfg在哪里?对于常规工作者角色,diagnostics.wadcfg必须位于根文件夹中,并且由于项目中没有工作者角色模块,因此角色文件夹的体系结构位置非常重要。确保Python应用程序中的文件夹结构与普通工作者角色完全相同,然后将diagnostics.wadcfg放到角色根文件夹中。(将该信息添加回您的问题以进行验证)

您是否看到在*.diagnostics.ConnectionString中配置的Windows Azure Blob存储中创建了诊断配置XML。这是一项检查,表明Azure角色中的诊断组件能够读取提供的配置,并且可以在目标blob存储中创建配置XML(相同的Azure存储将用于写入日志Azure表存储)。请核实

最后,您的diagnostics.wadcfg还需要一些工作。由于这是一个非.net工作角色,您已经配置了IIS日志记录(您真的在工作角色中运行IIS吗?),并且还安排了系统事件日志以传输“仅限警告”,以便在没有警告的情况下传输。最后,日志传输时间设置为5分钟,这在测试期间很长

我的建议如下,以测试诊断是否正常:

  • 如果您没有运行Azure VM的IIS,请删除IIS日志
  • 从系统中替换事件日志数据源!*到应用程序!*并将过滤器设置为信息级别
  • 将日志传输时间更改为少于一分钟
  • 使用连接到实际Azure存储的诊断连接字符串在开发结构中运行完全相同的代码
  • 在您的计算机中添加自定义事件日志,查看它们是否在时间限制内传输到Azure表存储并创建特定表

以上内容将帮助您解决问题

非常感谢。我的部署脚本按预期创建文件夹结构,除此之外一切正常。My diagnostics.wadcfg文件位于根文件夹下,与web.conf文件位于同一级别。我将再次检查并更改诊断文件,如您所说,我会让您知道。再次感谢!更新:我在我的Windows Azure Blob存储中看不到任何诊断配置XML,这意味着Azure找不到该文件或该文件未正确写入。我尝试将diagnostics.wadcfg移动到WebRole/bin文件夹中,但没有任何更改。此外,我还尝试按照您的建议调整值。我实际上使用的是IIS,我对系统日志感兴趣,因为我的实例似乎表现得很奇怪。没什么帮助。非常感谢。我的部署脚本按预期创建文件夹结构,除此之外一切正常。My diagnostics.wadcfg文件位于根文件夹下,与web.conf文件位于同一级别。我将再次检查并更改诊断文件,如您所说,我会让您知道。再次感谢!更新:我在我的Windows Azure Blob存储中看不到任何诊断配置XML,这意味着Azure找不到该文件或该文件未正确写入。我尝试将diagnostics.wadcfg移动到WebRole/bin文件夹中,但没有任何更改。此外,我还尝试按照您的建议调整值。我实际上使用的是IIS,我对系统日志感兴趣,因为我的实例似乎表现得很奇怪。没有任何帮助。