无法让嵌套的 StartOperation 显示在过滤器下拉列表中

Can't get nested StartOperation to show up in the filter dropdown

我有一个 ASP.NET 核心应用程序配置为登录到 Application Insights。我还有这种方法可用于在 Application Insights 时间线内创建依赖项:

private void TestLogOperations()
{
    using (IOperationHolder<DependencyTelemetry> topHolder = telemetryClient.StartOperation<DependencyTelemetry>("TopOperation"))
    {
        logger.LogWarning("top holder log");

        using (IOperationHolder<DependencyTelemetry> innerHolder = telemetryClient.StartOperation<DependencyTelemetry>("InnerOperation"))
        {
            logger.LogWarning("inner holder log");
        }
    }
}

操作正确嵌套在时间轴中:

但是当我想按依赖项过滤时(例如我只想过滤 "InnerOperation" 内的日志),它们不会出现在下拉列表中,只显示顶部请求操作 (localhost:5000 | POST User/Post):

我知道可以按依赖项进行过滤,因为我曾处理过这样做的项目,但我该怎么做?

根据我的测试,这是 DependencyTelemetry.

的默认行为

如果您想在 post 中显示您想要的内容,您应该将 DependencyTelemetry 更改为 RequestTelemetry

测试代码如下:

        private void TestLogOperations()
        {
            using (IOperationHolder<RequestTelemetry> topHolder = telemetryClient.StartOperation<RequestTelemetry>("TopOperation1"))
            {
                //telemetryClient.TrackTrace("top holder log 111");
                _logger.LogWarning("top holder log 1");

                using (IOperationHolder<RequestTelemetry> innerHolder = telemetryClient.StartOperation<RequestTelemetry>("InnerOperation1"))
                {
                    //telemetryClient.TrackTrace("inner holder log 1 111");
                    _logger.LogWarning("inner holder log 1");
                }
            }
        }

而测试结果: