当前位置: 首页 > 知识库问答 >
问题:

Quarkus:MDC没有在Azure应用洞察中公开

陆安国
2023-03-14

如何使MDC信息显示在Azure Insights中。目前我只在跟踪日志中看到它。

    null
...
import org.slf4j.MDC;


@Provider
@ApplicationScoped
public class DemoRequestFilter implements ContainerRequestFilter {

    private static final String DEMO_TAG = "demoTag";

    @Override
    public void filter(final ContainerRequestContext context) {
        MDC.put(DEMO_TAG, "myDemoTag");
  
    }

}

application.yaml

log:
    console:
      format: "%d{HH:mm:ss} %-5p [%c{2.}] (%t) requestDemoTag=[%X{demoTag}]  %s%e%n"

谢谢你的帮助

共有1个答案

范轶
2023-03-14

你的意思是你只能在这个地方看到MDC信息吗?你的目标是什么?

============================================================================================

我将在项目上分享我的配置。如果我们需要将appinsights java代理添加到我们的程序中,我们可以遵循本教程。

首先,下载教程中提到的jar文件,您可以将其保存在您的工作区中,我将其存储在路径:d:/applicationinsights-agent-3.0.2.jar中

然后我在与jar文件相同的文件夹中创建了一个文件'ApplicationInsights.json'。在json文件中,我设置了azure application insights实例的连接字符串。创建一个新的应用程序,然后我可以在概述页面中获得连接字符串。

接下来,我需要设置jvm参数。我使用了sts作为ide,因此菜单栏->窗口->首选项->Java->安装的JRES->双击您使用的->默认vm参数设置vaule-XMX512M-XX:+useg1gc-javaagent:d:/applicationinsights-agent-3.0.2.jar

添加MDC代码并启动程序,然后我可以在我的答案顶部得到结果。

如果你需要将你的程序部署到azure app service中,官方文件说agent appinsights不支持app service,但我找到了另一个答案,证明这个功能是可以的。上面写着

为应用程序服务启用应用程序洞察,指定应用程序洞察实例并添加此应用程序设置;XDT_MicrosoftApplicationInsights_Java->1

让我们看看我这边的log4j2配置。

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL">
    <Properties>
        <Property name="pattern">%d{HH:mm:ss} %-5p [%c{2.}] (%t) requestDemoTag=[%X{demoTag}]  %s%e%n</Property>
        <Property name="logPath">logs</Property>
    </Properties>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${pattern}"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>
 类似资料:
  • 有没有人有关于如何将Azure应用程序洞察集成到作为控制台应用程序构建的Azure WebJob的示例或文章的链接?

  • 我有一个.NET Core2 MVC web应用程序,它使用了Azure上的应用程序洞察。我还配置了nlog来跟踪应用程序洞察。一切都在我的pc上运行,因为我在azure上发现了异常和跟踪,但是当我部署应用程序并在azure上使用它时,它不会在应用程序洞察上生成任何事件(我只在日志文件中发现了事件)。 因此,我尝试在控制器中创建一个TelemetryClient实例,它甚至可以在部署的实例中工作:

  • 从最近开始,Azure功能开始强制用户使用应用程序洞察来捕获调用日志,而不是使用以前显示20个最近调用的简单系统。 我的旧功能应用程序,没有使用应用程序洞察,仍然工作良好,并显示日志正确。 对于新功能应用程序,我如何禁用应用程序洞察并查看没有它的调用日志?

  • 我想通过创建遥测初始化器为azure函数定制application insight配置。我当前的工作范围是确定一种方法,将从HTTP触发的azure函数发送的消息与另一个HTTP触发的azure函数相关联,为此,我试图遵循dzimchuk.net上的帮助。但是,我在我的azure函数项目中没有看到ApplicationInsights.config。我找到了包含app insight配置文件的Gi

  • 在运行.NET Core3.1控制台应用程序时,我正在尝试获取应用程序的见解,以便在azure批处理作业/任务中工作。 https://docs.microsoft.com/en-us/Azure/Batch/Monitor-Application-Insights https://docs.microsoft.com/en-us/Azure/Azure-monitor/app/worker-se

  • 我在Azure中有10个Web应用程序。但是我不能为他们配置应用程序洞察,因为我还没有用他们保存项目。当我在VisualStudio中创建新的WebApp时,可以为应用程序添加应用程序洞察并发布到Azure。但是当我通过FTP URL从Visual Studio连接到现有的Azure WebApp时--我无法添加用于监视的应用程序洞察。如何配置应用程序洞察来监视我的10个现有应用程序?还是有别的办