我在C#控制器的ASP.NET Core應用程序中設置了應用程序洞察,它正在記錄頁面查看,響應時間等基本數據。但是我想創建一些自定義事件和日誌這些也是,但是我無法將他的自定義事件顯示在Azure門戶中。目前我正在使用Application Insights的免費版本。應用程序洞察不記錄自定義事件
的是非常簡單的
var appInsights = new TelemetryClient();
appInsights.TrackEvent(eventName, properties);
凡eventName的是包含我想跟蹤和屬性自定義事件的字符串是一個字典來跟蹤一些附加屬性。
當我運行應用程序並敲了幾下這些行之後,我可以到天藍色的門戶並查看基本信息,但是當我執行搜索時,它說有0個自定義事件並搜索任何按名稱的自定義事件不會返回任何結果。
我有使用它是
Tracker.TrackEvent("Visit HomePage", User.Identity.Name);
編輯有如下
public class ApplicationInsightsTracker : IApplicationTracker
{
private readonly TelemetryClient AppInsights = new TelemetryClient();
public void TrackEvent(string eventName, string userName, Dictionary<string, string> properties = null)
{
AppInsights.Context.User.AccountId = userName;
TrackEvent(eventName, properties);
}
public void TrackRequest(string eventName, string userName, TimeSpan elapsed,
Dictionary<string, string> properties = null)
{
AppInsights.Context.User.AccountId = userName;
TrackEvent(eventName, properties);
AppInsights.TrackRequest(eventName, DateTimeOffset.Now, elapsed, "200", true);
AppInsights.Flush();
}
private void TrackEvent(string eventName, IDictionary<string, string> properties = null)
{
AppInsights.TrackEvent(eventName, properties);
AppInsights.Flush();
}
}
然後我的一個簡單的例子,在它的遙測東西類:上述事件是工作,但下方一個不是,它根本不記錄這一個。這會調用TrackRequest和TelementryClient上的TrackEvent,但我根本沒有看到這些。
Tracker?.TrackRequest("Drill Report", userName, stopwatch.Elapsed,
new Dictionary<string, string>
{
{ "DrillBy", report.DrillBy == null ? "None" : report.DrillBy.FriendlyName }
});
我稍微回顧一下。我看到其中一些事件已經通過,但是我將其中的一些事件連續記錄下來,我只能看到我應該看到的6個事件中的2個事件?任何想法可能會發生什麼?
你能舉一個確切的例子嗎?你如何按名稱搜索?如果您可以在沒有過濾器的搜索視圖中看到它們,那麼您應該也可以搜索它們。您在門戶中輸入搜索內容的確切語法時可能會遇到一些細微問題? –
我根本看不到他們。當我點擊搜索時,說自定義事件說瓷磚0,我根本找不到它們。 就一個確切的例子。當您調試應用程序時,請參閱上面的代碼 –
,您是否在調試輸出窗口中看到如下行:「Application Insights Telemetry:{something here |}」?我想確保一切都真正走出去。或者,如果您使用fiddler,您是否可以看到從您的應用程序出去的「dc.servies.visualstudio.com」的出站請求?他們成功了嗎? (200s?) –