Implications of disabling built-in metrics reporting

Hi All ,

I am new to using camunda and trying to find more info on bulit-in Metrics reporting.

  • What are the drawbacks of switching it off?
  • Are stored metrics used by cockpit? or maybe Optimize ?
  • If not by cockpit then does that data exists to setup custom reporting?

We have to make a decision that we need it to be turned ‘on’ or ‘off’’ as it creates lots of rows in
database table ACT_RU_METER_LOG
Other options might be scheduled clean-up , but I can’t find any information related to usage , hence finding it difficult to take a decision.

Will help if any one in group has experience on this topic and can provide answers.

Thanks
Dheeraj

@dheeraj You can set the engine configuration property isDbMetricsReporterActivate to false. This deactivates the time-based metrics reporter that tries to write to the database when it is shut down.

<property name="dbMetricsReporterActivate" value="false" />

1 Like

Thanks @aravindhrs,
Do you know how this metrics is used and will it impact any of cockpits functionality?

Good suggesting switching of periodic write, will sure do that.

@dheeraj, Process engine reports runtime metrics to the database about usage, load, and performance of the BPM platform. Metrics are reported in the database table ACT_RU_METER_LOG.

Metrics can be queried by making a MetricsQuery offered by the ManagementService .

long numCompletedActivityInstances = managementService
  .createMetricsQuery()
  .name(Metrics.ACTIVTY_INSTANCE_START)
  .sum();

By default, process engine flushes the collected metrics to the runtime database tables in an interval of 15 minutes. To change the time interval you can configure like below:

public class MetricsConfigurationPlugin implements ProcessEnginePlugin {

  public void preInit(ProcessEngineConfigurationImpl processEngineConfiguration) {  }

  public void postInit(ProcessEngineConfigurationImpl processEngineConfiguration) {
    DbMetricsReporter metricsReporter = new DbMetricsReporter(processEngineConfiguration.getMetricsRegistry(),
        processEngineConfiguration.getCommandExecutorTxRequired());
    metricsReporter.setReportingIntervalInSeconds(5);
    processEngineConfiguration.setDbMetricsReporter(metricsReporter);
  }

  public void postProcessEngineBuild(ProcessEngine processEngine) {  }
}

If you are directly accessing the Java API, you can disable the metrics reporting by using the engine configuration flag isMetricsEnabled and set it to false .

For the configuration via XML file (e.g. standalone.xml or bpm-platform.xml) you can disable reporting by adding the property:

<property name="metricsEnabled">false</property>