app performance data что это

Выбираем правильную SD-карту

Организация SD Association внедрила спецификацию SD Specification 5.1, устанавливающую новый стандарт Application Performance Class для карт памяти, предназначенных для работы с приложениями.

Им будут маркироваться SD-карты, оптимизированные для хранения и запуска приложений на смартфонах.

В последних версиях операционной системы Android предусмотрена возможность использования карт microSD в качестве традиционного портативного хранилища или в качестве расширения встроенной памяти.

Во втором случае карта превращается в защищённый накопитель для приложений и игр.

Однако зачастую карты microSD оптимизированы для записи мультимедийных материалов и не удовлетворяют минимальным требованиям для работы установленных приложений.

Стандарт Application Performance Class как раз и должен помочь потребителям определиться с покупкой нужного носителя.

Карты, подходящие для расширения встроенной памяти Android-устройств, получают специальную маркировку.
Предусмотрено два варианта обозначения класса: краткий и полный.

На первом этапе определена категория App Performance Class 1, или A1.
Она устанавливает показатель IOPS (операций ввода/вывода в секунду) при чтении не ниже 1500 и записи 500.
Непрерывная скорость передачи данных при последовательных операциях должна быть не меньше 10 Мбайт/с.

В дальнейшем будут определены более производительные категории карт Application Performance Class.

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

Источник

Что такое мониторинг производительности приложений (APM)?

Мониторинг производительности приложений (Application Performance Monitoring, APM) решает задачи контроля, управления доступностью и непосредственно производительностью приложений. Разные специалисты могут трактовать это определение по-разному, поэтому попытаемся описать, что это за решение, из чего состоит и почему бывает важно для компании.

Как работает Application Performance Monitoring?

Корпоративные приложения меняются и становятся многоуровневыми, распределенными между разными серверами или даже континентами, переходя в облака. Поэтому такие сложные распределенные приложения требуют контроля, так как в некоторых компаниях являются основой бизнеса. Как и у любого мониторинга решения APM определяют базовую производительность и принимают это за норму. Далее любые отклонения от неё регистрируются и требуют принятия решения с целью определения причины отклонения в производительности. Таким образов в отличие от решений NPMD (Network Performance Monitoring and Diagnostics), предназначенных для анализа производительности ИТ-инфраструктуры, здесь фокус системы — приложение, ошибки в коде и их влияние на его производительность.

С помощью APM мы можем оценить:

После того как мы получаем показатели производительности из всех этих источников, решение APM должно интерпретировать для нас и провести корреляцию между ними для оценки влияния на бизнес транзакции. Это то самое место, где магия решений APM проявляется в полную силу.

Производители решений должны понимать на глубоком уровне поведение разных приложений, чтобы выдать вердикт — жив пациент или скорее мертв. Особенно это важно делать быстро, так как релизы приложений меняются довольно часто, а уровень программистов в группе прикладников бывает разный.

Таким образом, мы можем уточнить определение мониторинга производительности приложений APM – это система, которая выполняет:

Выводы

Итак, подведем итог, решение для мониторинга производительности приложений – необходимый инструмент, который позволяет понять поведение вашего приложения, обнаружить проблемы, прежде чем ваши пользователи подвергнутся негативному воздействию и, по возможности, быстро решить эти проблемы. С точки зрения бизнеса, решение APM важно, потому что оно уменьшает среднее время восстановления (MTTR). А это означает, что проблемы с производительностью решаются быстрее и эффективнее, что влияет на производительность работы сотрудников и репутацию компании.

Дополнительные материалы

Чем NPM отличается от APM?

Смотрите разбор реальных преимуществ NPM и APM в записи вебинара со специалистами IXIA.

Источник

Application performance management (APM) от Broadcom для мониторинга производительности приложений (включая мобильные)

Всем привет! В этой статье расскажем о возможностях мониторинга производительности приложений одного из лидеров квадранта Gartner c APM-решениями — Broadcom.

Appdynamics, Dynatrace и New Relic достаточно известны на российском рынке. Broadcom чуть менее знаком, этакая серая лошадка, однако, имеет не уступающий всем троим функционал мониторинга приложений. А использование APM-решения от Broadcom в комплексе с другим их продуктом, зонтичной AIOps-системой DX Operations Intelligence, позволит создать единое окно мониторинга для разнокалиберного ПО и инфраструктуры. Под катом текст и скриншоты.

Для мониторинга производительности приложений Broadcom поставляет два решения: DX APM и DX AXA. Первое работает с бэкэндом, второе с фронтэндом и мобильными приложениями.

DX APM

Архитектура DX APM

Основные особенности DX APM:

DX APM предоставляет различные варианты для визуализации данных:

Experience View. Представление данных с точки зрения оценки опыта конечных пользователей. Данные представлены в виде Experience Cards. Experience card предоставляет верхнеуровневый обзор здоровья для транзакций. Транзакции объединены в Experience Card по заданным атрибутам.

Так выглядит набор Experience Cards:

А так отдельная Experience Card:

Map View — транзакционная карта приложения. Слева направо отображает прохождение транзакций от конечного пользователя до сервера приложений, базы данных и т.д, в зависимости от архитектуры приложения. Карта строится автоматически после установки агентов на серверы приложений.

В DX APM есть возможность интеллектуальной группировки компонент приложения по атрибутам, что помогает упростить и адаптировать вид транзакционной карты приложений для каждой роли пользователей. Например, можно сделать специальное представление для ответственных за определённую часть приложения.

Если приложение микросервисное, DX APM распознает используемые технологии в рамках поддерживаемых и создаст соответствующую визуализацию.

Читайте также:  чешуйки на голове что делать

Ещё одно важное преимущество решения от Broadcom — наличие универсального агента Universal Monitoring Agent (UMA) для различных технологий. UMA устанавливается единожды на кластер, где развернуто микросервисное приложение, далее агент сам отслеживает динамические изменения и ведет мониторинг как инфраструктурных компонент кластера (nodes, pods, containers) так и осуществляет технологический мониторинг приложений в части исполнения кода. С точки зрения автоматизации мониторинга — самое оно.

Расследование проблем DX APM

DX APM для ускорения поиска первопричины проблемы в снижении производительности использует в работе запатентованные технологии: Differential Analysis, Timeline View и Assisted Triage, Topology View/Layers. Во многих случаях упреждающие оповещения (на основе аномального поведения), генерируемые DX APM, позволяют избежать реальных проблем в будущем.

Assisted Triage сигнализирует о наличии проблем и аномалий в работе приложений и в автоматическом режиме предоставляет заключение о первоисточнике проблемы, тем самым обеспечивая root-cause analysis. Аномалии указывают на нестрандартное поведение в работе приложении, но при этом воздействия на опыт конечных пользователей еще нет. Так выглядит работа Assisted Triage

Для детального анализа оповещений, генерируемых Assistage Triage, и выявления проблемных компонентов в транзакционной цепочке по клику на оповещение можно перейти в центр расследований Analysis Notebook. Тут, на представлении в виде таймлайна можно увидеть процесс развития проблемы и возникновение параллельных событий.

Так выглядит сопоставление проблемных транзакций с компонентами приложения и инфраструктурой.

Функция Timeline позволяет быстро увидеть изменения в архитектуре приложения во времени в контексте проблем с производительностью, не покидая Map View. Особенно это эффективно при обновлении релиза приложения — позволит увидеть все проблемы разом.

При возникновения проблем в работе приложения, разработчикам будет интересно и полезно проанализировать транзакционные трейсы. DX APM предусматривает как функционал автоматической записи трейсов Smart Instrumentation, так и возможности запуска ручной трассировки. DX APM автоматически записывает трассировки транзакций при возникновении следующих событий:

Использование коммерческими решения открытых решений — заметный тренд последнего времени. DX APM поддерживает технологию OpenTracing. При этом решение получает данные о показателях и трассировках транзакций из приложений, оснащенных трассировщиками, совместимыми с OpenTracing. Как результат, можно видеть в UI DX APM целостную транзакционную цепочку (MAP) и сквозной транзакционный трейс. Это особенно актуально для распределённых микросервисных приложений.

Ещё одной важной функцией при расследовании проблем снижения производительности в работе приложения является анализ SQL-запросов к базам данных и мониторинг производительности баз данных. DX APM предоставляет такие возможности для наиболее популярных баз данных, таких как Oracle, MS SQL и некоторых других.

Business Payload Analyzer

Business Payload Analyzer (BPA) — это запатентованная функция сбора и анализа данных (Payload транзакций), которая помогает использовать бизнес-контекст для именования транзакций. На рисунке 23 представлено позиционирования BPA по отношению к AXA и APM. По сути, как и AXA (через Browser agent и мобильный SDK) BPA является поставщиком метаданных для APM и помогает в определении бизнес-транзакций.

Физически, BPA является плагином, который устанавливается на web-сервер приложения. Плагин собирает сырые http-данные (после дешифрования серверов https-трафика) каждого запроса и ответа и заливает их в DX APM для дальнейшей обработки и формирования бизнес-транзакций. В текущей версии DX APM 20.2 плагин BPA доступен для:

DX AXA

DX AXA (Application Experience Analytics) ориентирован на мониторинг взаимодействия пользователeй с фронтэндом через браузер или мобильное приложение на своём гаджете. Данные, собираемые AXA, могут быть использованы как разработчиками для оптимизации работы приложений, так и бизнес-аналитиками для формирования отчетности о доступности сервисов и планирования бизнес-KPI. Фокус AXA в задаче мониторинга опыта конечных пользователей представлен на рисунке ниже.

DX AXA получает данные по транзакциям пользователей мобильных приложений с помощью интеграции SDK в приложение. В список поддерживаемых платформ включены: Android, iOS, WatchOS. Стоит отметить, что процедура встраивания инструментария SDK в приложения Android очень проста, осуществляется в web-интерфейсе AXA в несколько кликов мыши и не требует привлечения разработчиков.

Также AXA покрывает мониторинг и web-транзакций пользователей с помощью Browser Agent. Browser agent — это snippet (скрипт), который встраивается в домашнюю страницу приложения, и при взимодейсвии пользователя с приложением собирает и отправляет метрики взаимодействия на сервер AXA для анализа. Таким образом, это не требует установки агента на рабочих станциях конечных пользователей. Browser agent имеет широкий спектр возможностей по кастомизации и сбору данных. При этом поддерживаются web-транзакции во всех популярных браузерах.

В список функций, предназначенных для разработчиков приложений входят:

1. Просмотр скриншотов и видео взаимодействия пользователя с приложением,
оптимизация приложений на основе анализа наиболее популярных действий пользователя в приложении.

2. Сегментация сбоев по платформе, устройству. Индикация и детальные данные по App Crashes, HTTP и JavaScript Errors.

3. Просмотр параметров производительности для каждой сессии пользователя.

4. Функция Resource Waterfall обеспечивает более глубокое понимание производительности веб-приложений, отображая подробную информацию о времени загрузки всех компонентов веб-сайта.

Фунционал по разработке отчетности и визуализации данных способен удовлетворить требования бизнеса по планированию доходов и оценке затрат на модернизацию приложений:

DX AXA имеет глубокую интеграцию с продуктом DX Application Performance Management (APM) для расследования проблем, не связанных с фунционированием фронтэнда. DX AXA при этом является дополнительным поставщиком данных для DX APM по транзакциям, совершаемым пользователями с помощью мобильных приложений.

Интеграция DX APM и DX AXA с DX Operational Intelligence

DX Operations Intelligence — это зонтичная система мониторинга, в которой реализованы функции Machine Learning и Artificial Intelligence (ML и AI) над поступающими в платформу данными. Одними из поставщиков таких данных (наравне с Zabbix, Prometheus и прочими) являются DX APM и DX AXA.

Читайте также:  ems с трекингом это что

DX AXA и DX APM работают в составе платформы DX. Платформа DX устанавливается и работает под управлением кластеров Kubernetes или OpenShift. Установщик платформы DX — это консольное приложение, которое запускается пв докер-контейнере и поэтому имеет минимальные зависимости от операционной системы. Программа установки взаимодействует с кластером и выполняет все необходимые действия для создания готового к использованию экземпляра платформы DX. Установщик платформы DX также поддерживает развертывание с хоста, который не является частью кластера.

Используя установщик платформы DX, вы можете установить следующие компоненты:

Администрирование, масштабирование и обновление платформы DX выполняется в административной консоли. Консоль поддерживает мультитенантную архитектуру, которая позволяет использовать один экземпляр консоли для администрирования нескольких предприятий или нескольких бизнес-единиц в рамках предприятия. В этой модели каждое предприятие может быть настроено индивидуально как арендатор со своим собственным набором конфигураций.

Консоль администрирования — это веб-инструмент для управления операциями и системой, который предоставляет администраторам согласованный унифицированный интерфейс для выполнения следующих задач:

Broadcom безвозмездно предоставит в пользование продукт DX Operational Intelligence Foundation (DX OI) при приобретении лицензий DX APM. DX OI Foundation позволит реализовать фукнции Machine Learning над поступающими в платформу данными (логи, метрики, аварийные сообщения, топология) и оценить/спрогнозировать доступность сервисов на базе анализа поступающих данных. Кроме того, DX OI Foundation может стать единой точкой концентрации аварийных сообщений и интеграции с системой Service Desk.

К сведению: по сравнению с полной версией DX OI, версия Foundation имеет ограничения по времени хранения данных, также есть ограничения по функциям Predictive Insights, Capacity Analytics и интеграции со сторонними системами через Open RESTful APIs. Для снятия этих ограничений необходимо отдельно приобрести лицензии на решение DX OI.

Ну, и напоследок, важное замечание: все перечисленные в этой статье решения Broadcom можно использовать как on-premise так и в SaaS-формате.

Если у вас появились вопросы или вы хотите узнать больше об этом решении, оставьте заявку на демонстрацию или пилотный проект удобным для вас способом на нашем сайте.

В ближайшее время мы проведём вебинар по DX APM и DX AXA. Если вы хотели бы узнать подробнее об этих решениях, оставьте заявку и вам вышлем приглашение как только анонсируем вебинар.

Источник

Monitoring App Performance on iOS

A guide to metrics and tools in the Apple app performance ecosystem

Why monitor app performance?

App performance has a significant impact on overall user experience. According to Apple®:

Customers expect apps to perform well. An app that takes a long time to launch, or responds slowly to input, may appear to the user as if it’s not working or is sluggish. An app that makes a lot of large network requests may increase the user’s data charges and drain the device battery. Any of these behaviors can frustrate users and lead them to uninstall the app.

What metrics should you monitor?

App Size

Although app size doesn’t have an in-app performance impact, it does have an impact on first time users looking to install your app, and is a constant strain on the limited mobile resources of your users’ disk space. More specifically, it can impact:

App Launch Time

There are three types of app launches on iOS:

The operating system significantly optimizes warm launches and resumes, so our focus should be cold launches which are the longest of the three. A cold launch is also the experience first time users will have with your app and we want to make a great first impression! In a 2019 WWDC talk, Apple presses developers to strive for a 400ms cold app launch where the cold launch breaks down as follows:

App Responsiveness

It’s hard to state the importance of app responsiveness any better than Apple does:

An app that responds instantly to users’ interactions gives an impression of supporting their workflow. When the app responds to gestures and taps in real time, it creates an experience for users that they’re directly manipulating the objects on the screen. An app that doesn’t respond within a short time shatters this illusion, and leaves users wondering whether the app works correctly at all.

The human perception system is adept at identifying motion, and linking cause to effect through sequential actions. It doesn’t take long for a person to observe a gap between two events as a pause. Users can form the impression that an app is inert and unresponsive after a delay as short as a few tenths of a second. Apps therefore have to react to a user’s actions very quickly to maintain the user’s confidence in their behavior.

Monitoring app responsiveness can involve looking at a number of different metrics, most notably:

Memory Usage

Memory is a limited resource, shared by apps, the operating system, processes, and the kernel. Because this limited resource is shared, one app using too much memory can compromise the user experience across the whole device. It’s for this very reason the OS sends a warning to apps using too much memory (which you can catch programmatically), and will even terminate them if necessary.

Читайте также:  какой иконе ставить свечку для беременности

You can reduce your app’s memory use by following Apple’s guidance.

Battery Usage

Battery is another limited, shared resource on mobile devices. Unlike desktops which have a constant power supply, or laptops which can be charged while in use, mobile devices need to last for extended time periods without charging. To make matters worse, batteries lose capacity over time, further limiting this resource. When an app consumes too much power it can disrupt the user’s charging habits, forcing them to charge their phone at inopportune times. This negative experience can lead users to uninstall your app if they feel it does not provide enough value to offset its negative effect on their battery.

Apple has a collection of WWDC talks and articles on how to debug and write energy efficient apps.

Network Performance

Network performance can cover a wide variety of topics, but here are some key app performance metrics worth monitoring around networking:

While the speed of network requests determines how quickly you can retrieve the data necessary to populate your view’s content during a load or update, the number of requests and amount of data requested can incur costs on your users who lack an unlimited data plan and likely affect your company’s finances as well.

There is a great 2020 WWDC talk on how you can boost both network performance and security in your app.

Disk I/O

Solid-State Drives (SSDs) are the permanent storage mechanism installed in every iOS device. Accessing data from SSD is always slower than accessing data stored in RAM and apps that make significant use of disk storage may find their app’s performance is negatively affected. SSD endurance also means that iOS devices can only write to the same region of the SSD so many times before that region is unusable, eventually wearing out the entire drive. In other words, apps that write to disk often not only risk slowing their own performance, but can also wear out the user’s SSD faster than expected, negatively affecting the user experience across the entire device.

What native iOS tools are available to automate monitoring these metrics?

XCTest Metrics

XCTest has a set of APIs for gathering performance metrics during your debug and testing phase. You can leverage them to automatically gather performance metrics within your unit and UI tests, set baseline and standard deviation values, and even fail tests if specific metrics start deviating too far from those baselines. This means if you have CI/CD workflows triggered by new PRs or commits, you can fail builds if they negatively affect your app’s performance! Apple has recommendations for schemes running these kinds of performance tests. Most notably, they should not attach the debugger or have diagnostic options turned on. Settings like these can add noise and skew your metrics.

See Apple documentation here and this 2019 WWDC talk for details on using XCTest APIs for measuring app performance metrics within your unit and UI tests.

MetricKit

MetricKit is a native iOS framework for gathering app battery and performance metrics from your AppStore and TestFlight users. It takes very little code to start receiving daily reports on how your app is performing in the field for each user, while still giving you the flexibility to gather more custom metrics than what’s provided out of the box.

First you’ll need to declare an NSObject class that conforms to the MXMetricManagerSubscriber protocol:

Then, in your AppDelegate:

And 💥… that’s it! Your AppMetricManager will get a callback about once every 24 hours with battery and performance metrics. Here you can transform the data and upload it to your own servers if you have internal dashboards for monitoring analytics around your app’s performance metrics.

See Apple documentation here and this 2020 WWDC talk for details on how you can use MetricKit to monitor app performance metrics for your TestFlight and AppStore users.

Xcode Metrics Organizer

Within Xcode’s Organizer window you’ll find aggregated battery and performance metrics that Apple automatically collects for your app. This data is provided to all iOS developers out of the box as of Xcode 11 and is collected for all of your users unless they have opted out of sharing data with developers (Settings → Privacy → Analytics & Improvements → Share With App Developers). While MetricKit allows you to programmatically track app performance metrics, not all developers need to track custom performance metrics or upload that data to their own servers. Xcode Metrics Organizer allows you to quickly and easily track some of the most critical app performance metrics and it doesn’t require you to do anything!

See Apple documentation here and this 2020 WWDC talk for details on analyzing the performance of your app within Xcode Organizer.

Источник

Сказочный портал