У меня есть приложение Spring Boot, которое требует экспорта метрик в DynaTrace. Я нашел красивую библиотеку (io.micrometer: micrometer-registry-dynatrace: latest.release) с веб-сайта Micrometer с инструкциями по настройке библиотеки и началу ее использования. Следуя их инструкциям, я заметил, что Tomcat не запускается, и я не уверен, почему. В моем файле build.gradle я импортирую «io.micrometer: micrometer-registry-dynatrace: latest.release». Я проделывал это на каждом этапе, чтобы попытаться изолировать проблему, и хотя в основном он хочет, чтобы я предоставил элементы конфигурации DynaTrace, именно в этот момент Tomcat не может запуститься. Со всем добавленным я получил следующий результат из трассировки стека: org.springframework.boot.web.server.WebServerException: невозможно запустить встроенный Tomcat. Есть идеи относительно того, почему это происходит?
management:
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
endpoints:
web:
exposure:
include: "info, health, metrics, prometheus, dynatrace"
metrics:
tags:
application: ${spring.application.name}
instance: ${HOSTNAME:defaultInstance}
export:
prometheus:
enabled: true
dynatrace:
api-token: ${DYNATRACE_TOKEN:token}
uri: ${DYNATRACE_URL:url} # using dev environment for now
device-id: ${DYNATRACE_DEVICEID:device}
enabled: true
step: 5s
package package.name;
import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.lang.Nullable;
import io.micrometer.dynatrace.DynatraceConfig;
import io.micrometer.dynatrace.DynatraceMeterRegistry;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@Data
public class DynaTrace {
@Value("${management.metrics.export.dynatrace.api-token}")
String MY_TOKEN;
@Value("${management.metrics.export.dynatrace.uri}")
String MY_DYNATRACE_URI;
@Value("${management.metrics.export.dynatrace.device-id}")
String MY_DEVICE_ID;
DynatraceConfig dynatraceConfig = new DynatraceConfig() {
@Override
public String apiToken() {
return MY_TOKEN;
}
@Override
public String uri() {
return MY_DYNATRACE_URI;
}
@Override
public String deviceId() {
return MY_DEVICE_ID;
}
@Override
@Nullable
public String get(String k) {
return null;
}
};
MeterRegistry registry = new DynatraceMeterRegistry(dynatraceConfig, Clock.SYSTEM);
}