Информация о приложении отсутствует свойство UserId при использовании Azure Front Door - PullRequest
2 голосов
/ 01 мая 2020

Почти во всех запросах телеметрии для моего основного API. NET отсутствует свойство UserId. У меня Angular SPA делает HTTP-запросы к моему API через Azure Front Door. Единственный запрос телеметрии со свойством UserId - это трафик c, который не пропущен через Azure парадную дверь. Если быть точным: это SignalR запрашивает непосредственно к API. У меня есть ощущение, что наше приложение Angular передает телеметрию в нашу Application Insights (только для внешнего интерфейса) и что в других наших Application Insights (только для внутреннего интерфейса) вещи, похоже, не совпадают. Телеметрия зависимостей во внешнем интерфейсе имеет другой URL-адрес, чем телеметрия запроса во внутреннем интерфейсе. Azure Front Door настроен на переадресацию запросов, поэтому он выполняет запрос, который он снова получает в нужное место назначения.

Схемы c обзор HTTP-запросов, в которых отсутствует свойство UserId в серверной части:

---------                          --------                       --------
|Angular|  GET domain.com/api1     | Front|  GET domain2.com/api  | Back |
|  app  | -----------------------> | Door | --------------------> | End  |
---------                          --------                       --------

Схемы c обзор HTTP-запросов, содержащих свойство UserId в серверной части:

---------                          --------
|Angular|  GET domain2.com/signalr | Back |
|  app  | -----------------------> | End  |
---------                          --------

Я просмотрел заголовки запросов, но вижу нет никаких указаний на то, что UserId передается туда, и они практически одинаковы для запросов к входной двери или напрямую к моему API (имя хоста здесь большая разница). Я думаю , что входная дверь выполняет запрос с теми же заголовками, что и запрос.

Прежде всего, мои предположения верны? Проблема в том, что URL-адрес отслеживания зависимостей отличается от того, который получает сервер? Если так, что я могу сделать с этим? Я хочу использовать UserId для действий по устранению неполадок, которые пользователь c совершил до того, как столкнулся с проблемой (функция «Вся доступная телеметрия для этого сеанса пользователя»).

1 Ответ

0 голосов
/ 02 мая 2020

Я думаю, что ваша проблема связана с внешней и внутренней телеметрией. Существует атрибут operation_id, который можно найти как во внешней, так и во внутренней телеметрии, и который можно использовать для корреляции. Возможно, вы захотите настроить как внешнюю, так и внутреннюю телеметрию, чтобы иметь аутентифицированный идентификатор пользователя. Посмотрите на приведенный ниже ресурс по корреляции телеметрии. Надеюсь, это поможет.

https://docs.microsoft.com/en-us/azure/azure-monitor/app/correlation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...