Azure Application Insight показывает только 1 пользователя/сеансC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Azure Application Insight показывает только 1 пользователя/сеанс

Сообщение Anonymous »

Я использую React с node.js для внешнего интерфейса и C# для внутреннего интерфейса API.
У меня проблема со статистикой приложений для серверной части API моего приложения. услуга. Я вижу только один сеанс и одного пользователя. Я знаю, что это не так, поскольку я протестировал его с двух разных IP-адресов и записал результаты.
Похоже, что все события и ошибки записываются в аналитике приложения. и я могу просматривать метрики, события, сбои и т. д.... но не более 1 пользователя или сеанса.
Изначально я настроил ресурс анализа приложений внутри Azure и связал его со своей службой приложений API, но так как больше пользователей не было видно, я затем настроил информацию о приложениях Azure в своем проекте в VS и связал ее с существующим ключом инструмента, который я использую
https://www. youtube.com/watch?v=yhGu3aIiMdo&t=109s
Я обнаружил аналогичную проблему с подсчетом пользователей https://learn.microsoft.com/en-us/troub ... ure/azure- Monitor/app-insights/usage-troubleshoot#counting-users
относительно Все события телеметрии в Application Insights имеют идентификатор анонимного пользователя и идентификатор сеанса в качестве двух своих стандартных свойств. По умолчанию все инструменты анализа использования подсчитывают пользователей и сеансы на основе этих идентификаторов. Если эти свойства не заполняются уникальными идентификаторами для каждого пользователя и сеанса вашего приложения, вы увидите неправильное количество пользователей и сеансов в инструментах анализа использования.
Итак, я попытался установить это в коде, но идентификатор сеанса все равно я не смог найти идентификатор анонимного пользователя, который можно было бы установить.

Код: Выделить всё

var telemetryClient = new TelemetryClient();
telemetryClient.InstrumentationKey = "123";

var ipAddress = HttpContext.Connection.RemoteIpAddress.ToString();
if (ipAddress == "::1")
{
ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();
}

telemetryClient.Context.User.Id = ipAddress;
telemetryClient.Context.User.AuthenticatedUserId = ipAddress;
telemetryClient.Context.Session.Id = ipAddress;

logger.LogInformation("User.Id -> " + ipAddress);
logger.LogInformation("User.AuthenticatedUserId -> " + ipAddress);
logger.LogInformation("Session.Id -> Ip -> " + ipAddress);
Тогда в моих журналах Kudu я вижу:

Код: Выделить всё

Session.Id -> Ip -> //ip address of first user
...
Session.Id -> Ip -> //ip address of second user
но по-прежнему только один сеанс и один пользователь на панели мониторинга пользовательского интерфейса аналитики приложений
нужная помощь?
ОБНОВЛЕНИЕ
Просто чтобы уточнить, я запускаю реакцию node.js в одной службе приложений и C# API в другой службе приложений
ОБНОВЛЕНИЕ 2
Идентификатор пользователя и идентификатор сеанса всегда отображаются как одна запись со
значением
ОБНОВЛЕНИЕ 3
Попробовал то, что предложили @DareDevil(проект API) и @Harshitha(проект внешнего интерфейса).
Оба проекта работают локально. Я могу изменить код телементрии, группу ресурсов, строку подключения и т. д., чтобы они соответствовали различным сведениям о приложениях, например, одно для разработки, а другое для контроля качества... и оба анализа приложений показывают увеличение числа пользователей при запуске в локальной среде VS. Однако, когда я отправляю код в службу приложения, он показывает только одного пользователя с идентификатором
Я добавил события для проверки статуса

Код: Выделить всё

  telemetry.Context.Session.Id = guid;
и событие показывает, что telemetry.Context.Session.Id НЕ NULL, поэтому он заполняется.
Оба проекта не подхватывают сеанс или пользователя . Есть идеи, почему? Спасибо за любые дополнительные ответы и спасибо за помощь
@Harshitha
Я запустил npm install applicationinsights --save, который добавил
"applicationinsights": "^2.7.2" в мой проект.
Затем я добавил (в свой webpack.js):

Код: Выделить всё

let  appInsights = require("applicationinsights");
appInsights.setup("full connection string from app insight portal").start();
и добавил скрипт в index.html

Код: Выделить всё


!function(T,l,y){var  S=T.location,k="script",D="instrumentationKey",C="ingestionendpoint",I="disableExceptionTracking",E="ai.device.",b="toLowerCase",w="crossOrigin",N="POST",e="appInsightsSDK",t=y.name||"appInsights";(y.name||T[e])&&(T[e]=t);var  n=T[t]||function(d){var  g=!1,f=!1,m={initialize:!0,queue:[],sv:"5",version:2,config:d};function  v(e,t){var  n={},a="Browser";return  n[E+"id"]=a[b](),n[E+"type"]=a,n["ai.operation.name"]=S&&S.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(m.sv||m.version),{time:function(){var  e=new  Date;function  t(e){var  t=""+e;return  1===t.length&&(t="0"+t),t}return  e.getUTCFullYear()+"-"+t(1+e.getUTCMonth())+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+((e.getUTCMilliseconds()/1e3).toFixed(3)+"").slice(2,5)+"Z"}(),iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}}}}var  h=d.url||y.src;if(h){function  a(e){var  t,n,a,i,r,o,s,c,u,p,l;g=!0,m.queue=[],f||(f=!0,t=h,s=function(){var  e={},t=d.connectionString;if(t)for(var  n=t.split(";"),a=0;a

Подробнее здесь: [url]https://stackoverflow.com/questions/76872090/azure-application-insight-only-showing-1-user-session[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Azure Application Insight только показывает 1 пользователь/сеанс
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Application Insight происходит в фоновом режиме?
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Получив ключ Applications Insight Instrumentation, получите имя службы в Azure.
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Azure Insight Logging .net Core
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Azure Insight Logging .net Core
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»