When the bucket ranges for a histogram change, the server notices the change and marks samples differently. This process allows for histograms with the same set of bucket definitions to be properly aggregated and understood when returned in a query. If different servers have different bucket definitions, then a single metric query cannot return histogram data from the servers.

You should try to keep the Processing Time Histogram bucket definitions the same on all servers. Having different definitions restricts the ability of the server API to aggregate histogram data across servers and makes the results of a query asking "What percentage of the search requests took less than 12 milliseconds?" harder to understand.

For each server in your topology, you must set the separate-monitor-entry-per-tracked-application property of the Processing Time Histogram plugin to true. This property must be set to expose per-application monitoring information under cn=monitor. When the separate-monitor-entry-per-tracked-application property is set to true, then the per-application-ldap-stats property must be set to per-application-only on the Stats Collector plugin and vice versa.

The following dsconfig command line sets the required properties of the Processing Time Histogram plugin.

$ bin/dsconfig set-plugin-prop --plugin-name “Processing Time Histogram” \
  --set separate-monitor-entry-per-tracked-application:true

The following dsconfig command-line sets the per-application-ldap-stats property of the Stats Collector plugin to per-application-only.

$ bin/dsconfig set-plugin-prop --plugin-name “Stats Collector” \
 --set per-application-ldap-stats:per-application-only