跟踪遥测未显示在Azure门户

时间:2016-11-07 14:27:20

标签: azure azure-application-insights telemetry

我有一个在本地IIS服务器上运行的MVC应用程序。我在Azure上有一个现有的App Insights资源,我希望从我的应用程序中显示Telemetry。但是,跟踪消息未显示在Azure门户上。我已将ApplicationInsights添加到我的项目中,指定了Telemetry应该在ApplicationInsights.config中显示的资源,还编写了我在代码中使用的TelemetryWrapper,以发送实际的遥测信息和错误消息。

我通过包装器初始化遥测服务:

  TelemetryWrapper.InitializeTelemetry("InstrumentationKey", "ApplicationName");

并从包装器发送消息

  TelemetryWrapper.TelemetryInfo(requestId, action, userId, ultimateId, systemId, payload);

TelemetryWrapper概述:

  public static void InitializeTelemetry(string apiKey, string appId)
    {
       bool postBackground = true;
        _telemetry = new TelemetryHelper(apiKey, appId, false) { PostBackground = postBackground };
    }

  public static void TelemetryInfo(Guid requestId, string action, Guid userId, string ultimateId, string systemId,
        string payload)
    {
      var telem = CreateInstance(requestId, action, ultimateId, userId, systemId, payload);
      _telemetry.Info(telem);
    }

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

需要更多信息。你所展示的只是你的代码,这里没有AppInsights代码可供查看。所以可能是你的TelemetryHelper类没有正确设置ikey,ikey可能无效。

但是:我突然想到的是您在代码中使用了apiKeyappId这两个词。

这两件事在应用程序见解中具有特定含义,但那是来自AI API服务读取数据(并且在该上下文中的apiKey是您可以认为是秘密的东西,就好像有人拥有这些钥匙,他们可以阅读你所有的数据!)我不确定你是否在这里使用它们,但是马上就跳出来了。

用于发送数据到应用程序洞察的不同的事物,“Instrumentation Key”或iKey。您是否可以切换这些东西并尝试使用AI appId和apiKey代替iKey?

检查的一种方法是在本地使用fiddler或其他工具来监视出站http流量。将其配置为解密https,并监视对您的遥测所在的dc.services.visualstudio.com的出站呼叫。如果您有外拨电话,那么它至少会尝试发送您的遥测。如果这些调用失败,则响应可能会告诉您正在使用的iKey无效,如果是这种情况。

您不需要