Opentelemetry-это библиотека поставщиков-агентских инструментов. В этой статье давайте рассмотрим, как автоматически инструментация приложения Tomcat Java с использованием агента Java Java Opentelemetry.
После сбора данных телеметрии с помощью OpenElemetry мы будем использовать Signoz, инструмент наблюдения с открытым исходным кодом, для визуализации данных.
Шаги, чтобы начать работу с Opentelemetry для приложения Tomcat Java:
- Установка Signoz
- Установка образца приложения Tomcat Java
- Автоатство с агентом Java opentelemetry
- Получение метрик и следы для применения Tomcat в Signoz
Установка Signoz
Вы можете начать с Signoz, используя всего три команды на вашем терминале, если у вас установлен Docker. Вы можете прочитать о других вариантах развертывания из Документация Signoz Анкет
git clone https://github.com/SigNoz/signoz.git cd signoz/deploy/ ./install.sh
У вас будет возможность выбрать между Clickhouse или Kafka + Druid в качестве опции хранения. Попробуя Signoz с помощью базы данных Clickhouse занимает менее 1,5 ГБ памяти, и для этого урока мы будем использовать эту опцию.
Мы установили Signoz на виртуальной машине Ubuntu в облаке Azure. Вы можете получить доступ к UI Signoz AT http://ip_of_signoz: 3000
. Вы можете получить доступ к пользовательскому интерфейсу Signoz в порту: 3000 любого хоста, который вы выберете. В случае использования местного хоста: http://localhost: 3000
Список приложений, показанный на приборной панели, из приложения приложения под названием Hot R.O.D, который поставляется в комплекте с пакетом установки Signoz.
Приборная панель Signoz
Установка образца приложения Tomcat Java
Предварительные условия: Убедитесь, что в вашей системе установлен Tomcat. Если нет, то вы можете скачать его с Сайт Apache Tomcat Анкет Для этого урока я использовал Tomcat 10.0.8.
Шаги по установке образца приложения Tomcat Java:
Загрузите пример приложения, упакованного в качестве файла войны, предоставленного на официальном веб -сайте Apache Tomcat — Образец приложения Tomcat
Самый простой способ запустить приложение Sample — это переместить его в папку WebApps в каталоге Tomcat.
cd Tomcat/webapps cp ~/Downloads/sample.war .
- После того, как вы скопировали файл в папке WebApps, вернитесь в папку Tomcat и запустите приложение, используя следующую команду.
cd .. bin/startup.sh
- Проверьте, работает ли образец приложения по адресу: http://localhost: 8080/sample/ Анкет Образец должен открываться, как ниже.
Образец приложения Tomcat
Нажав на ссылки, показанные на странице, вы можете увидеть, что это делает фиктивные звонки на страницу как часть приложения Hello World.
Автоатство с агентом Java opentelemetry
OpenElemetry имеет очень удобный агент Java JAR, который может быть прикреплен к любому приложению Java 8+ для приложений для инструментов Java .. Агент JAR может обнаружить ряд популярных библиотек и рамок и инструмента сразу же из коробки. Вам не нужно добавлять код для этого.
- Скачать Последний агент Java Jar Анкет
- Для приложения Tomcat вам необходимо настроить несколько переменных среды. Вам нужно создать и добавить новый файл
setenv.sh
В вашей папке Tomcat Bin../startup.sh
Команда, которая используется для запуска приложения Java, проверит дляsetenv.sh
файл и запустите команды соответственно. - В
setenv.sh
Файл, вставьте следующие переменные среды, используя редактор кода:
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/opentelemetry-javaagent-all.jar" export OTEL_METRICS_EXPORTER=none export OTEL_EXPORTER_OTLP_ENDPOINT=:4317 export OTEL_RESOURCE_ATTRIBUTES=service.name=
В Catalina_opts
Переменная среда, вам нужно заменить Путь
С путем местоположения папки, где вы сохранили агент Java Opentelemetry, загруженный на шаге 1.
OTEL_EXPORTER_OTLP_ENDPOINT
Определяет конечную точку для бэкэнда Signoz. Вместо IP Backend Signoz вам необходимо поместить IP -машины хоста, где установлен Signoz. Кроме того, не забудьте разрешить входящие запросы в порт 4317 машины, где размещается бэкэнд Signoz.
OTEL_Resource_attributes
используется, чтобы указать название услуги контролируемой службы. Таким образом, конечные переменные среды будут выглядеть ниже. Обратите внимание, что:
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/Users/cruxaki/Downloads/opentelemetry-javaagent-all.jar" export OTEL_METRICS_EXPORTER=none export OTEL_EXPORTER_OTLP_ENDPOINT=http://40.76.59.122:4317 export OTEL_RESOURCE_ATTRIBUTES=service.name=Tomcat-SigNoz
Убедитесь, что вы сохранили этот файл как setenv.sh
И в вашей папке Tomcat Bin, потому что при запуске Каталина проверяет этот файл на наличие переменных среды.
- Теперь нам нужно перезапустить наше приложение Tomcat Java с прикрепленным к нему агентом Java Opentelemetry. Убедитесь, что вы в своей папке Tomcat Home, а затем перезапустите сервер Tomcat, используя следующие команды:
bin/shutdown.sh bin/startup.sh
Проверьте приложение Tomcat снова по адресу http://localhost: 8080/sample/ И поиграйте с ним, чтобы создать некоторую нагрузку. Это может занять 1-2 минуты, прежде чем он начнет появляться на приборной панели Signoz.
Ниже вы можете найти свой Tomcat-Signoz
приложение в списке контролируемых приложений.
Tomcat-Signoz отображается в списке приложений, контролируемых Signoz
Метрики и следы приложения Tomcat Java
Signoz позволяет легко визуализировать метрики и следы, запечатленные с помощью приборов Opentelemetry.
Signoz поставляется с ящиками Red Metrics Dicars и визуализацией. Красные метрики выступают за:
- Ставка запросов
- Скорость ошибок запросов
- Продолжительность, взятая по запросам
Пользовательский интерфейс Signoz показывает популярные красные показатели производительности приложений
Затем вы можете выбрать определенную метку времени, где задержка высока, чтобы сверлить, чтобы прослеживаться вокруг этой метки времени.
Вид следов на определенной метке времени
Вы можете использовать FlameGraphs для определения проблемы, вызывающей задержку.
Пламениграфы, используемые для распределенной трассировки на приборной панели Signoz
Вывод
Opentelemetry делает его очень удобным для приложения вашего приложения для Spring Boot. Затем вы можете использовать инструмент APM с открытым исходным кодом, такой как Signoz, чтобы проанализировать производительность вашего приложения. Поскольку Signoz предлагает инструмент наблюдения за полным стеком, вам не нужно использовать несколько инструментов для ваших потребностей мониторинга.
Вы можете попробовать Signoz, посетив его github Repo 👇
Если вы тот, кто понимает больше из видео, то вы можете посмотреть учебник о том, как отслеживать ваше приложение Tomcat Java с помощью Opentelemetry и Signoz ниже.
Если вы столкнетесь с какими -либо проблемами, попробовав Signoz, не стесняйтесь писать нам по адресу: support@signoz.io
Если вы хотите прочитать больше о Signoz 👇
Мониторинг производительности приложения Golang с Signoz
Следите за приложением Spring Boot с помощью Opentelemetry и Signoz
Оригинал: «https://dev.to/signoz/monitor-tomcat-java-application-with-opentelemetry-and-signoz-3c7j»