Amend inconsistency

This commit is contained in:
yuri1969
2025-12-03 18:20:33 +01:00
committed by Loïc Mathieu
parent 107ba16ce3
commit 4ec7f23a7b
3 changed files with 12 additions and 18 deletions

View File

@@ -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;

View File

@@ -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");
}
}

View File

@@ -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