Рубрики
Uncategorized

ТОП 13 Инструменты мониторинга производительности приложений с открытым исходным кодом (APM) в 2021 году

Предприятия сейчас принимают цифровую трансформацию больше, чем когда -либо. В большинстве случаев цифровой … с меткой DevOps, OpenSource, SRE, мониторинг.

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

Цифровой сдвиг сделал производственную среду приложения важнейшей частью успеха организации. Производительность вашего приложения в производстве должна быть контролирована, чтобы всегда обеспечить высокую доступность. Не только это, но организации также должны контролировать любые проблемы с задержкой при обслуживании запросов пользователей. Как говорится, «Медленный — это новый вниз» В сегодняшнем конкурентном цифровом ландшафте.

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

Преимущества инструмента APM с открытым исходным кодом над инструментами SaaS APM:

  • Настройка — Вы можете настроить исходный код инструмента в соответствии с вашими потребностями.
  • Самостояние — вам не нужно отправлять свои данные вне вашей среды. Поскольку законы о конфиденциальности становятся более строгими, это может быть будущее инструментов APM.
  • Developer First — разработчики вашей организации могут заглянуть под капот инструмента APM с открытым исходным кодом. Они могут сами решить, соответствует ли инструмент их требования или нет.
  • Поддержка сообщества — инструменты с открытым исходным кодом имеют активные сообщества вокруг них. Сообщества обеспечивают ответственность и поддержку кода. Вы можете напрямую повлиять на дорожную карту продукта, подняв проблемы GitHub.

Но во -первых, давайте поймем, что такое мониторинг производительности приложений и почему он нужен?

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

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

Почему необходим мониторинг производительности приложений (APM)?

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

Несколько важных преимуществ APM в решении проблем эффективности следующие:

  • Дает Централизованный контекст и видимость во внутреннюю работу приложения в распределенной системе
  • Позволяет вам Упорно идентифицировать проблемы Это может вызвать разбивку и решить проблемы с задержкой
  • Помогает вам Совместите ожидания конечного пользователя и требует
  • Увеличить доход Защитой от простоя и оттока пользователей
  • Сохраняет инженерную полосу пропускания в отладке и устранении неполадок

Список 13 лучших инструментов APM с открытым исходным кодом в 2021 году

  • Подписание
  • Графит
  • Точная точка
  • Прометей
  • Явамелоди
  • Стагемонитор
  • Скайтер
  • Зипкин
  • Jaeger
  • Apache Skywalking
  • Эластичный APM
  • Метрики приложения
  • Главрет

Лучшие инструменты APM с открытым исходным кодом

Теперь давайте рассмотрим 13 лучших инструментов APM с открытым исходным кодом в 2021 году.

Подписание

🌐 Веб -сайт 💻 GitHub

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

  • Запросы пользователя в секунду
  • 50 -й, 90 и 99 -й процентиль задержки микросервисов в вашем приложении
  • Коэффициент ошибок запросов на ваши услуги
  • Медленные конечные точки в вашем приложении
  • Запросы пользователей в разных микросервисах с использованием распределенного трассировки

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

Архитектура Signoz с Clickhouse в качестве бэкэнда хранения

Мониторинг начинается с инструмента вашего кода. Signoz поддерживает Opentelemetry для инструментов, которая является библиотекой поставщиков-агентских инструментов. Это означает, что вы никогда не заблокированы на платформе Signoz. Он также поставляется с графиками и визуализацией коробок, чтобы вы могли начать сразу же.

Захватить красные метрики (скорость запросов, частота ошибок и продолжительность) и визуализировать их с помощью Signoz

Вы можете выбрать между стандартом отрасли Kafka+Druid или Fast Olap Clickhouse Clickhouse в качестве бэкэнда хранения. Служба запросов написана в Go, а фронт построен с помощью TypeScript.

Графит

🌐 Веб -сайт 💻 GitHub

Graphite-это инструмент мониторинга временных рядов, который был выпущен в 2008 году. Графит состоит из трех программных компонентов:

  • Углерод — Служба, которая прослушивает данные временных рядов
  • Шепот — Библиотека базы данных для хранения данных временных рядов
  • Графит-Web — Пользовательский интерфейс Graphite и API для графиков рендеринга и мониторинга

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

Графит не выполняет сбор данных. Вместо этого ваше приложение должно быть настроено для отправки данных в графит, который пассивно прослушивает данные с использованием углерода — скрученного демона. Затем Carbon отправляет данные для шепота для хранения данных временных рядов в файловой системе.

Графитовая архитектура (источник: документация графита)

Графит поставляется с встроенным пользовательским интерфейсом, но это довольно просто. Обычно для визуализаций графит забивается вместе с Grafana, который является инструментом визуализации с открытым исходным кодом.

Пользовательский интерфейс Graphite (Источник: Nuxeo)

Точная точка

🌐 Веб -сайт 💻 GitHub

Pinpoint-это инструмент APM с открытым исходным кодом, предназначенный для крупномасштабных распределенных систем, написанных на Java, Python или PHP. Этот проект вдохновлен и смоделирован после Google Dapper. Он прослеживает транзакции по различным компонентам приложения и дает представление о выявлении потенциальных проблем. Некоторые из ключевых функций инструмента Pinpoint APM включают в себя:

  • Топология применения с первого взгляда
  • Мониторинг приложений в реальном времени
  • Видимость уровня кода для каждой транзакции
  • Агенты APM, которые требуют минимальных изменений в коде
  • Минимальное влияние на производительность

Архитектура точков (источник: точечная документация)

Основная цель инструмента Pinpoint APM — определить и отслеживать, как транзакции проходят между различными компонентами системы. Он не отслеживает журналы и метрики.

Прящая панель инструментов (источник: точечная документация)

Прометей

🌐 Веб -сайт 💻 GitHub

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

Первоначально он был разработан в SoundCloud в 2012 году, а затем был выпущен в качестве проекта с открытым исходным кодом. Это был второй проект, который получил бы окончание CNCF после Kubernetes.

Степник мониторинга Prometheus включает в себя следующие компоненты:

  • Прометей сервер
  • Клиентские библиотеки и экспортеры
  • Толкайте шлюз
  • Alertmanager
  • Слой визуализации

Architecture Prometheus (источник: документация Prometheus)

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

Прометея для выражения браузер

Grafana используется для визуализации с Prometheus

Явамелоди

💻 GitHub

Javamelody — это инструмент APM с открытым исходным кодом, который направлен на мониторинг приложений Java или Java EE в QA и производственных средах. В основном он используется для отслеживания и измерения статистики запросов в приложении на основе его использования.

Некоторые из ключевых показателей, захваченных инструментом Javamelody APM, следующие:

  • Количество выполнений, средний процент времени выполнения ошибок HTTP -запросов, запросов SQL, действия JSF, struts actions
  • Использование памяти Java и использование процессора
  • Количество пользовательских сессий
  • Количество соединений JDBC

Диаграммы, предоставленные инструментом Javamelody APM (источник: javamelody github Repo)

Стагемонитор

🌐 Веб -сайт 💻 GitHub

Stagemonitor — это инструмент APM с открытым исходным кодом для приложений Java Server. Это позволяет вам контролировать производительность вашего веб -приложения Java на протяжении всего жизненного цикла в разработке, QA и производстве. Он отслеживает приложения с помощью фильтров сервлета и манипуляции с байт -кодом.

Stagemonitor хорошо интегрируется с базами данных временных рядов, такими как Elasticsearch, Graphite и InfluxDB для анализа графических метрик и кибаны для анализа запросов и стеков вызовов.

Некоторые из ключевых особенностей инструмента APM стагемонитора включают в себя:

  • Мониторинг времени разработки
  • Производственный мониторинг
  • Предварительные мониторные панели

Архитектура стагемонитора (источник: стагемонитор github Repo)

Скайтер

💻 GitHub

Scouter — это инструмент APM с открытым исходным кодом, написанный в Java, JavaScript и Scala. Он фиксирует и показывает метрики об пользователях, услугах и ресурсах. Некоторые из ключевых метрик, которые захватывает Скайтер:

  • Пользователи — активные пользователи и последние пользователи
  • Услуги — активная услуга, TPS, время отклика, профили приложений
  • Ресурсы — ЦП, память, сеть и куча, пулы соединений и т. Д.

Архитектура Scouter (Источник: Scouter Github Repo)

Архитектура Scouter состоит из следующих компонентов:

  • Сервер также называется Collector для обработки данных, передаваемых хостом
  • Агент хоста для захвата метрик для процессора, памяти, производительности диска
  • Агент Java для сбора данных о производительности программы Java, таких как память кучи, потоки, профили
  • Клиент (зритель) для визуализации собранных данных

UI Scouter (Источник: Scouter github Repo)

Зипкин

🌐 Веб -сайт 💻 GitHub

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

Зипикин был первоначально разработан в Twitter и черпал вдохновение в Google Dapper. Уникальные идентификаторы, называемые Trace ID, прикрепляются к каждому запросу, который затем идентифицирует этот запрос между службами.

Архитектура Зипкина включает в себя:

  • Репортеры отправляют данные в Zipkin
  • Коллекционеры, которые сохраняют данные следа к хранению
  • API для запроса данных
  • UI

Архитектура Zipkin (источник: сайт Zipkin)

Встроенный пользовательский интерфейс Zipkin ограничен, и вы можете использовать Grafana или Kibana из стека Elk для лучшей аналитики и визуализации.

Приборная панель Zipkin показывает следы

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

Диаграмма зависимости Zipkin (Источник: GitHub Repo)

Jaeger

🌐 Веб -сайт 💻 GitHub

Jaeger — это инструмент APM с открытым исходным кодом, разработанный в Uber, который впоследствии был пожертвован в облачный нативный вычислительный фонд (CNCF). Вдохновленный Google Dapper, Jaeger является распределенной системой трассировки.

Он используется для мониторинга и устранения неисправностей распределенных систем на основе микросервисов. Некоторые из его ключевых функций включают:

  • Распределенное распространение контекста
  • Распределенный мониторинг транзакций
  • Анализ причин
  • Анализ зависимостей обслуживания
  • Оптимизация производительности/задержки

Jaeger Architecture (Источник: Uber Engineering)

Jaeger поддерживает две популярные базы данных NOSQL с открытым исходным кодом в качестве бэкэндов хранения трассировки: Cassandra и Elasticsearch. Пользовательский интерфейс Jaeger может быть использован, чтобы увидеть отдельные следы. Вы также можете отфильтровать следы на основе обслуживания, продолжительности и тегов.

Jaeger ui с указанием списка фильтрованных трассов

Apache Skywalking

🌐 Веб -сайт 💻 GitHub

Этот инструмент APM с открытым исходным кодом ориентирован на мониторинг распределенных систем, включая микросервисы, облачные и контейнерные архитектуры. Некоторые из ключевых особенностей инструмента APM включают в себя:

  • Сервис, экземпляр службы, анализ метрик конечной точки
  • Анализ основной причины с профилированием кода
  • Анализ карты топологии обслуживания
  • Медленные услуги и обнаружение конечных точек
  • Распределенная трассировка и распространение контекста

SkyWalking также поддерживает сбор данных телеметрии в нескольких форматах.

Skywalking Dashboard (Источник: Skywalking Featural)

Эластичный APM

🌐 Веб -сайт 💻 GitHub

Вы, возможно, уже знакомы с Elasticsearch. Elastic APM — это инструмент мониторинга производительности с открытым исходным кодом, созданный на вершине стека Elk (Elasticsearch, Logstash, Kibana). Он состоит из 4 основных компонентов:

  • Агенты APM — это библиотеки с открытым исходным кодом, установленные в ваших службах для сбора данных о производительности.
  • APM Server -Это отдельный компонент, который является бесплатным и открытым исходным кодом. Он получает данные о производительности от агентов APM. Сервер APM проверяет и обрабатывает события от агентов APM.
  • Elasticsearch — он используется для хранения показателей производительности APM.
  • Кибана — это платформа визуализации, предназначенная для работы с Elasticsearch.

Эластичная архитектура APM (источник: документация по упругим APM)

С Kibana вы можете представить свои запросы и услуги.

Карты обслуживания в Elastic APM (Источник: Веб -сайт Elastic APM)

Метрики приложения

🌐 Веб -сайт 💻 GitHub

Metrics App-это библиотека с открытым исходным кодом и кроссплатформенным .NET, которую можно использовать для захвата метрик приложений в любом приложении .NET. Metrics App предоставляет расширения для отчетности в различных базах данных временных рядов с открытым исходным кодом. Он также предоставляет информационные панели для визуализации метрик приложений в режиме реального времени. Некоторые из ключевых функций этого инструмента APM с открытым исходным кодом включают в себя:

  • Отслеживание метрик для любого типа приложений .NET
  • Измерьте производительность и ошибку каждой конечной точки в проекте MVC или Web API
  • Свобода выбрать, где сохранять упорные запечатленные метрики и какой инструмент для приборной панели для визуализации для визуализации

Metrics App не включает в себя инструмент визуализации, но он предоставляет мониторные панели приложений Grafana Metrics.

Монитория мониторинга приложений с использованием Grafana (источник: веб -сайт метрик приложений)

Главрет

🌐 Веб -сайт 💻 GitHub

Glowroot — это инструмент Java APM с открытым исходным кодом. Он используется для мониторинга приложений на основе Java. Glowroot может быть реализован двумя способами:

  • С встроенными коллекционерами, которые можно использовать для мониторинга автономных приложений
  • С центральным коллекционером, который можно использовать для мониторинга распределенных систем

Главретная архитектурная диаграмма

Глаутроостенные агенты помогают запечатлеть метрики, такие как:

  • Среднее время отклика API
  • Среднее время, взятое по запросам DB
  • Следы по снимке для медленных запросов и ошибок
  • Непрерывное профилирование

Как выбрать правильный инструмент APM с открытым исходным кодом для вас?

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

  • Насколько недавно был последний коммит?
  • Совместители репо отзывчивы?
  • Насколько активно сообщество вокруг инструмента?
  • Является ли инструмент, основанный на последних отраслевых компонентах?

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

Журналы, метрики и следы образуют три краеугольных камня инструментов APM с полным стеком. В этом сценарии такой инструмент, как Signoz может удовлетворить все ваши потребности для мониторинга приложений. Поскольку инструментария основана на Opentelemetry, вы также имеете дополнительное преимущество в том, что он не заблокирован ни в каком продукте. Вы можете попробовать Signoz, посетив его github Repo 👇

Signoz/Signoz

Signoz помогает разработчикам отслеживать свои приложения и проблемы с устранением неполадок, альтернативу DataDog, Newrelic и т. Д. 🖥 🖥 🖥. 👉 Мониторинг производительности приложения с открытым исходным кодом (APM) и инструмент наблюдения

Следите за своими приложениями и устранением проблем в развернутых приложениях, альтернативу открытым исходным кодам Datadog, новой реликвии и т. Д.

Документация • Readme на китайском языке • Slack Community • Twitter

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

👉 Вы можете увидеть такие показатели, как задержка P99, частота ошибок для ваших услуг, внешние вызовы API и отдельные конечные точки.

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

Присоединяйтесь к нашему сообществу Slack

Приходите, скачите нам привет Слаб 👋

Функции:

  • Метрики обзора приложений, такие как RPS, 50 -й/90 -й/99 -й процентиль задержек и частота ошибок
  • Самые медленные конечные точки в вашем приложении
  • См. Точный след запроса, чтобы выяснить проблемы в сфере услуг, замедленных запросов DB, позвоните в сторонние услуги, такие как оплата …

Если вы хотите прочитать больше о Signoz 👇 Мониторинг производительности приложения Golang с Signoz Мониторинг производительности приложения Nodejs с Signoz

Оригинал: «https://dev.to/signoz/top-13-open-source-apm-tools-in-2021-1g4n»