Metrics heading-link-icon

Metrics provide greater insight into the inner workings of Corda and can be used as the basis for monitoring and alerting.

All the Corda worker pods expose metrics in Prometheus text format at /metrics on port 7000. By default, this port is not exposed outside the Kubernetes A powerful tool for managing containerized applications at scale, making it easier for teams to deploy and manage their applications with high reliability and efficiency. cluster but most observability platforms support running an agent within the cluster that dynamically detects Kubernetes pods exposing Prometheus endpoints and then polls for metrics.

By default, the pods have the following Kubernetes annotations which may be sufficient for some monitoring agents to automatically scrape the endpoints:

prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
prometheus.io/port: "7000"

You can disable these annotations by providing the following overrides on the Corda Helm A package manager for Kubernetes, which is an open-source container orchestration platform. chart:

metrics:
    scrape: false

If you are using the Prometheus Operator, the Corda Helm chart supports the creation of a PodMonitor custom resource. You should configure the PodMonitor with the labels that the Prometheus Operator is set to discover. When using the kube-prometheus-stack Helm chart, this is the name of the Helm release for the Prometheus stack. For example:

metrics:
  podMonitor:
    enabled: true
    labels:
      release: [RELEASE_NAME]

You can also configure filters in the PodMonitor to reduce the metrics recorded by setting the following fields:

  • keepNames — a list of regular expressions for the names of the metrics that Prometheus records. If empty, all metrics are recorded. Prometheus records the following metrics by default:
    • corda_flow_execution_time_seconds_(count|sum|max)
    • corda_http_server_request_time_seconds_(count|sum|max)
    • corda_p2p_gateway_inbound_request_time_seconds_(count|sum|max)
    • corda_p2p_gateway_outbound_request_time_seconds_(count|sum|max)
    • corda_p2p_gateway_outbound_tls_connections_total
    • corda_p2p_message_outbound_total
    • corda_p2p_message_outbound_replayed_total
    • corda_p2p_message_outbound_latency_seconds_(count|sum|max)
    • corda_p2p_message_inbound_total
    • corda_p2p_session_outbound_total
    • corda_p2p_session_inbound_total
    • corda_membership_actions_handler_time_seconds_(count|sum|max)
    • jvm_.*
    • process_cpu_usage
  • dropLabels — a list of regular expressions for the labels that Prometheus drops for all metrics. If empty, all labels are recorded. Prometheus drops the following metrics by default:
    • virtualnode_destination
    • virtualnode_source

The following Corda-specific metrics are exported and they have been added at the following levels:

Was this page helpful?

Thanks for your feedback!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.

We're sorry this page wasn't helpful. Let us know how we can make it better!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Create an issue

Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.