Broadleaf Microservices
  • v1.0.0-latest-prod

Extension Common Configuration

Overview

There are various properties you can configure when utilizing Broadleaf’s Extension Common library.

Ignite Cache Node Properties (Since 2.0.2)

When Ignite is used for caching, these properties influence the configuration of the embedded Ignite node. The properties here are bound to com.broadleafcommerce.common.extension.autoconfigure.IgniteCacheNodeProperties.

Property Description Default

broadleaf.common.cache.ignite.node.memory-page-size

The memory page size to use for Ignite. Ignite recommends this to be "no less than the lower of: the page size of your storage media (SSD, Flash, HDD, etc.) and the cache page size of your operating system".

4KB

broadleaf.common.cache.ignite.node.system-data-region-initial-size

The initial allocation size of the system data storage region for Ignite system cache (this is off-heap memory).

40MB

broadleaf.common.cache.ignite.node.system-data-region-max-size

The maximum allowed size of the system data storage region for Ignite system cache (this is off-heap memory).

100MB

broadleaf.common.cache.ignite.node.default-data-region-empty-pages-pool-size

Configures the default data region’s DataRegionConfiguration.getEmptyPagesPoolSize() (see the Javadocs there).

100

broadleaf.common.cache.ignite.node.default-data-region-page-eviction-mode

Configures the default data region’s DataRegionConfiguration.getPageEvictionMode() (see the Javadocs there).

random_2_lru

broadleaf.common.cache.ignite.node.default-data-region-metrics-enabled

Configures the default data region’s DataRegionConfiguration.isMetricsEnabled() (see the Javadocs there).

(since 2.0.7) false, (before 2.0.7) true

broadleaf.common.cache.ignite.node.default-data-region-initial-size

The initial allocation size of the default data storage region (this is off-heap memory).

256MB

broadleaf.common.cache.ignite.node.default-data-region-max-size

The maximum allowed size of the default data storage region (this is off-heap memory).

1GB

(Since 2.0.7) broadleaf.common.cache.ignite.node.metrics-collection-enabled

A global setting that drives whether MicrometerIgniteAutoConfiguration will engage metrics collection at all for Ignite.

false

(Since 2.0.7) broadleaf.common.cache.ignite.node.cache-statistics-enabled

Drives whether org.apache.ignite.IgniteCache#enableStatistics will be set. This setting only takes effect if broadleaf.common.cache.ignite.node.metrics-collection-enabled is true.

false

(Since 2.0.7) broadleaf.common.cache.ignite.node.included-event-types

Configures the IgniteConfiguration.getIncludeEventTypes() value. By default, we register EventType.EVT_CACHE_STARTED, which is relevant for Broadleaf’s default cache metrics collection. This ensures lazily initialized caches (ex: from org.springframework.cache.annotation.Cacheable) can be monitored.

[98] (matches EventType.EVT_CACHE_STARTED)

Tomcat Metrics Meter Filter Properties (Since 2.0.7)

These properties influence which Tomcat metrics are registered in Micrometer meter registries. The properties here are bound to com.broadleafcommerce.common.extension.autoconfigure.metrics.tomcat.TomcatMetricsMeterFilterProperties.

Property Description Default

broadleaf.common.metrics.tomcat.meter-filter.enabled

Whether the Tomcat metrics whitelist filter is enabled. Defaults to true. This property is only meaningful if server.tomcat.mbeanregistry.enabled is true.

true

broadleaf.common.metrics.tomcat.meter-filter.whitelisted-meter-ids

The specific Tomcat meter IDs that are allowed to be registered. All other metrics starting with "tomcat." will be denied. We include these metrics by default, with the expectation that they would be commonly useful for load balancing or scaling decisions.

  • tomcat.threads.config.max: The absolute maximum number of worker threads Tomcat is allowed to create in its pool. This represents the ceiling of concurrent requests the server can process at the exact same time. This is controlled by the server.tomcat.threads.max property. This metric allows exposing its value.

  • tomcat.threads.current: The total number of threads that currently exist in the Tomcat pool. This includes both the threads actively doing work right now, AND the idle threads that are just sitting around waiting for a new request to come in. This number scales up as traffic increases, but will never exceed tomcat.threads.config.max.

  • tomcat.threads.busy: The number of threads currently actively processing HTTP requests at this exact millisecond. This is a critical metric for observability. If tomcat.threads.busy consistently gets close to tomcat.threads.config.max, it means the service is saturated and is about to start bottlenecking, queueing, or rejecting incoming traffic.

["tomcat.threads.config.max", "tomcat.threads.current", "tomcat.threads.busy"]