On-Premise installation

Metrics (OpenMetrics)

Monitor Carbone On-Premise with a Prometheus-compatible /metrics endpoint

Overview

Carbone On-Premise exposes an OpenMetrics (Prometheus-compatible) endpoint so you can monitor rendering activity and, in a cluster, metadata replication.

Enable it

The /metrics endpoint is served by Carbone's internal server. To expose it, set the internal port and enable template management (which provides the metrics database):

export CARBONE_TEMPLATE_MANAGEMENT=true
export CARBONE_PEER_PORT=5001

You do not need a cluster, a single node is enough. peerPort is the internal port Carbone uses for metadata replication, and it also serves /metrics. On a standalone node the carbone_reports_* metrics are the meaningful ones; the carbone_db_replication_* metrics describe a cluster.

peerPort is a private endpoint with no authentication, and it also carries cluster replication traffic. Keep it on a private network and never expose it publicly.

Endpoint

Property Value
Method & path GET /metrics
Port the internal peerPort (see HA and Scaling)
Format OpenMetrics / Prometheus text format (text/plain)

Scrape with Prometheus

Point Prometheus at the endpoint, using each node's peerPort as the target port:

scrape_configs:
  - job_name: carbone
    metrics_path: /metrics
    static_configs:
      - targets: ['carbone-node:5001'] # host:peerPort

Available metrics

Metric Type Labels Description
carbone_reports_inflight gauge stage (queued, rendering, conversion) Reports currently in progress inside Carbone. The conversion stage counts document conversion jobs waiting in the queue.
carbone_reports_rendered_total counter result (success, error) Total number of reports rendered, by result.
carbone_db_replication_connected_peers gauge peer Number of peers currently connected to this node.
carbone_db_replication_lag_seconds gauge peer, remote_peer Replication lag in seconds (this peer vs upstream peer).
carbone_db_replication_retransmission_requests_total counter peer, direction (sent, received) Retransmission requests for missing, dropped or out-of-order sequences.
carbone_db_replication_messages_total counter peer, direction Total replication messages processed by this node.
carbone_db_maintenance_time_seconds_total counter peer Cumulative time spent in maintenance tasks (checks, cleanup, backup).
carbone_db_logical_clock_drift_max_seconds gauge peer Maximum logical clock drift observed versus any peer (absolute value).
carbone_db_read_your_write_timeouts_total counter peer Number of client reads that returned stale or old data.

Example response

The endpoint returns every metric listed above; this example is truncated:

# HELP Number of reports currently in progress inside Carbone (queued, rendering, conversion).
# TYPE gauge
carbone_reports_inflight{stage="queued"} 12
carbone_reports_inflight{stage="rendering"} 5
carbone_reports_inflight{stage="conversion"} 3

# HELP Total number of reports rendered by Carbone, labeled by result.
# TYPE counter
carbone_reports_rendered_total{result="success"} 21
carbone_reports_rendered_total{result="error"} 3

# HELP Number of peers currently connected to this node.
# TYPE gauge
carbone_db_replication_connected_peers{peer="1000"} 1

# HELP Current replication lag in seconds (this peer vs upstream peer)
# TYPE gauge
# UNIT seconds
carbone_db_replication_lag_seconds{peer="1000", remote_peer="3000"} 0.1