Визуальный мониторинг производительности приложений — Skywalking

задняя часть монитор
Визуальный мониторинг производительности приложений — Skywalking

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

Официальный сайт:skywalking.apache.org/docs/

Китайский документ:skyapm.github.io/

I. Обзор

Основанный на Skywalking, он обеспечивает отслеживание ссылок распределенных служб, рисование топологии зависимостей служб, возможности отображения панели, такие как медленные конечные точки и медленный SQL, а также возможности аварийных сигналов службы. Поддерживает несколько языков: например, Java, C#, Node.js, Go, PHP и Nginx LUA.

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

2. Архитектура

SkyWalking логически разделен на четыре части: зонд, серверная часть платформы, хранилище и пользовательский интерфейс.

image.png

  • зондОн может отличаться в зависимости от разных источников, но функция состоит в том, чтобы собирать данные и форматировать их в формат, подходящий для SkyWalking.
  • Серверная часть платформы, который поддерживает агрегацию данных, анализ данных и процессы, управляющие потоком данных от зонда к пользовательскому интерфейсу. Анализ включает собственные трассировки Skywalking и показатели производительности, а также сторонние источники, включая телеметрию Istio и Envoy, форматирование трассировки Zipkin и многое другое.
  • место храненияХраните данные SkyWalking через открытый подключаемый интерфейс.Вы можете выбрать существующую систему хранения, такую ​​как ElasticSearch, H2 или кластер MySQL (управление Sharding-Sphere), или вы можете внедрить систему хранения самостоятельно.Конечно, мы Добро пожаловать! Внесите свой вклад в реализацию новых систем хранения.
  • UIВеб-система с широкими возможностями настройки, основанная на интерфейсе, позволяет пользователям просматривать данные SkyWalking и управлять ими визуально.

3. Установка-java-версия

1. Базовая среда

Загрузите и установите необходимый jdk и elasticsearch от Baidu.

Загрузите соответствующий пакет apm, адрес загрузки Skywalking:skywalking.apache.org/downloads/Установить:

jdk1.8
elasticsearch-7.8.1
apache-skywalking-apm-es7-8.3.0

image.png

2. Разархивируйте apache-skywalking-apm-es7-8.3.0.tar.gz и настройте
  • распакованный контент
  • Измените хранилище конфигурации в config/application.yml (в этом тесте используетсяelasticsearch7)

Есть много способов хранения: elasticsearch6,7/h2/mysql/tidb/influxdb

Конфигурация выглядит следующим образом

storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
  nameSpace: ${SW_NAMESPACE:""}
  clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
  user: ${SW_ES_USER:""}
  password: ${SW_ES_PASSWORD:""}
3. Начните ходить по небу

Перед запуском убедитесь, что elasticsearch запущен и работает.

Выполните сценарий startup.sh в каталоге bin для запуска

Посетите localhost:8080, чтобы открыть интерфейс пользовательского интерфейса.

В-четвертых, запустите приложение

  • -Dskywalking.agent.namespace namespace --- может различать разные среды
  • -Dskywalking.agent.service_name Имя службы
  • -Dskywalking.collector.backend_service адрес интерфейса Skywalking (начать с порта по умолчанию 11800)

Запуск Jar: (включает полный путь к файлу skywalking-agent.jar и не может перемещать банку)

java -javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800 -jaryourApp.jar

Начните с идеи: (напишите в параметрах ВМ)

-javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800

Как показано на рисунке:

image.png

Эффект после запуска:

Пять, введение функции

1. Панель инструментов
  1. Пропускная цена за тысячу показов, вызовов в минуту.
  2. Apdex Score: показатель производительности сервера.
  3. Процент времени ответа, в том числеp99, p95, p90, p75, p50.
  4. SLA означает показатель успеха. Для HTTP представляет запрос с ответом 200.

Сводка данных мониторинга:

image.png

Данные измерения услуги:

image.png

2. Топология

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

image.png

  1. Топология показывает глобальную топологию по умолчанию со всеми службами.
  2. селектор услугПоддержка отображения прямых отношений, как восходящих, так и нисходящих.
  3. пользовательская группаПредоставляет возможности произвольной подтопологии для групп обслуживания.
  4. сервис детализироватьОткрывается при нажатии любой службы. График позволяет измерять, отслеживать и оповещать запросы для выбранной службы.
  5. Взаимосвязь сервисных показателейУкажите метрику взаимодействия службы RPC и экземпляр этих двух служб.
3. Отслеживание запросов

Отслеживание запросов — типичная функция распределенного прокси, предоставляемого Skywalk.

image.png

  1. Неполный список трековНе треклист. Каждая трасса имеет несколько сегментов, принадлежащих разным сервисам. Там могут быть перечислены разные сегменты с одним и тем же идентификатором отслеживания, если они запрашиваются всеми службами или по идентификатору отслеживания.
  2. охватыватьКликабельно или нет, детали каждого диапазона будут появляться слева.
  3. просмотр трекаПредоставляет 3 типичных и различных вида использования для визуализации трассировок.
  4. Сопутствующие услугиПоказать все сервисы, пройденные через вызов интерфейса
4. Анализ производительности

интерактивная функция. Обеспечивает диагностику производительности на уровне метода.

  1. Выберите конкретную услугу.
  2. Задайте имя конечной точки. Это имя конечной точки обычно является именем операции первого диапазона. Найдите это представление списка сегментов в запросе трассировки.
  3. Время мониторинга может начаться сейчас или в любое время в будущем.
  4. Продолжительность мониторинга определяет окно времени наблюдения для поиска подходящих запросов для профилирования. Несмотря на то, что профиль оказывает очень ограниченное влияние на производительность целевой системы, он по-прежнему создает дополнительную нагрузку. На этот раз шок становится управляемым.
  5. Порог минимальной продолжительности обеспечивает механизм фильтрации, который не учитывает, если данная конечная точка быстро отвечает на запросы. Это гарантирует, что сконфигурированные данные являются ожидаемыми данными.
  6. Максимальное количество выборок представляет собой самый большой набор данных, который будет собирать агент. Это помогает уменьшить нагрузку на память и сеть.
  7. неявное условие,В любое время skywalk принимает только одну профильную задачу на сервис.
  8. Прокси могут иметь разные настройки для управления или ограничения этой функции, пожалуйста, прочитайте настройки документации для получения более подробной информации.
  9. Не все агенты экосистемы SkyWalking поддерживают эту функцию, java-агенты в версии 7.0.0 поддерживают эту функцию по умолчанию.

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

После выбора правильного диапазона нажмите кнопку «анализ», и вы увидите результаты анализа на основе стека. Самый медленный метод выделен

Ссылаться на:skyapm.github.io/