Monitor and observe the Synchrony process
This monitoring feature allows to implement better monitoring of the collaborative editing performance of Confluence. You can export core Java Virtual Machine (JVM) as well as Synchrony-specific metrics via JMX or statsD. As a result, you can improve monitoring of Synchrony processes and integrate with your existing monitoring systems.
On this page:
Metrics description
The metrics listed in this section are exported out of the box. Integrate the metrics into the monitoring systems used in your instances.
JVM and System metrics
Core JVM metrics include various performance indicators such as garbage collection, memory usage, and CPU utilization. These metrics provide insights into the overall health and performance of the JVM process.
| Metric name | Metric type | Description |
|---|---|---|
jvm_gc_live_data_size | Gauge | JVM Memory Management metrics |
jvm_gc_max_data_size | Gauge | |
jvm_gc_memory_allocated | Counter | |
jvm_gc_memory_promoted | Counter | |
jvm_gc_pause | Histogram | |
jvm_buffer_count | Gauge | JVM Memory Management metrics |
jvm_buffer_memory_used | Gauge | |
jvm_buffer_total_capacity | Gauge | |
jvm_memory_committed | Gauge | |
jvm_memory_max | Gauge | |
jvm_memory_used | Gauge | |
jvm_threads_daemon | Gauge | JVM Threads metrics |
jvm_threads_deadlocked | Gauge | |
jvm_threads_deadlocked_monitor | Gauge | |
jvm_threads_live | Gauge | |
jvm_threads_peak | Gauge | |
jvm_threads_started | Gauge | |
jvm_threads_states | Gauge | |
process_cpu_time | Counter | System load metrics |
process_cpu_usage | Gauge | |
system_cpu_count | Gauge | |
system_cpu_usage | Gauge | |
system_load_average_1m | Gauge |
Synchrony-specific metrics
Synchrony-specific metrics focus on the performance of the Synchrony process itself. They include message processing times, user activity, and error counts, helping you monitor and optimize the collaborative editing experience.
Editing metrics
All edits performed in the editor are propagated between active editing sessions as messages. Slow message processing may lead to a poor editing user experience and is a strong signal of issues with the running Synchrony process.
External data changes
External data changes, or content reconciliation, is a type of content change that happens outside the editor.
It is important to track those metrics because for the collaboration editing engine (Synchrony), such external changes usually mean a need to apply a big diff to the editing history.
Main metrics are counter_content_reconciliation_full and prof_content_reconciliation_request_latency. Other metrics are used for further drill-down. Below are useful formulas that show how those metrics are connected to each other:
prof_content_reconciliation_request_latency = prof_content_reconciliation_parse_request
+ porf_full_content_reconciliation
porf_full_content_reconciliation = prof_content_reconciliation_reqopts_to_revision-message
+ content_reconciliation_hub_response
| Metric name | Metric type | Description |
|---|---|---|
| General metrics | ||
counter_errors | Counter | Errors count |
counter_warnings | Counter | Warnings count |
counter_total_users | Counter | Total number of users |
gauge_active_users | Gauge | Active users |
counter_collaborators_in_hub | Histogram | Distribution of collaborators per page |
| External data changes metrics | ||
counter_content_reconciliation_full | Counter | Number of content reconciliations |
prof_content_reconciliation_request_latency | Timer | Content reconciliation request performance |
prof_content_reconciliation_parse_request | Timer | Request parameters parsing performance |
prof_full_content_reconciliation | Timer | Content reconciliation performance |
prof_content_reconciliation_reqopts_to_revision-message | Timer | Retrieving the correct revision based on request options operation performance |
prof_content_reconciliation_hub_response | Timer | Reconciliation hub performance to apply external changes |
| Editing metrics | ||
timing_message_delta | Timer | Incoming message processing time |
counter_total_messages_processed | Counter | Total number of messages being processed |
counter_message_delta_over_1000 | Counter | Total number of slow messages whose processing time took more than 1000ms |
| Other metrics | ||
histogram_parts_reversed_ch_partition_age | Histogram | How many data chunks should be fetched from the database to build a full editing history |
prof_retrieve_snapshot_latency | Timer | Time to fetch the content state from the database |
prof_validate_jwt_time | Timer | JSON Web Token (JWT) validation performance |
Monitoring configuration
To configure monitoring, use system properties or environmental variables. If Synchrony is managed by Confluence, add these properties to the synchrony-args.properties file. For detailed configuration instructions, refer to Configuring Synchrony.
| Property name | Default value | Description |
|---|---|---|
synchrony.metrics.reporters | empty string (meaning that monitoring is disabled) | Comma-separated list of reporters. Allowed values:
|
synchrony.metrics.statsd.flavor | etsy | Flavor of the statsD metrics format. Allowed values:
|
synchrony.metrics.statsd.host | localhost | StatsD host |
synchrony.metrics.statsd.port | 8125 | StatsD port |
synchrony.metrics.statsd.prefix | statsd | Prefix for the metric names exported via statsD |
synchrony.metrics.statsd.publish.unchanged | true | Defines whether to publish unchanged metrics |
synchrony.metrics.statsd.polling.interval.sec | 10 | Metrics values update interval in seconds |
synchrony.metrics.jmx.prefix | jmx | Prefix for the metric names exported via JMX |
synchrony.metrics.jmx.domain | metrics | JMX domain |