OpenTelemetry может автоматически прибор многих общих модулей для приложения JavaScript. Захваченные данные телеметрии могут затем отправляться для Signoz для анализа и визуализации.
Signoz Ui
OpenTelemetry — это набор инструментов, API и SDK, используемые для привлечения приложений для создания и управления данными телеметрии (журналы, метрики и следы). Для любой распределенной системы на основе архитектуры микросервиса это оперативная задача для быстрого решения проблем с производительностью.
Данные телеметрии помогают инженерным группам по устранению проблем по вопросам служб и определить корневые причины. Другими словами, телеметрические данные включают в себя наблюдаемость для ваших распределенных приложений.
Шаги для начала работы с OpenTelemetry для приложения Nodejs:
- Установка Signoz.
- Установка образца приложения Nodejs
- Настройте opentelemetry и отправьте данные для Signoz
Установка Signoz.
Вы можете начать работу с SignoD, используя только три команды на вашем терминале, если у вас установлен Docker. Вы можете прочитать о других вариантах развертывания от Signoz Documentation Отказ
git clone https://github.com/SigNoz/signoz.git cd signoz/deploy/ ./install.sh
У вас будет возможность выбирать между Chickouse или Kafka + Druid в качестве варианта хранения. Попытка Signoz с базой данных Chickouse занимает менее 1,5 ГБ памяти, а для этого учебника мы будем использовать эту опцию.
Когда вы закончите установку Signoz, вы можете получить доступ к интерфейсу AT: http://localhost:3000
Список приложений, показанный на приборной панели, является из приложения для образца, называемого горячим R.O.D, который поставляется в комплекте с установочным пакетом Signoz.
Signoz Dashboard
Установите образец приложения Nodejs
Вы должны убедиться, что у вас есть 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 и отправьте данные для Signoz
- В том же пути каталога на терминале установите пакет OpenTelemetry Launcher с этой командой:
npm install lightstep-opentelemetry-launcher-node
Запурья OpenTelemetry делает начать работу с OpenTelemetry проще, уменьшая конфигурацию Boaterplate.
- Чтобы использовать OpenTelemetry, вам нужно запустить OpenTelemetry SDK перед загрузкой вашего приложения. Сначала инициализация OPENTELEMETRYETRY мы включаем opentelemetry применять доступные приборы и автоматически обнаруживать пакеты, прежде чем приложение запускается. Для этого перейдите в свой каталог и создайте новый файл с именем «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);
- Как только файл создан, вам нужно только запустить одну последнюю команду на вашем терминале, которая передает необходимые переменные среды. Здесь вы также устанавливаете SignoD в качестве инструмента вашего анализа Backend.
OTEL_EXPORTER_OTLP_SPAN_ENDPOINT="http://:55681/v1/trace" OTEL_METRICS_EXPORTER=none LS_SERVICE_NAME= node server_init.js
Замена заполнителей в вышеуказанную команду для локального хоста:
IP Signoz Backend
: Localhost (так как мы запускаем Signoz на нашем местном хосте)
Имя службы
: Famcure_app (вы можете дать вам имя, которое подходит вам)
Таким образом, финальная команда:
OTEL_EXPORTER_OTLP_SPAN_ENDPOINT="http://localhost:55681/v1/trace" OTEL_METRICS_EXPORTER=none LS_SERVICE_NAME=sample_app node server_init.js
И, поздравляю! Вы учли свое приложение Node.js. Теперь вы можете получить доступ к панели инструментов Signoz в http://localhost: 3000 Для мониторинга вашего приложения для показателей производительности.
Образец_app в списке приложений контролируемый
Метрики и следы приложения Nodejs
SignoD позволяет легко визуализировать метрики и следы, захваченные посредством приборов OpenTelemetry.
Signoz поставляется из коробки красных метрических графиков и визуализации. Красные метрики стоят за:
- Скорость запросов
- Скориемость запросов
- Продолжительность, предпринятая запросами
Измерьте такие вещи, как задержка приложений, запросы на секунду, процент ошибок и см. Ваши верхние конечные точки
Затем вы можете выбрать конкретную временную метку, где задержка высокая, чтобы сверлить, чтобы проследить вокруг этого временного времени.
Вид следов на определенном временном метке
Вы можете использовать Flamegraphs, чтобы точно определить проблему, вызывающую задержку.
FLAMEGRAPHS, показывающие точную продолжительность, предпринятые каждые промежутки — концепция распределенного трассировки
Заключение
OpenTelemetry делает его очень удобным для инструментов вашего Nodejs приложений. Затем вы можете использовать инструмент APM с открытым исходным кодом, как SignoD, чтобы проанализировать производительность вашего приложения. Поскольку Signoz предлагает полный инструмент наблюдаемости, вам не нужно использовать несколько инструментов для ваших потребностей в мониторинге.
Вы можете попробовать SignoD, посетив его GitHub Repo 👇
Если вы сталкиваетесь с любыми проблемами, пытаясь Signoz, не стесняйтесь писать нам по адресу: support@signoz.io
Если вы хотите узнать больше о Signoz 👇
Мониторинг производительности приложения Golang с Signoz
Оригинал: «https://dev.to/signoz/monitor-your-nodejs-application-with-opentelemetry-and-signoz-21k5»