Создание серии автоматизированных платформ эксплуатации и обслуживания корпоративного уровня (семнадцать): подробное объяснение инструмента отслеживания ссылок SkyWalking.
Создание серии автоматизированных платформ эксплуатации и обслуживания корпоративного уровня (семнадцать): подробное объяснение инструмента отслеживания ссылок SkyWalking.

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

что такое небесная ходьба

skywalking это отличныйОдомашненныйФреймворк с открытым исходным кодом,2015год индивидуальноУ Шэн(Разработчик Huawei)Открытый исходный код , присоединился в 2017 году apache инкубатор.

skywalking Он распространяетсясистема ПриложениеИнструменты мониторинга эффективности программы,Предназначен для микро Служить、Облачная архитектураи На основе технологии контейнеризации (докер, K8s, Mesos) архитектура, это отличный APM(Application Performance Management)инструмент。skywalkingэто платформа наблюдательного анализаиУправление производительностью приложенийсистема。Обеспечить распространение Интегрированное решение для отслеживания, анализа телеметрии сервисной сетки, агрегирования и визуализации метрик.

Зачем вам нужно отслеживание услуг

  • Под микро-Служить архитектуру,Из-за раскола Служить,Запрос часто включает в себя несколько запросов.,Каждый Служить может разрабатываться отдельной командой.,Используются разные языки программирования,Возможность развертывания на разных машинах,распределены по разным дата-центрам. Служить Система отслеживания может отслеживать и фиксировать, какие звонки инициируются по запросу пользователя.,После чего Служить лечение,И записывайте подробную информацию о Служить, участвующих в каждом звонке.,Просмотрев полную ссылку звонка,Формирование диаграммы топологии может обеспечить более интуитивное понимание бизнеса.,Его также можно проанализировать для текущей системы.,Необходимо ли расширять мощности, оптимизировать интерфейсы и устранять сбои?,Также имеется ссылка для быстрого обнаружения сбоя вызова через журналы.
  • SkyWalking специально разработан для микро-архитектуры и облачной архитектуры и поддерживает систему APM для отслеживания распределенных каналов.

SkyWalking собирает информацию о ссылках вызовов приложений путем загрузки зондов, анализирует собранную информацию о ссылках вызовов и генерирует отношения между приложениями, отношения между службами и индикаторы обслуживания. Apache SkyWalking (Incubating) в настоящее время поддерживает несколько языков, включая Java, .Net Core, Node.js и язык Go.

  • в настоящий моментskywalkingУже поддерживается6 измерений визуализацииАнализ распределениясистемарабочее состояние。

Обзорный вид — это глобальный вид приложения и компонентов.,в состав которого входят компонентыКоличество заявок,Колебания сигналов тревоги приложения,медленный Служить Список и пропускная способность приложений;Карта топологииНачните с зависимостей приложения,Показать топологическую связь всего приложения;Вид приложенияС точки зрения одного приложения,Покажите восходящие и нисходящие отношения приложения.,TopNиз Служитьи Служитьустройство,JVMиз Сопутствующая информация и перепискаиз Информация о хосте。просмотр сервисасосредоточиться наодинокий Служить Входрабочее состояниеи это Служитьиз Восходящие и нисходящие зависимости,Зависимость,Помогите пользователям настроить таргетингодинокий Служитьизоптимизацияимонитор;Цепочка вызовов показывает вызовыиз Один запрос проходитиз Все погребенные точки и каждая погребенная точкаиз Время выполнения;Просмотр сигналов тревогиЦелевые приложения на основе настроенных пороговых значений、Служитьустройство、Служить для оповещений в режиме реального времени.

Порты по умолчанию, используемые в SkyWalking, — 8080, 11800 и 12800. Убедитесь, что эти порты не заняты.

Сравнение систем отслеживания ссылок

  • 1.Zipkin — это инструмент анализа цепочки вызовов Twitter с открытым исходным кодом, в настоящее время основанный на Springcloud. sleuth широко используется и отличается легкостью, простотой в использовании и развертывании.
  • 2.Pinpoint — это корейский анализ цепочки вызовов с открытым исходным кодом, основанный на внедрении байт-кода.,А также инструмент анализа монитора приложения. Возможности поддержки нескольких плагинов,Мощный пользовательский интерфейс,Нет терминала доступа Вторжение кода.
  • 3.SkyWalking — это локальный анализ цепочки вызовов с открытым исходным кодом, основанный на внедрении байт-кода.,А также инструмент анализа монитора приложения. Возможности поддержки нескольких плагинов,Функция пользовательского интерфейса сильна,терминал доступа никто Вторжение кода.В настоящее время присоединился к инкубатору Apache.
  • 4.CAT — это анализ цепочки вызовов с открытым исходным кодом Dianping, основанный на кодировании и конфигурации.,Применить мониторный анализ,Сбор журналов,монитор-сигнализация и другие серии мониторных платформ.

Сравнение производительности

Были смоделированы три типа одновременных пользователей: 500, 750 и 1000. Используйте jmeter для тестирования, каждый поток отправляет 30 запросов и устанавливает время обдумывания 10 мс. Используемая частота дискретизации равна 1, то есть 100 %, что может отличаться от производственной. Частота выборки Pinpoint по умолчанию составляет 20, что составляет 50%. Ее можно изменить на 100%, установив файл конфигурации агента. Значение zipkin по умолчанию также равно 1. Всего существует 12 типов. Взгляните на сводную таблицу ниже:

Это видно из таблицы выше,Среди трех типов компонентов монитора связи,Зонд Скайуокинга оказывает наименьшее влияние на пропускную способность, а пропускная способность Зипкина находится посередине. Точечные датчики оказывают более очевидное влияние на пропускную способность.,При 500 одновременных пользователях,Пропускная способность теста Служить уменьшена с 1385 до 774.,Эффект велик. Затем посмотрите на влияние процессора и памяти.,внутри Служитьустройство Проведенный стресс-тест показал, что воздействие на ЦП и память находится практически в пределах 10%.

Практический обзор применения трассировки ссылок

Ясное дело

Все мы знаем, что в общих сценариях нам сложно интуитивно понять работу системы и бизнес-процесс, поскольку традиционные требования — текстовые описания и скучные коды. Благодаря отслеживанию ссылок вы можете уточнить взаимосвязь вызовов между службами на основе вызывающих ссылок. Если дизайн API соответствует спецификациям, вы даже можете интуитивно понять функцию вызываемых служб. Это очень важно для разработчиков, впервые знакомых с системой.

Анализ требует времени

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

Ошибки визуализации

Если в ссылке вызова микросервиса возникает ошибка, вы можете визуально отобразить и просмотреть ее, найти интерфейс вызываемой службы и оперативно выяснить причину ошибки в микросервисе.

Оптимизировать ссылку

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

Создать топологию сети

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

Основные возможности SkyWalking

  • 1. С помощью языкового зонда и сервиса можно использовать различные средства мониторинга. сетка получает данные монитора;
  • 2. Поддерживает автоматические проверки на нескольких языках, включая Java, .NET Core и Node.JS;
  • 3. Легкий и эффективный, нет необходимости в платформе больших данных и большом количестве серверных ресурсов;
  • 4. Модульность с несколькими доступными механизмами для пользовательского интерфейса, хранилища и управления кластером;
  • 5. Поддержка сигнализации;
  • 6. Отличные решения для визуализации;

Установите и разверните SkyWalking с помощью Docker.

Проверьте официальную версию сайта
  • Официальный сайт: http://skywalking.apache.org.
  • Скачать: http://skywalking.apache.org/downloads/
  • Github:https://github.com/apache/skywalking/
  • Документация: https://skywalking.apache.org/docs/main/.
  • Китайский документ: https://skyapm.github.io/document-cn-translation-of-skywalking/

Когда мы используем es в качестве хранилища, лучше всего использовать версию 8.7.0 с явными методами хранения.

Вытащить изображение

####### Ранняя версия

Язык кода:javascript
копировать
docker pull elasticsearch:7.12.0 

#зеркало данных хранилища es по умолчанию 
docker pull apache/skywalking-oap-server:8.7.0-es7 

#webUI зеркальное отображение интерфейса 
docker pull apache/skywalking-ui:8.7.0 

#Сделать зеркало проекта микросервиса 
docker pull openjdk:8-alpine3.9
Стабильная версия
Язык кода:javascript
копировать
docker pull elasticsearch:7.9.0 

#зеркало данных хранилища es по умолчанию 
docker pull apache/skywalking-oap-server:8.1.0-es7 

#webUI зеркальное отображение интерфейса 
docker pull apache/skywalking-ui:8.1.0 

#Сделать зеркало проекта микросервиса 
docker pull openjdk:8-alpine3.9
Резервное изображение
Язык кода:javascript
копировать
#Последняя версия:
docker save apache/skywalking-oap-server:8.7.0-es7 apache/skywalking-ui:8.7.0 elasticsearch:7.12.0 -o skywalking8.7.0.tar 

#Стабильная версия:
docker save apache/skywalking-oap-server:8.1.0-es7 apache/skywalking-ui:8.1.0 elasticsearch:7.9.1 -o skywalking8.1.0.tar
docker-compose запускает SkyWalking
Установка docker-compose
  • Загрузите версию docker-compose v2.2.2.
Язык кода:javascript
копировать
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose --version
  • Добавить разрешения на исполняемый файл
Язык кода:javascript
копировать
sudo chmod +x /usr/local/bin/docker-compose
Напишите docker-compose файл SkyWalking.

Здесь используется последняя версия изображения Скайуокинга.

Язык кода:javascript
копировать
version: '3'
services:
   es7:
    image: elasticsearch:7.12.1
    container_name: es7
    environment:
      - "cluster.name=elasticsearch" #Установим имя кластера elasticsearch
      - "discovery.type=single-node" #Запускаем в режиме одного узла
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #Устанавливаем размер используемой памяти JVM
    volumes:
      - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #Монтирование файла плагина
      - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #Монтирование файла данных
    ports:
      - 9200:9200
      - 9300:9300

   oap:
    image: apache/skywalking-oap-server:8.7.0-es7
    container_name: oap
    depends_on: 
      - es7
    links:
      - es7
    ports:
      - "11800:11800"
      - "12800:12800"
    healthcheck:
      test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      SW_STORAGE: elasticsearch7
      SW_STORAGE_ES_CLUSTER_NODES: es7:9200
      SW_HEALTH_CHECKER: default
      TZ: Asia/Shanghai
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms2048m -Xmx2048m"

   ui:
    image: apache/skywalking-ui:8.7.0
    container_name: ui
    depends_on: 
      - oap
    links:
      - oap
    ports:
      - "8088:8080"  #Чтобы предотвратить конфликт порта 8080 Здесь мы используем сопоставление портов 8088.
    environment:
      SW_OAP_ADDRESS: http://oap:12800
      TZ: Asia/Shanghai

Запустить службу

Язык кода:javascript
копировать
docker-compose up -d

Посмотреть стартап

Язык кода:javascript
копировать
docker-compose ps
Проверьте интерфейс пользовательского интерфейса SkyWalking.

Войдите в браузер Адрес сервера: 8088 Например:http://192.168.198.120:8088

Подвести итог

Вот и все, что касается введения в skywalking. Эта глава представляет собой просто введение в то, как просто использовать skywalking. На самом деле, есть много функций, которые не были представлены. Заинтересованные студенты могут следовать приведенному выше руководству для установки и развертывания, а затем изучить их на своих местах. собственный. В нынешней среде, где микросервисная архитектура более популярна, без системы отслеживания цепочки вызовов будет сложно устранять проблемы, связанные с вызовами онлайн-сервисов. Skywalking — это техническая платформа, развивающаяся в настоящее время быстрее всего. Поскольку она неинвазивна для кода, многие компании в настоящее время используют Skywalking.

Источник ссылки: https://blog.csdn.net/weixin_4246913. 5/article/details/125092627

boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?
boy illustration
Разница между промежуточным программным обеспечением ASP.NET Core и фильтрами
boy illustration
[Серия Foolish Old Man] Ноябрь 2023 г. Специальная тема Winform Control Элемент управления DataGridView Подробное объяснение
boy illustration
.NET Как загрузить файлы через HttpWebRequest
boy illustration
[Веселый проект Docker] Обновленная версия 2023 года! Создайте эксклюзивный инструмент управления паролями за 10 минут — Vaultwarden
boy illustration
Высокопроизводительная библиотека бревен Golang zap + компонент для резки бревен лесоруба подробное объяснение
boy illustration
Концепция и использование Springboot ConstraintValidator
boy illustration
Новые функции Go 1.23: точная настройка основных библиотек, таких как срезы и синхронизация, значительно улучшающая процесс разработки.
boy illustration
[Весна] Введение и базовое использование AOP в Spring, SpringBoot использует AOP.
boy illustration
Чтобы начать работу с рабочим процессом Flowable, этой статьи достаточно.
boy illustration
Байтовое интервью: как решить проблему с задержкой сообщений MQ?
boy illustration
ASP.NET Core использует функциональные переключатели для управления реализацией доступа по маршрутизации.
boy illustration
[Проблема] Решение Невозможно подключиться к Redis; вложенное исключение — io.lettuce.core.RedisConnectionException.
boy illustration
От теории к практике: проектирование чистой архитектуры в проектах Go
boy illustration
Решение проблемы искажения китайских символов при чтении файлов Net Core.
boy illustration
Реализация легких независимых конвейеров с использованием Brighter
boy illustration
Как удалить и вернуть указанную пару ключ-значение из ассоциативного массива в PHP
boy illustration
Feiniu fnos использует Docker для развертывания учебного пособия по AList
boy illustration
Принципы и практика использования многопоточности в различных версиях .NET.
boy illustration
Как использовать PaddleOCRSharp в рамках .NET
boy illustration
CRUD используется уже два или три года. Как читать исходный код Spring?
boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)
boy illustration
Как настроить метод ssh в Git, как получить и отправить код через метод ssh
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023