• HashiCorp Developer

  • HashiCorp Cloud Platform
  • Terraform
  • Packer
  • Consul
  • Vault
  • Boundary
  • Nomad
  • Waypoint
  • Vagrant
Boundary
  • Install
  • Tutorials
  • Documentation
  • API
  • Try Cloud(opens in new tab)
  • Sign up
Boundary Home

Docs

Skip to main contentOverview
  • Common Workflows

    • Overview
      • Overview
      • Metrics
      • Health Endpoint

  • HCP Boundary


  • Resources

  • Tutorial Library
  • Community Forum
    (opens in new tab)
  • Support
    (opens in new tab)
  • GitHub
    (opens in new tab)
  1. Developer
  2. Boundary
  3. Docs
  4. Boundary OSS
  5. Operations
  6. Metrics
  • Boundary
  • v0.10.x
  • v0.9.x
  • v0.8.x
  • v0.7.x
  • v0.6.x
  • v0.5.x
  • v0.4.x
  • v0.3.x
  • v0.2.x
  • v0.1.x

Boundary Metrics

Boundary provides metrics through the /metrics path using a listener with the "ops" purpose. By default, a listener with that purpose runs on port 9203. See the example configuration section for an example listener stanza in a config.hcl file.

Metrics are important for understanding what is happening in a Boundary deployment, enabling diagnoses of deployed controllers and workers. The exported metrics grant greater visibility into the various components of a running Boundary deployment through Prometheus.

The metrics uses the OpenMetric exposition format which can be read by Prometheus.

Controller

The following table lists the current names and descriptions of metrics provided by controllers.

NameDescription
boundary_controller_api_http_request_duration_secondsHistogram of latencies for HTTP requests.
boundary_controller_api_http_request_size_bytesHistogram of request sizes for HTTP requests.
boundary_controller_api_http_response_size_bytesHistogram of response sizes for HTTP requests.
boundary_controller_cluster_grpc_request_duration_secondsHistogram of latencies for requests made to the gRPC service running on the cluster listener.

Worker

The following table lists the current names and descriptions of metrics provided by workers.

NameDescription
boundary_worker_proxy_http_write_header_duration_secondsHistogram of time elapsed after the TLS connection is established to when the first http header is written back from the server.
boundary_worker_proxy_websocket_active_connectionsA gauge of the current count of open proxy connections on the worker.
boundary_worker_proxy_websocket_received_bytes_totalCount of received bytes sent over all proxy connections handled by the worker.
boundary_worker_proxy_websocket_sent_bytes_totalCount of sent bytes sent over all proxy connections handled by the worker.

Other

The following table lists the current miscellaneous metrics provided by Boundary.

NameDescription
boundary_build_infoA gauge set to 1 with label values detailing the current Go version, git revision, and Boundary version.

Metric Labels

Each metric uses labels to help organize and narrow its scope so that users can filter for different characteristics, allowing more flexible analysis of the measurements collected.

Metrics for HTTP requests include the following labels:

LabelDescription
codeThe HTTP status code of the request (e.g., “200”, “400”, etc.).
pathThe path, excluding query parameters, associated with the request. The value for this label replaces resource IDs with "{id}" (for example, /v1/groups/{id} is a possible value for this label). Any unexpected paths receive the value "unknown."
methodThe name of the method on the HTTP request. For example "GET", “POST”, “DELETE”.

Metrics for gRPC requests include the following labels:

LabelDescription
grpc_methodThe name of the method on the grpc service (e.g., GetGroup).
grpc_serviceThe proto service name including the package (e.g., controller.api.services.v1.GroupService).
grpc_codeThe grpc status code in human-readable format. For example, OK, IllegalArgument, Unknown.

Example configuration

Defining a listener stanza in the config file is sufficient for enabling metrics reporting in Boundary. For details on what fields are allowed in this stanza, refer to the documentation about TCP Listener.

An example listener stanza:

listener "tcp" {
    purpose = "ops"
    tls_disable = true
}

Tutorial

Refer to the Prometheus Metrics tutorial for a step-by-step introduction to metrics.

Edit this page on GitHub

On this page

  1. Boundary Metrics
  2. Example configuration
  3. Tutorial
Give Feedback(opens in new tab)
  • Certifications
  • System Status
  • Terms of Use
  • Security
  • Privacy
  • Trademark Policy
  • Trade Controls
  • Give Feedback(opens in new tab)