gpt4 book ai didi

azure - 诊断数据需要很长时间才能记录在 Windows Azure 中

转载 作者:行者123 更新时间:2023-12-03 05:10:25 25 4
gpt4 key购买 nike

我编写了一小段代码,通过单击不同的按钮,将收集不同类型的日志记录数据。但是,当我运行这段代码时,通过服务器资源管理器检查时通常不会反射(reflect)记录的数据,即使记录了这些数据,也可以在很长一段时间(15-20 分钟)后查看。我在编写这段代码时是否犯了任何错误。这段代码如下::

    DiagnosticMonitorConfiguration diagMonitorConfiguration;
RoleInstanceDiagnosticManager roleInstanceDiagnosticManager;
protected void Page_Load(object sender, EventArgs e)
{


// Get the default initial configuration for DiagnosticMonitor.
diagMonitorConfiguration = DiagnosticMonitor.GetDefaultInitialConfiguration();

// Configures the transfer period for basic windows azure logs
diagMonitorConfiguration.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(10);

// Configures the log type to be Verbose
diagMonitorConfiguration.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;

// Start the diagnostics monitor
//DiagnosticMonitor.Start(CloudStorageAccount.DevelopmentStorageAccount, diagConfig);

//CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));

CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId, RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);

//DiagnosticMonitorTraceListener tmpListener = new DiagnosticMonitorTraceListener();
//System.Diagnostics.Trace.Listeners.Add(tmpListener);
}

// Used to trace custom warning messages
protected void btnWarning_Click(object sender, EventArgs e)
{
// tracing user message as a warning
System.Diagnostics.Trace.TraceWarning("WARNING ENCOUNTERED :" + TextBoxName.Text);
}

// tracing custom error messages
protected void btnError_Click(object sender, EventArgs e)
{
// To log the user message as an error
.......TraceError("ERROR ENCOUNTERED :" + TextBoxName.Text);
}

// tracing custom information messages
protected void btnInformation_Click(object sender, EventArgs e)
{
// To log the user message as mere information
.........TraceInformation("INFORMATION SENT :" + TextBoxName.Text);
}

// used to enable diagnostic infrastructure logs to be collected
protected void btnEnableInfrastructure_Click(object sender, EventArgs e)
{
// configuring the type and transfer period for the Infrastructure logs
diagMonitorConfiguration.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = some filter;
diagMonitorConfiguration.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = SOME TIME PERIOD
// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);

}

// used to enable crash dumps for the application
protected void btnEnableCrashDumps_Click(object sender, EventArgs e)
{
//enabling crash dumps
CrashDumps.EnableCollection(true);

// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}

// used to enable the collection windows event logs
protected void btnEnableEventLogs_Click(object sender, EventArgs e)
{
//Configuring the Windows Event logs
diagMonitorConfiguration.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose;

// two types of events, application and system data are logged
diagMonitorConfiguration.WindowsEventLog.DataSources.Add("some source");

// the time interval is configured as 5 seconds
diagMonitorConfiguration.WindowsEventLog.ScheduledTransferPeriod = some time period;

// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}

protected void btnEnablePerfCounters_Click(object sender, EventArgs e)
{

// configuring the performance counter data to be collected. processor time is collected
diagMonitorConfiguration.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
THE REQD PARAMETERS
});

// similarly available memory data is also logged
diagMonitorConfiguration.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
THE REQD PARAMETERS
});

// the scheduled time transfer is configured to 5seconds
diagMonitorConfiguration.PerformanceCounters.ScheduledTransferPeriod = some time period;

//DiagnosticMonitor.Start(CloudStorageAccount.DevelopmentStorageAccount, diagConfig); USED PREVIOUSLY

// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}
}

最佳答案

IIRC,1 分钟似乎是最短传输时间。完全不确定如果将其设置为较小的值会发生什么。您可以检查生成的控制文件(在 wad-control 容器中)并查看实际设置的传输速率。请记住,这是一个异步过程(记录、本地缓冲,然后传输)。如果您想要实时的东西,您需要调整跟踪监听器以直接记录到表或 blob(或使用服务总线跟踪)。 Check the training kit on debugging了解如何做到这一点。

关于azure - 诊断数据需要很长时间才能记录在 Windows Azure 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6956300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com