gpt4 book ai didi

java - 千分尺与 DynaTrace 的集成

转载 作者:行者123 更新时间:2023-12-01 19:37:31 28 4
gpt4 key购买 nike

我有一个需要将指标导出到 DynaTrace 的 Spring Boot 应用程序。我从 Micrometer 的网站上找到了一个不错的库 (io.micrometer:micrometer-registry-dynatrace:latest.release),其中包含设置库并开始使用它的说明。按照他们的指示后,我注意到 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);
}

最佳答案

我也刚刚尝试设置 Spring Dynatrace Micrometer 并遇到了一些异常,直到配置正确的持续时间。从您共享的示例代码中,我注意到缺少此方法。

 @Configuration
public class DynatraceMicrometerConfig implements DynatraceConfig {

private final DevopsProdTenant devopsTenant = new DevopsProdTenant();

private static final String METRIC_CUSTOM_ID = "CUSTOM_EXTENSION_DEVICE";

@Override public String get(String key) {
return null;
}

@Override public String apiToken() {
return devopsTenant.getDecryptedApiToken();
}

@Override public String uri() {
return devopsTenant.getUrl();
}

@Override public String deviceId() {
return METRIC_CUSTOM_ID;
}

// @Override public Duration step() {
// return Duration.parse("PT10S");
// }
}

我们使用的 gradle 文件包含与您正在使用的相同的导入,但我们不依赖应用程序属性,因为我们需要从外部库导入 uri 和 token (但是,使用应用程序属性应该可以工作)。

关于java - 千分尺与 DynaTrace 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59199569/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com