Новая реликвия для весеннего ботинка
Недавно мы конвертировали приложение Tomcat/ Spring в Spring Boot. Все отлично работает, кроме новой реликвии. Есть ли способ, которым я могу легко настроить новую реликвию с проектом весенней загрузки. Я не хочу жестко кодировать местоположение нового пути JAR агента реликвии, а затем запустить проект весенней загрузки с путем.
редактировать: весенний загрузочный проект с Maven
3 ответа
Вы можете включить NewRelic Maven зависимость и использовать maven-dependency-plugin
распаковать в ваш target/classes
каталог, который позволяет Maven включить его в окончательный файл Jar. Тогда вы должны добавить Premain-Class
атрибут в файл манифеста, и вы можете использовать свой jar приложения в качестве -javaagent
источник. Вы можете найти подробности в моем блоге
Пошаговые инструкции
- Извлеките файлы из нового архива Java-агента.
- Создайте каталог с именем newrelic в корне вашего приложения.
- Поместите файл newrelic.jar из архива в созданную выше папку newrelic
- Поместите файл конфигурации YAML newrelic.yml в созданную выше папку newrelic.
- Обновите значения в newrelic.yml, как показано ниже.
- license_key: "ваш лицензионный ключ"
- app_name: "Ваше имя приложения"
- Запустите ваше приложение, используя опцию javaagent
- java -javaagent: newrelic \ newrelic.jar -jar yourapplication.jar
Опция -javaagent должна быть перед -jar, чтобы агент мог запускаться
Я застрял с той же проблемой, вот что я понял. Я реализовал 2-й способ для своих приложений. Существует 3 способа интеграции New Relic с приложением Spring Boot:
- Использование агента Java, предоставленного New Relic
- Использование зависимости от микрометра New Relic
- Зависимость новой реликвии от Micormeter
1. Конфигурация с использованием агента Java, предоставленного New Relic
- Загрузите агент Java по этому URL- адресу: https://docs.newrelic.com/docs/release-notes/agent-release-notes/java-release-notes/
- Извлеките его.
- Измените файл newrelic.yml внутри извлеченной папки, включив в него ваш license_key:app_name:
- Создайте приложение SpringBoot с некоторыми конечными точками REST.
- Создайте приложение.
- Перейдите к корневому пути, по которому вы извлекли агент Java newrelic.
- Введите эту команду
java -javagent:<path to your new relic jar>\newrelic.jar -jar <path to your application jar>\<you rapplication jar name>.jar
Для просмотра метрик приложения-
- Войдите в свою учетную запись New Relic.
- Перейдите на вкладку «Проводник».
- Нажмите «Сервисы-APM».
- Вы можете увидеть имя вашего приложения (которое вы упомянули в файле newrelic.yml) в списке.
- Нажмите на название приложения.
- Приборная панель должна выглядеть примерно так.
Предпочтительным способом сделать это является использование зависимости Micrometer от New Relic.
2. Конфигурация с использованием зависимости от микрометра New Relic
- Добавьте эту зависимость
<dependency>
<groupId>com.newrelic.telemetry</groupId>
<artifactId>micrometer-registry-new-relic</artifactId>
<version>0.7.0</version>
</dependency>
- Изменить
MicrometerConfig.java
class, чтобы добавить ключ API и имя приложения.
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.newrelic.telemetry.Attributes;
import com.newrelic.telemetry.micrometer.NewRelicRegistry;
import com.newrelic.telemetry.micrometer.NewRelicRegistryConfig;
import java.time.Duration;
import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.core.instrument.util.NamedThreadFactory;
@Configuration
@AutoConfigureBefore({ CompositeMeterRegistryAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class })
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnClass(NewRelicRegistry.class)
public class MicrometerConfig {
@Bean
public NewRelicRegistryConfig newRelicConfig() {
return new NewRelicRegistryConfig() {
@Override
public String get(String key) {
return null;
}
@Override
public String apiKey() {
return "your_api_key"; // for production purposes take it from config file
}
@Override
public Duration step() {
return Duration.ofSeconds(5);
}
@Override
public String serviceName() {
return "your_service_name"; // take it from config file
}
};
}
@Bean
public NewRelicRegistry newRelicMeterRegistry(NewRelicRegistryConfig config) throws UnknownHostException {
NewRelicRegistry newRelicRegistry = NewRelicRegistry.builder(config)
.commonAttributes(new Attributes().put("host", InetAddress.getLocalHost().getHostName())).build();
newRelicRegistry.config().meterFilter(MeterFilter.ignoreTags("plz_ignore_me"));
newRelicRegistry.config().meterFilter(MeterFilter.denyNameStartsWith("jvm.threads"));
newRelicRegistry.start(new NamedThreadFactory("newrelic.micrometer.registry"));
return newRelicRegistry;
}
}
- Запустите приложение.
Чтобы просмотреть показатели приложения,
- Войдите в свою учетную запись New Relic.
- Перейдите на вкладку «Проводник».
- Нажмите «Сервисы» — «OpenTelemetry».
- Вы можете увидеть имя вашего приложения (которое вы упомянули в файле MicrometerConfig) в списке.
- Нажмите на название приложения.
- Приборная панель должна выглядеть примерно так.
Вот ссылка на мой первоначальный вопрос .