From 4db2425333dbf0b65886b32b18c89ae75746054e Mon Sep 17 00:00:00 2001 From: Daniel Gonzalez Date: Fri, 31 Jan 2025 19:01:48 -0600 Subject: [PATCH] modifications for observability functionality autonomy --- .../config/ObservabilityConfiguration.java | 19 +++++++++---------- .../datadog/DataDogRegistryConfig.java | 2 +- .../datadog/DataDogRegistrySupplier.java | 6 +++--- .../newrelic/NewRelicRegistryConfig.java | 2 +- .../newrelic/NewRelicRegistrySupplier.java | 8 ++++---- .../prometheus/PrometheusRegistryConfig.java | 2 +- .../PrometheusRegistrySupplier.java | 6 +++--- .../AddDefaultTagsRegistryCustomizer.java | 4 ++-- .../AddFiltersRegistryCustomizer.java | 4 ++-- .../ArmoryObservabilityCompositeRegistry.java | 2 +- .../registry/RegistryConfigWrapper.java | 2 +- .../registry/RegistryCustomizer.java | 2 +- .../service/MeterFilterService.java | 2 +- .../observability/service/TagsService.java | 8 ++++---- kork-web/kork-web.gradle | 2 -- 15 files changed, 34 insertions(+), 37 deletions(-) diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/config/ObservabilityConfiguration.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/config/ObservabilityConfiguration.java index 9c7ce044d..4166121c3 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/config/ObservabilityConfiguration.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/config/ObservabilityConfiguration.java @@ -16,11 +16,6 @@ package com.netflix.spinnaker.kork.actuator.observability.config; -import io.micrometer.core.instrument.Clock; -import io.prometheus.client.CollectorRegistry; -import java.util.Collection; -import java.util.function.Supplier; -import lombok.extern.slf4j.Slf4j; import com.netflix.spinnaker.kork.actuator.observability.datadog.DataDogRegistrySupplier; import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; import com.netflix.spinnaker.kork.actuator.observability.newrelic.NewRelicRegistrySupplier; @@ -35,6 +30,11 @@ import com.netflix.spinnaker.kork.actuator.observability.service.TagsService; import com.netflix.spinnaker.kork.actuator.observability.version.SpringPackageVersionResolver; import com.netflix.spinnaker.kork.actuator.observability.version.VersionResolver; +import io.micrometer.core.instrument.Clock; +import io.prometheus.client.CollectorRegistry; +import java.util.Collection; +import java.util.function.Supplier; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -116,11 +116,10 @@ public ArmoryObservabilityCompositeRegistry armoryObservabilityCompositeRegistry clock, registrySuppliers, meterRegistryCustomizers); } - @Bean - public PrometheusScrapeEndpoint prometheusScrapeEndpoint(CollectorRegistry collectorRegistry) - { - return new PrometheusScrapeEndpoint(collectorRegistry); - } + @Bean + public PrometheusScrapeEndpoint prometheusScrapeEndpoint(CollectorRegistry collectorRegistry) { + return new PrometheusScrapeEndpoint(collectorRegistry); + } @Bean public DataDogRegistrySupplier dataDogRegistrySupplier( diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistryConfig.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistryConfig.java index 80dbf498c..6a8a39f4b 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistryConfig.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistryConfig.java @@ -16,8 +16,8 @@ package com.netflix.spinnaker.kork.actuator.observability.datadog; -import java.util.Optional; import com.netflix.spinnaker.kork.actuator.observability.model.MetricsDatadogConfig; +import java.util.Optional; public class DataDogRegistryConfig implements io.micrometer.datadog.DatadogConfig { private final MetricsDatadogConfig datadogConfig; diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistrySupplier.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistrySupplier.java index 5429b0060..aeab488ab 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistrySupplier.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/datadog/DataDogRegistrySupplier.java @@ -16,13 +16,13 @@ package com.netflix.spinnaker.kork.actuator.observability.datadog; +import com.netflix.spinnaker.kork.actuator.observability.model.MetricsDatadogConfig; +import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; +import com.netflix.spinnaker.kork.actuator.observability.registry.RegistryConfigWrapper; import io.micrometer.core.ipc.http.HttpUrlConnectionSender; import io.micrometer.datadog.DatadogMeterRegistry; import java.time.Duration; import java.util.function.Supplier; -import com.netflix.spinnaker.kork.actuator.observability.model.MetricsDatadogConfig; -import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; -import com.netflix.spinnaker.kork.actuator.observability.registry.RegistryConfigWrapper; import org.jetbrains.annotations.NotNull; public class DataDogRegistrySupplier implements Supplier { diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistryConfig.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistryConfig.java index ca19ae719..06d8a1e1d 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistryConfig.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistryConfig.java @@ -16,10 +16,10 @@ package com.netflix.spinnaker.kork.actuator.observability.newrelic; +import com.netflix.spinnaker.kork.actuator.observability.model.MetricsNewRelicConfig; import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.Optional; -import com.netflix.spinnaker.kork.actuator.observability.model.MetricsNewRelicConfig; /** * New Relic config wrapper that sources its config from the Spring Context Plugin Configuration. diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistrySupplier.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistrySupplier.java index 68612b0ec..6eb5dcbd5 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistrySupplier.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/newrelic/NewRelicRegistrySupplier.java @@ -16,6 +16,10 @@ package com.netflix.spinnaker.kork.actuator.observability.newrelic; +import com.netflix.spinnaker.kork.actuator.observability.model.MetricsNewRelicConfig; +import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; +import com.netflix.spinnaker.kork.actuator.observability.registry.RegistryConfigWrapper; +import com.netflix.spinnaker.kork.actuator.observability.service.TagsService; import io.micrometer.core.ipc.http.HttpUrlConnectionSender; import io.micrometer.newrelic.NewRelicRegistry; import java.net.InetSocketAddress; @@ -24,10 +28,6 @@ import java.util.List; import java.util.concurrent.Executors; import java.util.function.Supplier; -import com.netflix.spinnaker.kork.actuator.observability.model.MetricsNewRelicConfig; -import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; -import com.netflix.spinnaker.kork.actuator.observability.registry.RegistryConfigWrapper; -import com.netflix.spinnaker.kork.actuator.observability.service.TagsService; /** * A Supplier bean that can be registered with Spring without providing an actual registry diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistryConfig.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistryConfig.java index 5dbddd45b..10d4e61c4 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistryConfig.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistryConfig.java @@ -16,9 +16,9 @@ package com.netflix.spinnaker.kork.actuator.observability.prometheus; +import com.netflix.spinnaker.kork.actuator.observability.model.MetricsPrometheusConfig; import io.micrometer.prometheus.PrometheusConfig; import java.time.Duration; -import com.netflix.spinnaker.kork.actuator.observability.model.MetricsPrometheusConfig; /** * Prometheus config wrapper that sources its config from the Spring Context Plugin Configuration. diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistrySupplier.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistrySupplier.java index 3d4cb0536..6b3a74225 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistrySupplier.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/prometheus/PrometheusRegistrySupplier.java @@ -16,12 +16,12 @@ package com.netflix.spinnaker.kork.actuator.observability.prometheus; -import io.micrometer.core.instrument.Clock; -import io.prometheus.client.CollectorRegistry; -import java.util.function.Supplier; import com.netflix.spinnaker.kork.actuator.observability.model.MetricsPrometheusConfig; import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; import com.netflix.spinnaker.kork.actuator.observability.registry.RegistryConfigWrapper; +import io.micrometer.core.instrument.Clock; +import io.prometheus.client.CollectorRegistry; +import java.util.function.Supplier; /** * Supplier bean so that we don't create an actual bean of the prometheus registry. We do this so diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddDefaultTagsRegistryCustomizer.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddDefaultTagsRegistryCustomizer.java index 541322882..a9371057b 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddDefaultTagsRegistryCustomizer.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddDefaultTagsRegistryCustomizer.java @@ -16,10 +16,10 @@ package com.netflix.spinnaker.kork.actuator.observability.registry; -import io.micrometer.core.instrument.MeterRegistry; -import lombok.extern.slf4j.Slf4j; import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import com.netflix.spinnaker.kork.actuator.observability.service.TagsService; +import io.micrometer.core.instrument.MeterRegistry; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; @Slf4j diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddFiltersRegistryCustomizer.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddFiltersRegistryCustomizer.java index 072a198c4..8d13f7d54 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddFiltersRegistryCustomizer.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/AddFiltersRegistryCustomizer.java @@ -16,10 +16,10 @@ package com.netflix.spinnaker.kork.actuator.observability.registry; -import io.micrometer.core.instrument.MeterRegistry; -import lombok.extern.slf4j.Slf4j; import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import com.netflix.spinnaker.kork.actuator.observability.service.MeterFilterService; +import io.micrometer.core.instrument.MeterRegistry; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; @Slf4j diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/ArmoryObservabilityCompositeRegistry.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/ArmoryObservabilityCompositeRegistry.java index 8b13760af..48c5b5fb1 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/ArmoryObservabilityCompositeRegistry.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/ArmoryObservabilityCompositeRegistry.java @@ -18,6 +18,7 @@ import static java.util.Optional.ofNullable; +import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.composite.CompositeMeterRegistry; @@ -29,7 +30,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; -import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; /** * This is the registry that Micrometer/Spectator will use. It will collect all of the enabled diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryConfigWrapper.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryConfigWrapper.java index 710509675..3ed21182d 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryConfigWrapper.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryConfigWrapper.java @@ -16,10 +16,10 @@ package com.netflix.spinnaker.kork.actuator.observability.registry; +import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import io.micrometer.core.instrument.MeterRegistry; import lombok.Builder; import lombok.Data; -import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; @Data @Builder diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryCustomizer.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryCustomizer.java index 1790f5253..09dd2a888 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryCustomizer.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/registry/RegistryCustomizer.java @@ -16,8 +16,8 @@ package com.netflix.spinnaker.kork.actuator.observability.registry; -import io.micrometer.core.instrument.MeterRegistry; import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; +import io.micrometer.core.instrument.MeterRegistry; @FunctionalInterface public interface RegistryCustomizer { diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/MeterFilterService.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/MeterFilterService.java index c6a1ee49e..3cc244983 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/MeterFilterService.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/MeterFilterService.java @@ -18,11 +18,11 @@ import static com.netflix.spinnaker.kork.actuator.observability.filters.ArmoryRecommendedFilters.ARMORY_RECOMMENDED_FILTERS; +import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import io.micrometer.core.instrument.config.MeterFilter; import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; -import com.netflix.spinnaker.kork.actuator.observability.model.MeterRegistryConfig; import org.springframework.util.CollectionUtils; /** diff --git a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/TagsService.java b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/TagsService.java index 832506d4f..2a02fbcf5 100644 --- a/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/TagsService.java +++ b/kork-actuator/src/main/java/com/netflix/spinnaker/kork/actuator/observability/service/TagsService.java @@ -18,6 +18,10 @@ import static java.util.Optional.ofNullable; +import com.netflix.spinnaker.kork.actuator.observability.model.ArmoryEnvironmentMetadata; +import com.netflix.spinnaker.kork.actuator.observability.model.MetricsConfig; +import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; +import com.netflix.spinnaker.kork.actuator.observability.version.VersionResolver; import io.micrometer.core.instrument.Tag; import java.util.HashMap; import java.util.List; @@ -25,10 +29,6 @@ import java.util.Properties; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; -import com.netflix.spinnaker.kork.actuator.observability.model.ArmoryEnvironmentMetadata; -import com.netflix.spinnaker.kork.actuator.observability.model.MetricsConfig; -import com.netflix.spinnaker.kork.actuator.observability.model.ObservabilityConfigurationProperites; -import com.netflix.spinnaker.kork.actuator.observability.version.VersionResolver; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.info.BuildProperties; diff --git a/kork-web/kork-web.gradle b/kork-web/kork-web.gradle index e0dc6cc42..a187fc9d4 100644 --- a/kork-web/kork-web.gradle +++ b/kork-web/kork-web.gradle @@ -37,8 +37,6 @@ dependencies { } implementation "io.zipkin.brave:brave-instrumentation-okhttp3" - implementation group: 'io.prometheus', name: 'simpleclient_common', version: '0.9.0' - compileOnly "org.springframework.boot:spring-boot-starter-actuator" runtimeOnly "org.hibernate.validator:hibernate-validator"