2017-06-22 96 views
0

我們希望使用Azure Application Insights監視我們的應用程序之一。它與網頁API一個ASP.Net MVC 4應用2.我在Azure中創建了一個新的應用程序洞察資源,我已經安裝了以下的NuGet包到項目:應用程序洞察使用ASP.Net MVC和Web Api的Live Metrics

<package id="Microsoft.ApplicationInsights" version="2.3.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.7" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.3.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.3.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.TraceListener" version="2.2.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.Web" version="2.3.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.3.0" targetFramework="net462" /> 
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.3.0" targetFramework="net462" /> 

的ApplicationInsights.config外觀如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> 
<!-- This key is for Application Insights resource 'PlanningTool.Web' in resource group 'Default-ApplicationInsights-CentralUS' --> 
<InstrumentationKey>Our key</InstrumentationKey> 
<TelemetryModules> 
    <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector" /> 
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector"> 
    <!-- 
    Use the following syntax here to collect additional performance counters: 

    <Counters> 
     <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" /> 
     ... 
    </Counters> 

    PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName 

    NOTE: performance counters configuration will be lost upon NuGet upgrade. 

    The following placeholders are supported as InstanceName: 
     ??APP_WIN32_PROC?? - instance name of the application process for Win32 counters. 
     ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters. 
     ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters. 
    --> 
    </Add> 
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector" /> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web"> 
    <Handlers> 
     <!-- 
     Add entries here to filter out additional handlers: 

     NOTE: handler configuration will be lost upon NuGet upgrade. 
     --> 
     <Add>System.Web.Handlers.TransferRequestHandler</Add> 
     <Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add> 
     <Add>System.Web.StaticFileHandler</Add> 
     <Add>System.Web.Handlers.AssemblyResourceLoader</Add> 
     <Add>System.Web.Optimization.BundleHandler</Add> 
     <Add>System.Web.Script.Services.ScriptHandlerFactory</Add> 
     <Add>System.Web.Handlers.TraceHandler</Add> 
     <Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add> 
     <Add>System.Web.HttpDebugHandler</Add> 
    </Handlers> 
    </Add> 
    <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web" /> 
</TelemetryModules> 
<TelemetryProcessors> 
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" /> 
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel"> 
    <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond> 
    </Add> 
</TelemetryProcessors> 
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" /> 
<!-- 
    Learn more about Application Insights configuration with ApplicationInsights.config here: 
    http://go.microsoft.com/fwlink/?LinkID=513840 

    Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file. 
--> 
<TelemetryInitializers> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web"> 
    <Filters>search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client</Filters> 
    </Add> 
    <Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web" /> 
    <Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web" /> 
</TelemetryInitializers> 
</ApplicationInsights> 

但是Application Insights確實沒有顯示實時指標或服務器請求。

我試過通過測試程序訪問App Insights,這些程序正在運行,所有數據(實時指標,請求等)都正確顯示: using Microsoft.ApplicationInsights;使用系統的 ;

namespace AppInsightsTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Application Insights Test"); 
      var e = new Exception("This is a App Insights test"); 
      var ai = new TelemetryClient(); 
      ai.TrackException(e); 
      Console.WriteLine("Finished..."); 
      Console.ReadKey(); 
     } 
    } 
} 

如何在MVC/Web Api項目中配置App Insights以使其正常工作。

在此先感謝。

更新與截圖形成的Visual Studio(2017年)和Azure的門戶網站: VS: enter image description here

Azure的門戶網站(德文): enter image description here

+0

是實況量度只是不工作的事情嗎?你看到常規遙測(請求,依賴,事件,例外)嗎? 我在配置中看到的一件奇怪的事情是QuickPul​​seTelemetryModule被提及兩次,一旦正確,並且一次位於標記內。嘗試刪除第二次出現,看看它是否改變了行爲。 – tokaplan

+0

@tokaplan:感謝QuickPul​​seTelemetryModule的提示。我已將其刪除。而在Application Insights中,我根本沒有看到任何東西,也沒有請求等。我現在已經建立了一個基於Visual Studio MVC模板的最小示例。我已經通過NuGet安裝了所有的應用程序見解包,但是這個項目也不會發送任何遙測數據。 – Fabian

回答

0

我添加應用程序洞察到我現有的MVC項目與以下步驟可以獲得實時指標流和服務器請求指標,請參閱它。

  • 右鍵單擊在Solution Explorer Web應用程序項目,並選擇Add> 應用洞察遙測...,然後註冊 應用洞察應用程序和配置應用見解。 (這將有助於我們安裝應用程序洞察相關的包和配置項目。)

  • 打開網頁生成一些遙測

  • 在Azure門戶網站,我可以看到在線的服務器和動態度量流的數量。

    enter image description here

  • 添加圖表顯示服務器請求

    enter image description here

    enter image description here

此外,您還可以參考this article顯示如何配置ASP.NET web應用程序將遙測發送到Azure應用程序見解ervice。

+0

在Visual Studio中,我可以看到請求等(請參閱我的問題的更新)。但是在天藍色的門戶裏,什麼都沒有。我看不到任何在線服務器。我在哪裏可以更改圖表詳細信息?當我使用我的測試控制檯應用程序時,我能夠看到實時指標以及其他任何內容。 – Fabian

+0

在* Metrics Explorer *刀片下,您會在網頁頂部找到[添加圖表]按鈕。 –

+0

我已經更改了圖表設置,但根本沒有記錄請求。我也重做了我們鏈接中描述的設置。 – Fabian

0

您的Azure應用程序洞察資源未鏈接到您的Web應用程序。

在Azure門戶中找到您的Application Insights資源並導航到Configure-> Properties。

在那裏您會看到「INSTRUMENTATION KEY」。

複製該關鍵看你applicationInsights.config部分:

<InstrumentationKey>Our key</InstrumentationKey> 
+0

我已經在這裏刪除了我們真實的密鑰。本地我輸入了正確的密鑰。 – Fabian

+0

好的。在您的Azure門戶中,在您的Web應用程序屬性中,您能看到Application Insights選項嗎?你有沒有配置它來使用你的應用程序見解資源? –