【问题标题】:Get TraceTelemetry to appear in the Application Insights Timeline获取 TraceTelemetry 以显示在 Application Insights 时间轴中
【发布时间】:2018-10-05 19:27:22
【问题描述】:

我有一个实现IDisposable 的小型分析类,它在构造函数中启动秒表并在Dispose() 中停止它,并使用TelemetryClient.TrackTrace 将经过的时间(以毫秒为单位)记录到Azure。它工作正常,但我希望它出现在 Azure 门户的 Application Insights 页面的时间轴上。如果我使用TelemetryClient.TrackDependency,我可以让它出现,但由于它不是依赖项,我不想使用它。有没有办法让它出现在时间线上?我尝试将经过的时间添加为一个名为 duration 的属性,但这不起作用。

我不知道它是否有帮助,但分析器的简化版本看起来像这样:

public class Profiler : IDisposable
{
    private readonly Stopwatch _stopwatch;
    private readonly ILogger _logger;
    private readonly string _name;
    private readonly DateTimeOffset _timestamp;

    public Profiler(string name)
    {
        _logger = LogFactory.GetLogger();

        _stopwatch = Stopwatch.StartNew();
        _timestamp = DateTimeOffset.UtcNow;
        _name = name;
    }

    public static Profiler Step(string name)
    {
        return new Profiler(name);
    }

    public void Dispose()
    {
        var telemetryClient = new TelemetryClient();

        _stopwatch.Stop();

        var message = $"Step - {_name} {_stopwatch.ElapsedMilliseconds} ms";

        var traceTelemetry = new TraceTelemetry(message, SeverityLevel.Verbose)
        {
            Timestamp = _timestamp
        };

        traceTelemetry.Properties.Add("Elapsed Milliseconds", $"{_stopwatch.ElapsedMilliseconds}");

        telemetryClient.TrackTrace(traceTelemetry);
    }
}

【问题讨论】:

    标签: c# asp.net-web-api azure-application-insights


    【解决方案1】:

    时间轴视图主要显示包含时间戳和持续时间作为基本属性(但不作为自定义属性)的事件类型,例如 Request、Dependency(随时间显示)或带有时间戳的关键事件,例如异常(显示为时间点) )。

    轨迹和事件在此视图中显示为平面有序列表,而不是时间线(如果您切换到平面列表视图)。

    考虑到当前的实现(除非更改),您对使用 Dependencies 的建议是在您的案例中实现时间线视图的最简单方法之一。

    您可以在这里稍微玩一下定义 - 使用请求类型进行总体操作,使用依赖关系作为方法,使用异常以防失败。这应该很好地拟合模型并提供良好的时间线表示。

    【讨论】:

    • 我们使用 ILSpy 查看当前实现并注意到您在此处所说的内容,请求和依赖项有自己的属性,其中持续时间为 1。我不想使用依赖,但是是的,那会起作用。因此,除非他们更改 SDK 和 Azure 门户上的实际实现,否则这将是正确的答案。
    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2018-11-15
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多