Czy monitoring może mówić?
Entuzjaści nowych technologii od kilku lat mogą doświadczać tego, co do niedawna prezentowały tylko filmy science-fiction – swobodnej interakcji z komputerem. Założenia nie są nowe, pierwsi wirtualni asystenci powstali wiele lat temu. Jednak ciągły wzrost mocy obliczeniowych oraz optymalizacja (oraz popularyzacja) algorytmów uczenia maszynowego sprawiły, że ta dziedzina nabrała dużego przyśpieszenia. Wystarczy popatrzeć na liderów rynku: Amazon ma chyba na tym polu najwięcej do powiedzenia ze swoją Alexą, tuż za nim idzie Google z GoogleHome. Trochę spóźniony pojawia się Apple, a musimy pamiętać jeszcze o Cortanie Microsoftu.
Coraz skuteczniejsze rozpoznawanie ludzkiej mowy pozwala na precyzyjne komunikowanie się z urządzeniem. Przykładowo, za pomocą Alexy Amazona możemy sterować urządzeniami domowymi (smart home), włączać muzykę, szukać informacji czy zwyczajnie poprosić o opowiedzenie dowcipu. W USA możemy zamówić też pizzę czy Ubera. Polsce daleko jeszcze to takiego spektrum usług, ale spokojnie możemy skorzystać z usług globalnych czy integracji wykorzystywanych przez zewnętrznych autorów. Przykładem takiego podejścia jest projekt Davis od Dynatrace.
Czym jest Davis?
Jest to eksperymentalny projekt udostępniany na licencji MIT (https://github.com/Dynatrace/davis-server). Powstał on w celu przeniesienia komunikacji z bezdusznym systemem monitoringu na nowy, ludzki poziom. Dynatrace po raz kolejny zrewolucjonizował podejście do monitoringu, oferując kompleksową platformę zawierającą Digital Experience Monitoring (DEM), Application Performance Monitoring (APM), IT Infrastructure Monitoring (ITIM), oraz Network Performance Monitoring and Diagnostic (NPMD) wspartą algorytmami sztucznej inteligencji w służbie AIOps (Algorithmic IT Operations). W założeniu jest to rozwiązanie, które oferuje gotowe odpowiedzi zamiast surowych, ręcznie korelowanych danych. A skoro mamy sztuczną inteligencję, która pozwala udzielić odpowiedzi, to warto dać jej szansę na przedstawianie ich ludzkim głosem. I tu wkracza Davis…
Od strony technicznej, platforma bazuje na prostym stosie technologicznym: nginx/Apache+Node.js+MongoDB. Instalacja jest prosta i może być wykonana całkowicie we własnym zakresie lub za pomocą przygotowanego deploymentu na Heroku. Jeżeli chcecie rozpocząć zabawę z głosowym asystentem, to polecam zwłaszcza tę drugą opcję – Heroku udostępnia darmowe konto, choć do weryfikacji potrzebna jest karta kredytowa. Do produkcyjnego wykorzystania oczywiście najlepiej uruchomić Davisa na dedykowanych zasobach, nad którymi mamy kontrolę.
Zaraz po uruchomieniu Davis przeprowadzi nas przez proces konfiguracji. Obowiązkowy jest krok pierwszy – połączenie platformy z systemem Dynatrace, w końcu do tego to służy. Jak zwykle przy integracji, Dynatrace wykorzystuje mechanizm tokenów, więc jedyne co, musimy podać, to adres naszego serwera z właściwym tokenem oraz utworzyć konto administratora.
Krok 1 – dostęp do Dynatrace.
Krok 2 – konto administratora.
Kolejne kroki, czyli integracja ze Slack-iem oraz Alexą, są opcjonalne. Po krótkiej konfiguracji otrzymujemy dostęp do klienta webowego, który udostępnia nam pełną funkcjonalność komunikacji z naszą platformą Dynatrace, analizującą dane z monitorowanego środowiska.
Interfejs webowy Davis dostępny zaraz po zainstalowaniu.
Niezależnie od formy konwersacji (tekst, głos)n Davis Natural Language Processing (NLP), czyli główna funkcjonalność, przetwarza frazy, które wprowadzamy bazując na trzech aspektach:
- Rozpoznawanie zakresu czasu
- Rozpoznawanie aplikacji
- Rozpoznawanie celu
Dwa pierwsze czynniki filtrują nam zakres komunikacji. Przykładowo, możemy zapytać „What happened yesterday?” albo „What happened around 8 am”, co automatycznie ograniczy nam okres, w którym analizowane są dane.
Najistotniejsza jest ostatnia kategoria, to ona odpowiada za rzeczywiste zrozumienie potrzeb. Bazuje na analizatorze składni pozwalającym na dopasowanie niedokładnych, rozmytych wyrażeń do zwrotów, z których Davis został przeszkolony. Następuje tokenizacja wyrażeń; wydzielane, a następnie ujednolicane, są poszczególne słowa (sprowadzane do podstawowej formy). Kolejnym etapem jest przekształcenie w reprezentację wektorową i klasyfikacja celu za pomocą algorytmów regresji logarytmicznej.
Z NLP możemy w pełni korzystać z poziomu chata dostępnego z poziomu strony Davis-a. Jeżeli w zespole korzystamy ze Slack-a jako komunikatora, to dla mnie jest to najprostsza możliwa forma sprawdzania, czy coś się dzieje w monitorowanym środowisku. W tym celu tworzymy aplikację w Slack API, tworzymy użytkownika typu bot i łączymy Davis z przestrzenią roboczą (workspace). W efekcie mamy dostęp do naszej instancji Dynatrace bezpośrednio z poziomu Slack-a. Przykładowo, możemy zapytać Davis o listę wczorajszych problemów oraz wyświetlić szczegóły najważniejszych z nich, przy czym integracja pomaga nam w zrozumieniu informacji za pomocą grafiki, udostępnia linki, przyciski wyboru itp.:
Integracja ze Slackiem – udostępniane linki i przyciski.
Integracja ze Slackiem – wyświetlenie szczegółów problemu po kliknięciu na przycisk Second.
Pamiętajmy, że Davis to interfejs między nami a stanem naszego środowiska, dlatego w razie wystąpienia problemów powinniśmy oczekiwać czegoś więcej niż tylko suchych danych. Tak jak pokazuje kolejny ilustracja, możemy poprosić o wskazanie źródła problemu:
Davis udostępnia link do przejścia do analizy przyczyn (Root Cause Analysis)
Efektem jest przesłanie linka do Dynatrace, w którym dostajemy dokładną analizę przyczyn awarii:
Dynatrace prezentuje przyczynę, CPU saturation, i umożliwia dalsze dochodzenie.
Na koniec ostatni, ale chyba najbardziej spektakularny kanał dostępu – Alexa, czyli najpopularniejszy asystent głosowy na świecie. Konfiguracja Alexy wymaga oczywiście konta w alexa.amazon.com oraz dodanie nowej umiejętności za pomocą Alexa Skills Kit (interfejs dostępny z konsoli web). Jednak po krótkiej konfiguracji po stronie Alexy oraz dodaniu integracji w ustawieniach Davis możemy śmiało powiedzieć (tak, powiedzieć, nie napisać):
„Alexa, ask Davis”
Od tego momentu mamy otwarty kanał komunikacji z Davis, czyli tak naprawdę z naszym monitoringiem. Rozmawiamy dokładnie takim samym językiem, jak opisywałem przy Slack-u, czyli językiem naturalnym. Davis również oferuje nam nawigację, pytając czy chcemy usłyszeć o pierwszym, drugim czy trzecim problemie lub przejść na kolejną stronę. Pojawia się jednak pytanie: a co, jeżeli zapytam o źródło problemu („show me the root cause”), lub jeżeli poproszę o pokazanie mojego systemu lub aplikacji? Slack udostępniał nam linki, które można kliknąć i otworzyć w przeglądarce. W przypadku Alexy, jest to jeszcze prostsze. Wystarczy zainstalować dodatek do Google Chrome o nazwie Dynatrace Davis Voice Navigator:
Davis Voice Navigator pozwala Davis via Alexa automatycznie otwierać linki w przeglądarce.
Następnie należy podać token do naszego środowiska i polecenie „send me that link” będzie automatycznie otwierało wizualizacje wykrytego problemu w przeglądarce, a „show me my system” otworzy nam dashboard Dynatrace Smartscape.
Zbędny gadżet czy przydatny pomocnik?
Początkowo traktowałem Davis trochę jako efektowny, choć mało przydatny dodatek. Ale Davis mocno zyskuje przy bliższym poznaniu. Tak naprawdę, wykorzystując moc Dynatrace Fullstack Monitoring, sprowadza sposób komunikacji to formy najprostszej – ludzkiej. Sztuczna inteligencja w Dynatrace jest ograniczona do funkcjonalności monitoringu, więc nie pogadamy z nią o pogodzie, sztuce czy sporcie, ale jeżeli chcemy na Slack-u zapytać o stan środowiska, to jest bezbłędna. Umieszczając głośnik Amazona w odpowiednim miejscu błyskawicznie dostajemy powiadomienie o tym, że coś się dzieje z naszą aplikacją (analogiczne powiadomienia działają na Slack-u). Warto zaznaczyć, że lada moment Alexa będzie działała w środowisku Windows – główni dostawcy sprzętu IT pracują nad laptopami z Windows z zainstalowaną Alexą, więc Davis ma szansę stać się pełnoprawnym członkiem zespołu w standardzie korporacyjnym, wykorzystując siłę sztucznej inteligencji naszego monitoringu oraz udostępniane przez niego API. A jeżeli mało nam interakcji głosowej, dzięki wykorzystaniu API Dynatrace możemy pójść krok dalej i zbudować wirtualną rzeczywistość monitoringu w oparciu o Microsoft HoloLens. Ale o tym już następnym razem.
Więcej o projekcie Davis możecie przeczytać na Wiki:
https://github.com/Dynatrace/davis-server/wiki
Wersja testowa (SaaS) monitoringu nowej generacji Dynatrace jest dostępna tutaj:
Źródła:
Materiały Dynatrace
Materiały własne Omnilogy