Рубрики
Uncategorized

Настройка мониторинга приложений для вашего приложения NODEJS в 20 минутах с помощью решения с открытым исходным кодом

Если вы хотите проверить наш репо GitHub перед дайвингом в 👇 Node.js, топпирует список наиболее широко используемых … Теги с узлом, дежоптом, мониторингом, Opensource.

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

Node.js Вершает список наиболее широко используемых структур разработчиков. Работает на Google V8 JavaScript Engine, его производительность невероятно. Райан Даль, создатель Node.js, хотел создать веб-сайты в реальном времени с возможностью толкания. 8 ноября 2009 года Node.js был впервые продемонстрирован Даль в Инауртуал Европейском JSConf. Node.js теперь стал критическим компонентом в технологическом стеке крупномасштабных предприятий. Но, как и любая технология, она имеет свой собственный набор ограничений.

Node.js — это динамически набранный однопоточный язык программирования. Существует много свободы для переводчика и времени выполнения, чтобы принимать решения, которые могут легко привести к утечкам памяти и высокими нагрузками CPU. Это может привести к вопросам производительности, потере ресурсов и потенциальных простоя. Следовательно, решается контролировать приложения Node.js для показателей производительности приложений.

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

Давайте разделим этот учебник на 2 части:

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

Часть-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.

Часть 2 — Установка и настройка приложения образца Node.js для мониторинга

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

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

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

Вы должны убедиться, что у вас есть Node.js версия 12 или новее Отказ Вы можете скачать последнюю версию Node.js здесь Отказ Для приложения пример, давайте создадим базовый «Hello World» Axpress.js.

Сделайте каталог и установите Express Сделайте каталог для вашего приложения пример на вашем компьютере. Затем откройте терминал, перейдите к пути каталога и установите Express со следующей командой:

npm i express

Setup server.js Создайте файл под названием «Server.js» в вашем каталоге и с любым текстовым редактором настроить ваш файл «Hello World» с кодом ниже:

const express = require('express');

const app = express();

app.get('/hello', (req, res) => {
 res.status(200).send('Hello World');
});

app.listen(9090);

Загрузите сервер со следующей командой на терминале:

node server.js

Вы можете проверить, работает ли ваше приложение, посетив: http://localhost: 9090/Привет Как только вы закончите проверку, выйдите из Localhost на свой терминал.

Настройка OpenTelemetry В том же пути каталога на терминале установите пакет OpenTelemetry Launcher с этой командой:

npm install lightstep-opentelemetry-launcher-node

Перейдите в свой каталог и создайте новый файл с именем «Server_init.js». Это будет выступать в качестве новой точки входа для вашего приложения. Вставьте следующий код в файл:

const {
    lightstep,
    opentelemetry,
   } = require('lightstep-opentelemetry-launcher-node');

   const sdk = lightstep.configureOpenTelemetry();

   sdk.start().then(() => {
    require('./server');
   });

   function shutdown() {
    sdk.shutdown().then(
      () => console.log("SDK shut down successfully"),
      (err) => console.log("Error shutting down SDK", err),
    ).finally(() => process.exit(0))
   };

   process.on('exit', shutdown);
   process.on('SIGINT', shutdown);
   process.on('SIGTERM', shutdown);

Как только файл создан, вам нужно только запустить одну последнюю команду на вашем терминале.

OTEL_EXPORTER_OTLP_SPAN_ENDPOINT="http://:55681/v1/trace" LS_SERVICE_NAME= node server_init.js

Замена заполнителей в вышеуказанную команду для локального хоста:

IP Signoz Backend: localhost (так как мы работаем Signoz на нашем местном хосте)

Имя службы: образец_app (вы можете дать то, что вам нужно позвать)

Таким образом, финальная команда:

OTEL_EXPORTER_OTLP_SPAN_ENDPOINT="http://localhost:55681/v1/trace" LS_SERVICE_NAME=sample_app node server_init.js

Приложение должно быть доступно в http://localhost: 9090/Привет Отказ

Поздравляю! Вы учли свое приложение Node.js. Теперь вы можете получить доступ к панели инструментов Signoz в http://localhost: 3000 Для мониторинга вашего приложения для показателей производительности.

Если вы не найдете «Samble_app» в вашем списке приложений, нажмите конечную точку в порту 9090 и подождите 1-2 минуты.

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

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

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

  1. Выберите свое микросервис
  2. Выберите Timestamp, где задержка высока
  3. Нажмите на просмотр следов
  4. Выберите идентификатор трассировки с самой высокой задержкой
  5. Нулевой в самых высоких задержечных событиях и принять меры

Вот мнение того, как вы можете сверлить и определить конкретные вопросы:

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

Они говорят: «Если это не отслеживается, то это не в производстве». А с Signoz вы можете начать мониторинг приложения Node.js сейчас. Включение вашей команды быстро решить проблемы в производстве, имеет решающее значение для поддержания комплексных распределенных систем в прекрасном здоровье.

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

Signoz/Signoz.

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

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

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

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

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

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

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

Оригинал: «https://dev.to/signoz/setting-up-application-monitoring-for-your-nodejs-app-in-20-mins-with-open-source-solution-134i»