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

Отказ от отговорност: Някои написани съдържания се основават единствено на моя опит при използване на таблото за управление на Appdynamics. Така че предложенията и по-задълбочен преглед на продуктите на appdynamic са много ценени.

Динамика на приложението

Appdynamics, подобно на много други инструменти за управление на производителността на приложенията (APM), ви помага да проследявате, забелязвате извънредни стойности и да настройвате предупреждения, когато се случат определени цели на ниво услуга (SLO), като време за реакция или грешки в минута и т.н., като предоставя невероятни визуални ефекти, както и способността да се задълбочи в методите на стека на повикванията, за да се намери методът в точния момент, когато е възникнал инцидент.

D3.js

D3.js е javascript рамка, в която първият ми случай на използване беше да организирам по-добре основни списъци и блокове с данни, заредени от API, но най-силната му характеристика и случай на употреба е, че ви позволява да свързвате произволно данни в Document Object Model (DOM) и след това ви позволява да изобразите почти всичко, което искате в браузъра, като използвате HTML, SVG, CANVAS и CSS.

Предупреждения на Appdynamics

За да заявите, че това не е „недостатък“ на продукта на Appdynamics. Просто в началото не отговаряше на моя случай на употреба. Помислете например за първия GIF от тази статия и изображението по-долу.

Виждайки тези две снимки, може да се каже, че Appdynamics перфектно описва всяко отдалечено обаждане (наречено бизнес транзакции) и генерира компонент (представен от визуален кръг) въз основа на всяко приложение и функции, като сървъра на базата данни и неговия модел + името на базата данни или сървъра за опашка за съобщения (MQ) и неговите теми.

Така че човек не може да има макро поглед върху инфраструктурата като цяло. Ами ако искам да видя кои приложения общуват с една база данни? Кои MQ зависят от приложението X? Приложение Y е над коя инфраструктура (физическа, виртуална машина, облак)?

За да се отговори на въпросите по-горе, човек трябва ръчно да премине през всички приложения и да провери дали всяко от тях има връзка с база данни X например. И когато имате повече от 50.. 100.. 1000.. приложения.. виждате накъде отива това. нали?

Така че изображението по-горе показва менюто за динамика на приложенията, взето от браузъра, където можете да видите разделени раздели Приложения, Бази данни и Сървъри.

Разделът „Приложения“ наистина показва всички комуникации между тях с изключение на базите данни и всеки обект, представляващ темите на всеки MQ сървър, се показва вместо уникален възел, представляващ всеки MQ сървър.

API за динамика на приложения

За щастие appdynamics разполага с обширен и добре документиран API, където можете да следвате тези няколко лесни стъпки, за да получите достъп до неговия REST APIили RESTUI. Последното не е документирано, но с предупреждение за незабелязани промени при следващи версии.

Така че можете просто да ПУБЛИКУВАТЕ в `/controller/api/oauth/access_token` с вашите идентификационни данни, за да получите вашия токен:

curl -X POST -H "Content-Type: application/vnd.appd.cntrl+protobuf;v=1" "https://<controller address>/controller/api/oauth/access_token"

{
"access_token": "...",
"expires_in": 300
}

След тази стъпка можете просто да обмислите всички бизнес транзакции на приложението и да изградите насочена ациклична графика (DAG), характеризираща зависимостите на всяко приложение. Можете да запишете тази графика в желаната от вас структура, но не забравяйте, че ако я запишете в един от тези два JSON формата, вие почти сте готови да включите вашия нов JSON във всяка йерархия или дървовидна карта пример за стил на d3, за да видите вашите данни в действие, без да е необходимо да докосвате какъвто и да е javascript код... все още.

Изпратете данни към D3.js

Така че намерих един пример, който най-добре отговаря на нуждите ми и .. бум! Точно това, което търсих.

След това след филтриране на някои ключови думи, които принадлежат на други приложения и услуги, стана по-скоро така:

След като задържите курсора на мишката върху един възел:

След това преминете към фазата на хакване, където можете да промените някои части от кода, за да отговарят на вашите нужди.

Харесайте, ако искам да ги разделя по категории:

Правейки го по-организиран и проницателен при задържане:

Можете почти да правите каквото искате, като се „забърквате със силата“. Като опита ми да копирам оформлението на appdynamics.

След задържане:

Знам, че има много уроци за D3 и силовите графики, но исках да ви покажа моя случай на употреба и как можете първо да визуализирате данните си, преди да се наложи да бъркате или да създавате D3.js код от нулата, което има значителна крива на обучение като Пол Суини коментира.

Благодаря ти!

Препратки