Add missing management.metrics.export.atlas properties

Closes gh-36496
pull/36620/head
Andy Wilkinson 1 year ago
parent 99418f7dcc
commit a5d5908c27

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -78,6 +78,21 @@ public class AtlasProperties {
*/ */
private boolean lwcEnabled; private boolean lwcEnabled;
/**
* Step size (reporting frequency) to use for streaming to Atlas LWC. This is the
* highest supported resolution for getting an on-demand stream of the data. It must
* be less than or equal to management.metrics.export.atlas.step and
* management.metrics.export.atlas.step should be an even multiple of this value.
*/
private Duration lwcStep = Duration.ofSeconds(5);
/**
* Whether expressions with the same step size as Atlas publishing should be ignored
* for streaming. Used for cases where data being published to Atlas is also sent into
* streaming from the backend.
*/
private boolean lwcIgnorePublishStep = true;
/** /**
* Frequency for refreshing config settings from the LWC service. * Frequency for refreshing config settings from the LWC service.
*/ */
@ -170,6 +185,22 @@ public class AtlasProperties {
this.lwcEnabled = lwcEnabled; this.lwcEnabled = lwcEnabled;
} }
public Duration getLwcStep() {
return this.lwcStep;
}
public void setLwcStep(Duration lwcStep) {
this.lwcStep = lwcStep;
}
public boolean isLwcIgnorePublishStep() {
return this.lwcIgnorePublishStep;
}
public void setLwcIgnorePublishStep(boolean lwcIgnorePublishStep) {
this.lwcIgnorePublishStep = lwcIgnorePublishStep;
}
public Duration getConfigRefreshFrequency() { public Duration getConfigRefreshFrequency() {
return this.configRefreshFrequency; return this.configRefreshFrequency;
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -84,6 +84,16 @@ class AtlasPropertiesConfigAdapter extends PropertiesConfigAdapter<AtlasProperti
return get(AtlasProperties::isLwcEnabled, AtlasConfig.super::lwcEnabled); return get(AtlasProperties::isLwcEnabled, AtlasConfig.super::lwcEnabled);
} }
@Override
public Duration lwcStep() {
return get(AtlasProperties::getLwcStep, AtlasConfig.super::lwcStep);
}
@Override
public boolean lwcIgnorePublishStep() {
return get(AtlasProperties::isLwcIgnorePublishStep, AtlasConfig.super::lwcIgnorePublishStep);
}
@Override @Override
public Duration configRefreshFrequency() { public Duration configRefreshFrequency() {
return get(AtlasProperties::getConfigRefreshFrequency, AtlasConfig.super::configRefreshFrequency); return get(AtlasProperties::getConfigRefreshFrequency, AtlasConfig.super::configRefreshFrequency);

@ -116,4 +116,18 @@ class AtlasPropertiesConfigAdapterTests {
.isEqualTo("https://atlas.example.com/evaluate"); .isEqualTo("https://atlas.example.com/evaluate");
} }
@Test
void whenPropertiesLwcStepIsSetAdapterLwcStepReturnsIt() {
AtlasProperties properties = new AtlasProperties();
properties.setLwcStep(Duration.ofSeconds(30));
assertThat(new AtlasPropertiesConfigAdapter(properties).lwcStep()).isEqualTo(Duration.ofSeconds(30));
}
@Test
void whenPropertiesLwcIgnorePublishStepIsSetAdapterLwcIgnorePublishStepReturnsIt() {
AtlasProperties properties = new AtlasProperties();
properties.setLwcIgnorePublishStep(false);
assertThat(new AtlasPropertiesConfigAdapter(properties).lwcIgnorePublishStep()).isFalse();
}
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -41,6 +41,8 @@ class AtlasPropertiesTests {
assertThat(properties.getUri()).isEqualTo(config.uri()); assertThat(properties.getUri()).isEqualTo(config.uri());
assertThat(properties.getMeterTimeToLive()).isEqualTo(config.meterTTL()); assertThat(properties.getMeterTimeToLive()).isEqualTo(config.meterTTL());
assertThat(properties.isLwcEnabled()).isEqualTo(config.lwcEnabled()); assertThat(properties.isLwcEnabled()).isEqualTo(config.lwcEnabled());
assertThat(properties.getLwcStep()).isEqualTo(config.lwcStep());
assertThat(properties.isLwcIgnorePublishStep()).isEqualTo(config.lwcIgnorePublishStep());
assertThat(properties.getConfigRefreshFrequency()).isEqualTo(config.configRefreshFrequency()); assertThat(properties.getConfigRefreshFrequency()).isEqualTo(config.configRefreshFrequency());
assertThat(properties.getConfigTimeToLive()).isEqualTo(config.configTTL()); assertThat(properties.getConfigTimeToLive()).isEqualTo(config.configTTL());
assertThat(properties.getConfigUri()).isEqualTo(config.configUri()); assertThat(properties.getConfigUri()).isEqualTo(config.configUri());

Loading…
Cancel
Save