mirror of
https://github.com/kestra-io/kestra.git
synced 2025-12-19 18:05:41 -05:00
Amend inconsistency
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
package io.kestra.core.runners.pebble;
|
||||
|
||||
import io.kestra.core.metrics.MetricRegistry;
|
||||
import io.kestra.core.runners.VariableRenderer;
|
||||
import io.kestra.core.runners.pebble.functions.RenderingFunctionInterface;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micronaut.context.ApplicationContext;
|
||||
import io.micronaut.core.annotation.Nullable;
|
||||
import io.pebbletemplates.pebble.PebbleEngine;
|
||||
@@ -22,13 +22,13 @@ public class PebbleEngineFactory {
|
||||
|
||||
private final ApplicationContext applicationContext;
|
||||
private final VariableRenderer.VariableConfiguration variableConfiguration;
|
||||
private final MetricRegistry metricRegistry;
|
||||
private final MeterRegistry meterRegistry;
|
||||
|
||||
@Inject
|
||||
public PebbleEngineFactory(ApplicationContext applicationContext, @Nullable VariableRenderer.VariableConfiguration variableConfiguration, MetricRegistry metricRegistry) {
|
||||
public PebbleEngineFactory(ApplicationContext applicationContext, @Nullable VariableRenderer.VariableConfiguration variableConfiguration, MeterRegistry meterRegistry) {
|
||||
this.applicationContext = applicationContext;
|
||||
this.variableConfiguration = variableConfiguration;
|
||||
this.metricRegistry = metricRegistry;
|
||||
this.meterRegistry = meterRegistry;
|
||||
}
|
||||
|
||||
public PebbleEngine create() {
|
||||
@@ -60,7 +60,7 @@ public class PebbleEngineFactory {
|
||||
|
||||
if (this.variableConfiguration.getCacheEnabled()) {
|
||||
PebbleLruCache cache = new PebbleLruCache(this.variableConfiguration.getCacheSize());
|
||||
cache.register(metricRegistry);
|
||||
cache.register(meterRegistry);
|
||||
builder = builder.templateCache(cache);
|
||||
}
|
||||
return builder;
|
||||
|
||||
@@ -2,12 +2,11 @@ package io.kestra.core.runners.pebble;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import io.kestra.core.metrics.MetricRegistry;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.binder.cache.CaffeineCacheMetrics;
|
||||
import io.pebbletemplates.pebble.cache.PebbleCache;
|
||||
import io.pebbletemplates.pebble.template.PebbleTemplate;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class PebbleLruCache implements PebbleCache<Object, PebbleTemplate> {
|
||||
@@ -24,7 +23,7 @@ public class PebbleLruCache implements PebbleCache<Object, PebbleTemplate> {
|
||||
@Override
|
||||
public PebbleTemplate computeIfAbsent(Object key, Function<? super Object, ? extends PebbleTemplate> mappingFunction) {
|
||||
try {
|
||||
return cache.get(key, k -> mappingFunction.apply(key));
|
||||
return cache.get(key, mappingFunction);
|
||||
} catch (Exception e) {
|
||||
// we retry the mapping function in order to let the exception be thrown instead of being capture by cache
|
||||
return mappingFunction.apply(key);
|
||||
@@ -36,12 +35,7 @@ public class PebbleLruCache implements PebbleCache<Object, PebbleTemplate> {
|
||||
cache.invalidateAll();
|
||||
}
|
||||
|
||||
public void register(MetricRegistry metricRegistry) {
|
||||
CaffeineCacheMetrics<Object, PebbleTemplate, Cache<Object, PebbleTemplate>> metrics = new CaffeineCacheMetrics<>(
|
||||
cache,
|
||||
"pebble.lru.cache",
|
||||
List.of()
|
||||
);
|
||||
metricRegistry.bind(metrics);
|
||||
public void register(MeterRegistry meterRegistry) {
|
||||
CaffeineCacheMetrics.monitor(meterRegistry, cache, "pebble-template");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.kestra.core.runners;
|
||||
|
||||
import io.kestra.core.junit.annotations.KestraTest;
|
||||
import io.kestra.core.metrics.MetricRegistry;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.flows.DependsOn;
|
||||
import io.kestra.core.models.flows.Flow;
|
||||
@@ -22,6 +21,7 @@ import io.kestra.core.storages.kv.KVStore;
|
||||
import io.kestra.core.storages.kv.KVValue;
|
||||
import io.kestra.core.tenant.TenantService;
|
||||
import io.kestra.core.utils.IdUtils;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micronaut.context.ApplicationContext;
|
||||
import io.micronaut.test.annotation.MockBean;
|
||||
import jakarta.inject.Inject;
|
||||
@@ -164,7 +164,7 @@ class RunVariablesTest {
|
||||
void nonResolvableDynamicInputsShouldBeSkipped() {
|
||||
VariableRenderer.VariableConfiguration mkVariableConfiguration = Mockito.mock(VariableRenderer.VariableConfiguration.class);
|
||||
ApplicationContext mkApplicationContext = Mockito.mock(ApplicationContext.class);
|
||||
MetricRegistry mkMetricRegistry = Mockito.mock(MetricRegistry.class);
|
||||
MeterRegistry mkMeterRegistry = Mockito.mock(MeterRegistry.class);
|
||||
Map<String, Object> variables = new RunVariables.DefaultBuilder()
|
||||
.withFlow(Flow
|
||||
.builder()
|
||||
@@ -177,7 +177,7 @@ class RunVariablesTest {
|
||||
.build()
|
||||
)
|
||||
.withExecution(Execution.builder().id(IdUtils.create()).build())
|
||||
.build(new RunContextLogger(), PropertyContext.create(new VariableRenderer(new PebbleEngineFactory(mkApplicationContext, mkVariableConfiguration, mkMetricRegistry), mkVariableConfiguration)));
|
||||
.build(new RunContextLogger(), PropertyContext.create(new VariableRenderer(new PebbleEngineFactory(mkApplicationContext, mkVariableConfiguration, mkMeterRegistry), mkVariableConfiguration)));
|
||||
|
||||
Assertions.assertEquals(Map.of(
|
||||
"a", true
|
||||
|
||||
Reference in New Issue
Block a user