我有一个队列侦听器,它在收到消息后会进行多个REST API调用。我想使用Application Insights将这些API调用作为依赖项进行跟踪。有什么方法可以像在ASP.NET Core项目中那样自动完成它?
我尝试了类似于以下代码的操作,但它不会自动记录依赖项。
using (var operation = ApplicationLogging.TelemetryClient.StartOperation<RequestTelemetry>("Test"))
{
//Rest Calls
}
答案 0 :(得分:2)
标准依赖性跟踪模块会自动发现外部依赖性,例如数据库和REST API。但是您可能希望以相同的方式处理一些其他组件。您可以使用标准模块所使用的相同TrackDependency API编写发送依赖项信息的代码。
使用TrackDependency调用来跟踪对外部代码的响应时间和调用成功率。结果显示在门户网站的依存关系图中。
C#中的代码段
var success = false;
var startTime = DateTime.UtcNow;
var timer = System.Diagnostics.Stopwatch.StartNew();
try
{
success = dependency.Call();
}
finally
{
timer.Stop();
telemetry.TrackDependency("myDependency", "myCall", startTime, timer.Elapsed, success);
// With the Latest SDK follow the below format:
// TrackDependency (string dependencyTypeName, string dependencyName, string data, DateTimeOffset startTime, TimeSpan duration, bool success);
}
希望这会有所帮助。