VMware Log Insight VS НБРБ

Тема  VMware Log Insight - Горе от ума вызвала интерес у читателей, поэтому следует продолжение.

Анализ с использованием LI литературной классики - это, конечно, увлекательно и интересно, но полезность таких действий стремится к 0.

Ниже я постараюсь в деталях рассказать об использовании VMware Log Insight в собственных меркантильных целях.

Как известно, курс белорусского рубля параметр очень динамичный, а отслеживание его ежедневных мелких флуктуаций занятие утомительное. Меня интересует курс BYR к доллару США (USD), евро (EUR), российскому рублю (RUB). Точнее не сам курс, а достижение им верхних и нижних порогов, которые я рассчитал исходя из своего корыстного интереса (к данной теме методика расчета не имеет никакого отношения)

Дано: источник курсов валют, VMware Log Insight
Необходимо: получить систему уведомлений о превышении курсом заранее установленных порогов.

Реализация поставленной задачи under cut




В качестве надежного источника валют использую сайт НБРБ (Национальный Банк Республики Беларусь).

С сайта мне необходимо в автоматическом режиме, ежедневно извлекать курсы для USD, EUR, RUB и записывать в соответствующие файлы. Для этих целей был написан макрос:

Option Explicit


Private Sub Auto_Open()
    
    Application.Visible = False
    
    Dim xd, nl, n, I, J
    Set xd = CreateObject("Msxml.DOMDocument")

    Dim RatDate As Date
    Dim index As Integer
    RatDate = Now
    
    xd.async = False
    If Not xd.Load("http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + Format(RatDate, "mm/dd/yyyy")) = True Then
        MsgBox ("Документ не загружен")
    Exit Sub
    End If
    Set nl = xd.selectNodes("DailyExRates")
    Set n = nl.Item(0).CloneNode(True)
    
    With ThisWorkbook.Sheets(1)
        .Range("B3").Value = n.Attributes(0).Value
        .Range("A6:F255").Value = ""
        Set nl = xd.selectNodes("*/Currency")
    
        For I = 0 To nl.Length - 1
            Set n = nl.Item(I).CloneNode(True)
            .Range("A" & (I + 6)).Value = n.Attributes(0).Value
            For J = 0 To n.childNodes.Length - 2
                .Cells(I + 6, J + 2).Value = n.childNodes(J).Text
            Next J
            .Cells(I + 6, J + 2).Value = n.childNodes(J).Text
        Next I
    End With
    Set xd = Nothing
    
    Open "d:\value\usd.txt" For Append As #1
        For index = 6 To 32 Step 1
        If Cells(index, 2) = "840" Then Print #1, LTrim(Cells(index, 6))
        Next
        Close #1
    Close
    
    Open "d:\value\eur.txt" For Append As #1
        For index = 6 To 32 Step 1
        If Cells(index, 2) = "978" Then Print #1, LTrim(Cells(index, 6))
        Next
        Close #1
    Close
    
    Open "d:\value\rub.txt" For Append As #1
        For index = 6 To 32 Step 1
        If Cells(index, 2) = "643" Then Print #1, LTrim(Cells(index, 6)) 'Cells(3, 2),
        Next
        Close #1
    Close
    
Application.DisplayAlerts = False
Application.Quit

End Sub

В планировщике задач выставляем запуск макроса ежедневно после проведения торгов (для надежности и оперативности получения данных часиков так в 15-00).
На выходе мы получаем 3 файла: usd.txt, eur.txt, rub.txt, в которые дописываются текущий курс.
Параметр даты умышленно не вносился в файл, т.к. это информация избыточная и она формироваться в VMware Log Insight.

Для удобства представления данных в посте я залил курсы валют за последний месяц разово (сегодняшним числом), хотя при обычном функционировании системы ежедневно добавляется по одному значению для каждой валюты:

Представление в виде количества событий неинформативно, поэтому меняем его на значение, содержащееся в событии. Для этого необходимо создать новый Fields и определить тип данных в сообщении "Integer" (это понадобится для выполнения операции сравнения с пороговыми значениями)

После этого действия нам становятся доступны ряд новых выборок:

- Количество уникальных курсов за отчетный период:
В нашем случае это были: 9770, 9780, 9790, 9800, 9810, 9820, 9830, 9840, 9850, 9860, 9870

- Частота конкретных значений:

5 дней курс был 9790, 4 - 9820 и 9840, 3 - 9770, 9850 и 9870, 2 - 9800, 9810, 9830, 1 - 9780, 9860

В общем, манипулируя функциями счетчиков, массивами для выборок и параметрами сортировок можно построить кучу замысловатых и бесполезно\полезных графиков.

Изначальная задача была в другом: в ежедневном информировании в случае преодоления текущим курсом пороговых значений. Настроим правила таких уведомлений:

- если курсы стал больше или равен "9860"
создаем правило:
настраиваем уведомление:

аналогично настраиваем уведомления на преодоление пороговых минимумов:

ну и для понимания насколько изменение в ту или иную сторону стабильно создадим отдельное уведомление, заключающееся в анализе трехдневного курса на повышение или понижение от порогового:

для каждой из сформированных вами выборок можно создать отдельный Dashboard:

На днях стал доступен VMware Log Insight 2.0 beta. Скачать его можно здесь. Список обновлений и дополнений:
  • Scale-Out with High Availability
  • 5x-10x throughput improvement in Cluster mode
  • Single UI to query all the data 
  • Proactive Analytics
  • Machine learning enabled summarization of event types & schema recognition
  • Smart fields to aid in extraction
  • Super-Powered Dashboards
  • Easily add new data filters on the fly
  • Interact between dashboard widgets
  • RESTful API for log ingestion
  • Improved self-monitoring tools
  • Windows collection agent
  • Forwards Windows event logs
  • Monitors & forwards flat log files
  • Centralized reporting & management
P.S> Влад, Арсен, я выполнил обещание :)

Комментариев нет:

Отправить комментарий