Рубрики
Без рубрики

Следите за приложением Python с полным стеком APM-инструмент с открытым исходным кодом – Signoz

Если вы хотите проверить наш REPO GitHub перед погружением в 👇 стоимость миллисекунды. Tabb Group, … Помечено Python, DevOps, Opensource, мониторинг.

Если вы хотите проверить репо GitHub перед погружением в 👇

Стоимость миллисекунда.

Tabb Group, Финансовая индустрия исследовательской фирмы, Оценки Что если бы электронная торговая платформа брокера составляет 5 миллисекунд на конкурсе, она может стоить 4 миллиона долларов дохода на миллисекунду.

Стоимость задержки слишком высока в индустрии финансовых услуг, и то же самое верно для практически любого программного обеспечения бизнеса сегодня. Для Google, половина второй задержки в результатах поиска вызвала 20% падение трафика. Полтора секунды достаточно, чтобы убить удовлетворение пользователя до точки, где они отказываются от службы приложения.

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

Захват и анализ данных о вашей производственной среде имеет решающее значение. Вам необходимо предварительно решать проблемы устойчивости и производительности в вашем веб-приложении, чтобы избежать сбоев системы и обеспечить плавный пользовательский опыт.

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

Представляем Signoz.

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

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

Распределенные трассировки визуализированы с Flamegraphs на панели инструментов Signoz

Теперь давайте приступим к каким-то действиям и посмотрим на себя все для себя.

Мы настроили Образец приложения Todo Python На основании Flask Web Framework, которая использует Mongodb в качестве базы данных, чтобы продемонстрировать, как работает Signoz. Мы разделим урокул на две части:

  1. Установка Signoz.
  2. Приложение для применения приложения для начала мониторинга

Часть 1 – Установка Signoz

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

Clone Signoz GitHub Repository Из вашего терминала используйте следующую команду для репозитория GitHub Clone Signoz.

git clone https://github.com/SigNoz/signoz.git

Обновите путь к Signoz/Deploy и установку Signoz Папка развертывания содержит файлы, необходимые для развертывания SignoD через Docker.

cd signoz/deploy/
./install.sh

Вам будет предложено выбрать один из 2 способов продолжить:

  1. Клицей в качестве базы данных (по умолчанию)
  2. KAFKA + Druid Setup для обработки масштаба (рекомендуется для производства)

Попытка Signoz с базой данных Chickouse занимает меньше 1 ГБ памяти и для этого учебника, мы будем использовать эту опцию.

Вы получите следующее сообщение после завершения установки.

Как только установка успешно работает, пользовательский интерфейс должен быть доступен в порту 3000. Подождите 2-3 минуты, чтобы данные были доступны для Frontend.

Приложения, показанные на приборной панели, являются из приложения образца, называемого горячим R.O.D, который поставляется с установочным комплектом. У него есть 4 микросервиса: Frontend, клиент, водитель и маршрут. Вы можете получить доступ к Hot R.o.d Application UI AT: http://localhost:9000/

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

Signoz поддерживает Opentelemetry как основной способ для пользователей инструментировать их приложение. OpenTelemetry – это единственная библиотека приборов-приборов поставщиков на языке с поддержкой как автоматических, так и для ручного прибора. Вам не нужно беспокоиться о приборостроении в этом руководстве. Opentelemetry поставляется со всеми доступными в настоящее время Приборы Отказ

Часть 2 – Применение приложения Применение для начала мониторинга

Предварительные условия

Python 3.4 или новее Если у вас нет Python, установленного в вашей системе, вы можете скачать его из ссылки здесь Отказ Проверьте версию Python, используя python3 --version На вашем терминале, чтобы увидеть, правильно ли Python установлен или нет.

Монгодб Если у вас уже есть услуги MongoDB, работающие в вашей системе, вы можете пропустить этот шаг.

Для Macos: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

Для Linux: https://docs.mongodb.com/manual/administration/install-on-linux/

Для Windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

На MacOS установка выполняется с использованием Make Brew Package Package. Как только установка сделана, не забудьте запустить услуги MongoDB, используя Услуги Brew Старт Mongodb/Brew/ mongodb-community @ 4.4. На вашем MacOS терминал.

Шаги

Клон образец Flask App Repository Из вашего терминала используйте следующую команду для образец клонирования Флэк-приложение Github Repository.

git clone https://github.com/SigNoz/sample-flask-app.git

–Update Path к образцу flask-app и проверьте, работает ли приложение __, проверьте, работает ли приложение или не используя следующую команду:

cd sample-flask-app
python3 app.py

На моем Mac терминал

Теперь вы можете получить доступ к интерфейсу приложения на вашем локальном хосте: http://localhost:5000/

Приложение для напоминания TODO с колбой и MongoDB

Нажмите «Ctrl + C», чтобы выйти из приложения, как только вы убедитесь, что он работает правильно.

Настройка библиотеки приборов Apentelemetry Python Ваша папка приложения содержит файл, называемый требованиями. Atxt. Этот файл содержит все необходимые команды для настройки библиотеки инструментации OpenTelemetry Python. Все обязательные пакеты, необходимые для запуска приборов, установлены с помощью этого файла. Убедитесь, что ваш путь обновляется до корневого каталога вашего приложения пример и выполните следующую команду:

pip3 install -r requirements.txt

Если это зависает при установке Grpcio Во время PIP3 Установить OpenTelemetry-Exporter-OTLP Затем следуйте ниже шага, как предложено в этой стойке. связь

  • pip3 установить –uppgrade Pip
  • Python3 -M PIP Установка –uppgrade setewwoods
  • PIP3 Установка –NO-Cache-Dir –force-onestall – Grpcio

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

opentelemetry-bootstrap --action=install

Настройте SPAN Exporter и запустите свое приложение Ты почти сделал. На последнем шаге вам просто нужно настроить несколько переменных среды для ваших экспортеров OTLP. Переменные среды, которые необходимо настроить:

  • Service_Name – имя сервиса приложения (вы можете назвать его, как вам нравится)
  • EndPoint_address – OTLP GRPC Collector Add Address (IP Signoz)

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

OTEL_RESOURCE_ATTRIBUTES=service.name=pythonApp OTEL_EXPORTER_OTLP_ENDPOINT="http://:4317" opentelemetry-instrument python3 app.py

Может быть заменен на localhost в этом случае. Следовательно, финальная команда становится:

OTEL_RESOURCE_ATTRIBUTES=service.name=pythonApp OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" opentelemetry-instrument python3 app.py

И, поздравляю! Вы учли ваше приложение Phython. Нажмите конечную точку вашего приложения в порт 5000 и подождите 1-2 минуты. Теперь вы можете получить доступ к панели инструментов Signoz в http://localhost: 3000 Для мониторинга вашего приложения для показателей производительности.

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

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

  1. Выберите сервис, который вы хотите проверить

  2. Выберите Timestamp, где задержка высока и нажмите на вид следы

  3. Выберите идентификатор трассировки с самой высокой задержкой

  4. Проверять распределенные следы с помощью фламерафа

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

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

Если вам нужна помощь с попыткой Signoz, не стесняйтесь отправить мне почтость на Ankit.anand@signoz.io.

В Signoz мы стремимся сделать лучший с открытым источником, самосвязным инструментом для мониторинга производительности приложений. Не стесняйтесь проверить наш репо GitHub здесь:

Signoz/Signoz.

Signoz помогает разработчикам мониторировать свои проблемы приложения и устранять неполадки, альтернативу открытым исходным кодом для Datadog, NewRelic и т. Д. 🔥 🖥

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

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

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

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

👇 Особенности:

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

Оригинал: “https://dev.to/signoz/monitor-your-python-application-with-full-stack-open-source-apm-tool-signoz-10n8”