0

メトリクスを DynaTrace にエクスポートする必要がある Spring Boot アプリケーションがあります。Micrometer の Web サイトから素敵なライブラリ (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: Unable to start embedded 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);
}
4

1 に答える 1