我在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?) –