Class MeterConfigBuilderImpl
- All Implemented Interfaces:
MeterConfigBuilder,ProductMeterConfigBuilder
- Since:
- 5.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddEnabledCheck(Predicate<MeterConfig> enabledCheck) Adds a check to the MeterConfigBuilder that will be used to determine if the MeterConfig is enabled.Builds the immutable meter configuration from this builder state and given meter key.Makes the meter to be logged only if it was updated in the last minute.logOnceEveryInterval(int interval) Makes the meter to be logged once every 'interval' times.Adds additional condition for logging the meter.Meter will be logged only when this condition is met.setCustomLogger(org.slf4j.Logger logger) Sets a custom logger for the meter.setIntervalLogging(boolean enabled) Sets the meter to log at regular intervals.setLogOnUpdate(boolean logOnUpdate) Sets the meter to be logged when it's updated.setObjectNameConstructor(MeterObjectNameConstructor objectNameFactory) Set the object name factory for this meter.setProperty(String key, Object value) Sets a property on the MeterConfigBuilder.setUpdateListener(Consumer<IpdMeter> updateListener) Sets the listener that will be called when the meter value is updated andMeterConfigBuilder.setLogOnUpdate(boolean)is enabled.setWorkInProgress(boolean workInProgress) Sets meter as "work in progress".
-
Constructor Details
-
MeterConfigBuilderImpl
public MeterConfigBuilderImpl()
-
-
Method Details
-
setObjectNameConstructor
public ProductMeterConfigBuilder setObjectNameConstructor(MeterObjectNameConstructor objectNameFactory) Description copied from interface:ProductMeterConfigBuilderSet the object name factory for this meter. This is used to construct the JMX ObjectName for the meter.- Specified by:
setObjectNameConstructorin interfaceProductMeterConfigBuilder- Parameters:
objectNameFactory- the object name factory- Returns:
- this builder
-
setUpdateListener
Description copied from interface:MeterConfigBuilderSets the listener that will be called when the meter value is updated andMeterConfigBuilder.setLogOnUpdate(boolean)is enabled.By default this value is set to
IpdConstants.NO_OP.
However, products should set this value for all meters toIpdLoggingService.logMetric(IpdMeter).- Specified by:
setUpdateListenerin interfaceMeterConfigBuilder- Parameters:
updateListener- listener that is called when the meter value is updated- Returns:
- this MeterConfigBuilder
-
addEnabledCheck
Description copied from interface:MeterConfigBuilderAdds a check to the MeterConfigBuilder that will be used to determine if the MeterConfig is enabled.Adding a new check will not remove the previous checks. All checks must pass for the MeterConfig to be enabled.
- Specified by:
addEnabledCheckin interfaceMeterConfigBuilder- Parameters:
enabledCheck- predicate returning true if the Meter should be enabled- Returns:
- this MeterConfigBuilder
-
setProperty
Description copied from interface:MeterConfigBuilderSets a property on the MeterConfigBuilder. Properties can be accessed later on for individual meters throughMeterConfig.getProperties().- Specified by:
setPropertyin interfaceMeterConfigBuilder- Parameters:
key- property keyvalue- property value- Returns:
- this MeterConfigBuilder
-
setWorkInProgress
Description copied from interface:MeterConfigBuilderSets meter as "work in progress". Work in progress meters require additional feature flag to be enabled. It is intended for meter we want to test on internal instances before enabling them on production.- Specified by:
setWorkInProgressin interfaceMeterConfigBuilder- Parameters:
workInProgress- true if the meter is work in progress- Returns:
- this MeterConfigBuilder
-
logOnceEveryInterval
Description copied from interface:MeterConfigBuilderMakes the meter to be logged once every 'interval' times.By default, the 'interval' is set to 1, which usually means the meter will be logged every minute.
If product logs meters every minute, setting the 'interval' value to 5 will make the meter to be logged every 5 minutes.
- Specified by:
logOnceEveryIntervalin interfaceMeterConfigBuilder- Parameters:
interval- how often the meter should be logged. Is a positive integer.- Returns:
- this MeterConfigBuilder
-
logIfUpdatedInLastMinute
Description copied from interface:MeterConfigBuilderMakes the meter to be logged only if it was updated in the last minute.- Specified by:
logIfUpdatedInLastMinutein interfaceMeterConfigBuilder- Returns:
- this MeterConfigBuilder
-
setCustomLogger
Description copied from interface:MeterConfigBuilderSets a custom logger for the meter. This logger will be used to log the meter values.By default, the meter is logged to ipd log file using default logger defined in
IpdConstants.DEFAULT_DATA_LOGGER.- Specified by:
setCustomLoggerin interfaceMeterConfigBuilder- Parameters:
logger- custom logger- Returns:
- this MeterConfigBuilder
-
setIntervalLogging
Description copied from interface:MeterConfigBuilderSets the meter to log at regular intervals.By default, the meters are automatically logged in a regular interval.
Setting the 'enabled' value to false, doesn't disable all logging, but only the regular interval logging. If the meter hasMeterConfigBuilder.setLogOnUpdate(boolean)enabled, it will still be logged when updated.- Specified by:
setIntervalLoggingin interfaceMeterConfigBuilder- Parameters:
enabled- true if the meter should be logged at regular intervals- Returns:
- this MeterConfigBuilder
-
setLogOnUpdate
Description copied from interface:MeterConfigBuilderSets the meter to be logged when it's updated.Meter will still be logged at regular intervals if
MeterConfigBuilder.setIntervalLogging(boolean)is enabled.- Specified by:
setLogOnUpdatein interfaceMeterConfigBuilder- Parameters:
logOnUpdate- true if the meter should be logged when updated- Returns:
- this MeterConfigBuilder
-
logWhen
Description copied from interface:MeterConfigBuilderAdds additional condition for logging the meter.Meter will be logged only when this condition is met.All conditions must be met to log the meter.
- Specified by:
logWhenin interfaceMeterConfigBuilder- Parameters:
shouldLog- predicate returning true if the meter should be logged- Returns:
- this MeterConfigBuilder
-
build
Description copied from interface:ProductMeterConfigBuilderBuilds the immutable meter configuration from this builder state and given meter key.- Specified by:
buildin interfaceProductMeterConfigBuilder- Parameters:
meterKey- the meter key- Returns:
- the immutable meter configuration
-