В микросервисной системе необходимо отслеживать каждую службу или наблюдать за производительностью службы во время ее стресс-тестирования.Для завершения этой функции мы решили использовать обход по небу.Обход по небу можно использовать с простыми операциями, и это также удобно контролировать работу службы.
Официальный сайт:skywalking.apache.org/docs/
Китайский документ:skyapm.github.io/
I. Обзор
Основанный на Skywalking, он обеспечивает отслеживание ссылок распределенных служб, рисование топологии зависимостей служб, возможности отображения панели, такие как медленные конечные точки и медленный SQL, а также возможности аварийных сигналов службы. Поддерживает несколько языков: например, Java, C#, Node.js, Go, PHP и Nginx LUA.
SkyWalking этоуслуга , экземпляр службы, а такжеконечная точкаОбеспечивает наблюдаемость.
2. Архитектура
SkyWalking логически разделен на четыре части: зонд, серверная часть платформы, хранилище и пользовательский интерфейс.
- зондОн может отличаться в зависимости от разных источников, но функция состоит в том, чтобы собирать данные и форматировать их в формат, подходящий для 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
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
Как показано на рисунке:
Эффект после запуска:
Пять, введение функции
1. Панель инструментов
- Пропускная цена за тысячу показов, вызовов в минуту.
- Apdex Score: показатель производительности сервера.
- Процент времени ответа, в том числе
p99,p95,p90,p75,p50. - SLA означает показатель успеха. Для HTTP представляет запрос с ответом 200.
Сводка данных мониторинга:
Данные измерения услуги:
2. Топология
На диаграмме топологии используются индикаторы для отображения взаимосвязи между службами и экземплярами. Нажмите на службу, чтобы отобразить данные мониторинга.
- Топология показывает глобальную топологию по умолчанию со всеми службами.
- селектор услугПоддержка отображения прямых отношений, как восходящих, так и нисходящих.
- пользовательская группаПредоставляет возможности произвольной подтопологии для групп обслуживания.
- сервис детализироватьОткрывается при нажатии любой службы. График позволяет измерять, отслеживать и оповещать запросы для выбранной службы.
- Взаимосвязь сервисных показателейУкажите метрику взаимодействия службы RPC и экземпляр этих двух служб.
3. Отслеживание запросов
Отслеживание запросов — типичная функция распределенного прокси, предоставляемого Skywalk.
- Неполный список трековНе треклист. Каждая трасса имеет несколько сегментов, принадлежащих разным сервисам. Там могут быть перечислены разные сегменты с одним и тем же идентификатором отслеживания, если они запрашиваются всеми службами или по идентификатору отслеживания.
- охватыватьКликабельно или нет, детали каждого диапазона будут появляться слева.
- просмотр трекаПредоставляет 3 типичных и различных вида использования для визуализации трассировок.
- Сопутствующие услугиПоказать все сервисы, пройденные через вызов интерфейса
4. Анализ производительности
интерактивная функция. Обеспечивает диагностику производительности на уровне метода.
- Выберите конкретную услугу.
- Задайте имя конечной точки. Это имя конечной точки обычно является именем операции первого диапазона. Найдите это представление списка сегментов в запросе трассировки.
- Время мониторинга может начаться сейчас или в любое время в будущем.
- Продолжительность мониторинга определяет окно времени наблюдения для поиска подходящих запросов для профилирования. Несмотря на то, что профиль оказывает очень ограниченное влияние на производительность целевой системы, он по-прежнему создает дополнительную нагрузку. На этот раз шок становится управляемым.
- Порог минимальной продолжительности обеспечивает механизм фильтрации, который не учитывает, если данная конечная точка быстро отвечает на запросы. Это гарантирует, что сконфигурированные данные являются ожидаемыми данными.
- Максимальное количество выборок представляет собой самый большой набор данных, который будет собирать агент. Это помогает уменьшить нагрузку на память и сеть.
- неявное условие,В любое время skywalk принимает только одну профильную задачу на сервис.
- Прокси могут иметь разные настройки для управления или ограничения этой функции, пожалуйста, прочитайте настройки документации для получения более подробной информации.
- Не все агенты экосистемы SkyWalking поддерживают эту функцию, java-агенты в версии 7.0.0 поддерживают эту функцию по умолчанию.
После завершения файла конфигурации отображаются настроенные сегменты трассировки. Вы можете попросить проанализировать любое составное пространство. Как правило, мы анализируем диапазоны с большой продолжительностью, и если диапазон и его поддиапазоны имеют большую продолжительность, вы можете выбрать «Включить поддиапазоны» или «Исключить поддиапазоны», чтобы установить границы анализа.
После выбора правильного диапазона нажмите кнопку «анализ», и вы увидите результаты анализа на основе стека. Самый медленный метод выделен
Ссылаться на:skyapm.github.io/