Существуют ли какие-либо запросы KQL для извлечения просмотров страниц, количества загрузок из журналов W3C IISlog в аналитике Azure-Log?

Мы пытаемся извлечь просмотры страниц, количество загрузок файлов, список пользователей из журналов w3c IIS. мы хотим определить, что такое просмотр страницы, то есть любой пользователь, оставшийся на одной странице более 10 секунд, будет просмотром одной страницы. все, что меньше, не является просмотром страницы. В журналах w3c, похоже, недостаточно данных для извлечения этого. это возможно с тем, что уже доступно?

Это данные, доступные для извлечения вышеуказанной информации,

Оператор данных

datatable (TimeGenerated: datetime, csUriStem: строка, scStatus: строка, csUserName: строка, sSiteName: строка) [datetime(2019-04-12T11:55:13Z),"/Account/","302","-","WebsiteName", дата/время(2019-04-12T11:55:16Z),"/","302","-","WebsiteName", datetime(2019-04-12T11:55:17Z),"/Account/","200","[email protected]","WebsiteName", datetime(2019-04-12T11:55:17Z),"/Content/site.css","200","-","WebsiteName", datetime(2019-04-12T11:55:17Z),"/Scripts/modernizr-2.8.3.js","200","-","WebsiteName", datetime(2019-04-12T11:55:17Z),"/Scripts/bootstrap.js","200","-","WebsiteName", datetime(2019-04-12T11:55:17Z),"/Content/bootstrap.css","200","-","WebsiteName", datetime(2019-04-12T11:55:18Z),"/Scripts/jquery-3.3.1.js","200","-","WebsiteName", дата/время(2019-04-12T11:55:23Z),"/","302","-","WebsiteName", datetime(2019-04-12T11:56:39Z),"/","200","[email protected]","имясайта", datetime(2019-04-12T11:57:13Z),"/Home/About","200","[email protected]","WebsiteName", datetime(2019-04-12T11:58:16Z),"/Home/Contact","200","[email protected]","WebsiteName", datetime(2019-04-12T11:59:03Z),"/","200","[email protected]","WebsiteName"]

Не могли бы вы поделиться образцом данных о том, что доступно? Ради вопроса вы можете использовать оператор datatable() (чтобы «изобретать» данные как часть запроса).

Alexander Sloutsky 09.04.2019 15:01

@AlexanderSloutsky Добавлена ​​ссылка на примеры данных, извлеченных из журналов в посте. Это обычный w3CIISLogs, который доступен в рабочей области Log Analytics. Мне нужно использовать запрос KQL для извлечения необходимых данных. Спасибо

Raj 10.04.2019 13:34

Еще не очень понятно, какие поля картинки релевантны, или какие еще поля у вас есть. Не могли бы вы использовать оператор данных для описания ввода и привести пример вывода? Например, вот каким может быть смоделированный ввод: datetime(2019-04-02T22:47:02), "/Home/Contact", "User1", ]

Alexander Sloutsky 10.04.2019 17:01

Привет @AlexanderSloutsky, добавил оператор данных в сводку вопросов. Из которого мне нужно исключить значение 200 и исключить 302 из scStatus, исключить ненужные файлы, к которым обращались, рассчитать разницу во времени между предыдущими запросами, извлечь сводные данные о просмотрах страниц и действиях пользователей. Спасибо.

Raj 12.04.2019 15:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
278
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, что правильно понял все ваши требования, но вот кое-что, с чего можно начать и дать вам начальное направление.

datatable (TimeGenerated:datetime, csUriStem:string, scStatus:string, csUserName:string, sSiteName :string)
[datetime(2019-04-12T11:55:13Z),"/Account/","302","-","WebsiteName",
 datetime(2019-04-12T11:55:16Z),"/","302","-","WebsiteName", 
 datetime(2019-04-12T11:55:17Z),"/Account/","200","[email protected]","WebsiteName",
 datetime(2019-04-12T11:55:17Z),"/Content/site.css","200","-","WebsiteName", 
 datetime(2019-04-12T11:55:17Z),"/Scripts/modernizr-2.8.3.js","200","-","WebsiteName",
 datetime(2019-04-12T11:55:17Z),"/Scripts/bootstrap.js","200","-","WebsiteName",
 datetime(2019-04-12T11:55:17Z),"/Content/bootstrap.css","200","-","WebsiteName",
 datetime(2019-04-12T11:55:18Z),"/Scripts/jquery-3.3.1.js","200","-","WebsiteName",
 datetime(2019-04-12T11:55:23Z),"/","302","-","WebsiteName",
 datetime(2019-04-12T11:56:39Z),"/","200","[email protected]","WebsiteName",
 datetime(2019-04-12T11:57:13Z),"/Home/About","200","[email protected]","WebsiteName",
 datetime(2019-04-12T11:58:16Z),"/Home/Contact","200","[email protected]","WebsiteName",
 datetime(2019-04-12T11:59:03Z),"/","200","[email protected]","WebsiteName"]
| where scStatus !in ('302') // exclude status 302
| where csUriStem !startswith '/Scripts' and csUriStem !endswith ".css"  // exclude pages coming from '/Script' and .css files
| order by TimeGenerated asc
| summarize t=make_list(TimeGenerated) by csUriStem, csUserName // create time-series of visit events
| mv-apply t to typeof(datetime) on  // run subquery on each of the series
(
    project isVisit = (t - prev(t)) > 1min // compare with previous timestamp, and see if >1min passed
    | summarize Visits=sum(isVisit)
)
| project csUriStem, csUserName, Visits

Вот ссылки на make_list() (функция агрегации), предыдущий() (функция окна), оператор суммировать и оператор mv-применить

Другие вопросы по теме