Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/temporal-sa/temporal-cloud-proxy/llms.txt

Use this file to discover all available pages before exploring further.

The repository ships a ready-to-use Grafana dashboard at dashboards/grafana-dashboard.json. Import it into any Grafana instance connected to the Prometheus data source that scrapes the proxy’s /metrics endpoint to get instant visibility into request throughput, encryption performance, KMS latency, and per-namespace breakdowns — with no manual panel configuration required.

Prerequisites

Before importing the dashboard, confirm the following:
  • Grafana is installed and accessible (version 10.x or later recommended — the dashboard was built with Grafana 10.0.3)
  • A Prometheus data source is configured in Grafana and is actively scraping the proxy’s /metrics endpoint on port 9090
  • The proxy has received at least some traffic so that metric series exist in Prometheus
The dashboard requires the Prometheus data source to be scraping the proxy metrics before any panels populate. Allow a few minutes after proxy startup for metrics to begin appearing.

Import Steps

1

Open the Import dialog

In the Grafana sidebar, navigate to Dashboards → Import (or go directly to /dashboard/import in your Grafana URL).
2

Upload the dashboard JSON

Click Upload JSON file and select dashboards/grafana-dashboard.json from your local clone of the temporal-sa/temporal-cloud-proxy repository.Alternatively, paste the raw JSON content directly into the Import via panel JSON text area.
3

Select your Prometheus data source

In the Prometheus dropdown that appears at the bottom of the import form, select the Prometheus data source that is scraping the proxy’s metrics endpoint. If you have only one Prometheus data source configured, it will be selected automatically.
4

Import the dashboard

Click Import. Grafana will create the dashboard and redirect you to it immediately. If Prometheus already has data, panels will populate right away.

What the Dashboard Shows

The dashboard is tagged temporal, proxy, and encryption, and is organised into rows that progress from high-level throughput summaries down to granular KMS latency detail.

Encryption / Decryption Request Rate

A stat panel showing the current rate (requests/sec) of encrypt and decrypt operations over a 5-minute window. Useful as a top-level health indicator.

Success Rate

Gauge panels displaying the percentage of encrypt and decrypt operations that succeeded (encrypt_success / encrypt_requests × 100). A drop below 100% indicates KMS or network errors.

Encryption Latency

Time-series chart of encrypt latency at the p50, p95, and p99 percentiles, computed from the temporal_cloud_proxy_encrypt_latency_seconds_bucket histogram. Helps distinguish cache-hit performance from KMS round-trip cost.

Decryption Latency

Equivalent p50/p95/p99 time-series chart for decrypt latency, using the temporal_cloud_proxy_decrypt_latency_seconds_bucket histogram.

Request Volume by Namespace

A full-width time-series panel breaking down encrypt and decrypt request rates per Temporal namespace ({{namespace}} label), letting you identify which workloads are the most active.

Materials Manager Request Rate

Stat panel for the rate of GetMaterial (KMS GenerateDataKey) and DecryptMaterial (KMS Decrypt) calls. Low rates here relative to encrypt/decrypt rates indicate effective key caching.

Materials Manager Success Rate

Success percentage for both GetMaterial and DecryptMaterial KMS calls. Any sustained drop signals a KMS access or IAM issue.

Materials Manager Latency

p50/p95/p99 latency for both get (GenerateDataKey) and decrypt (Decrypt) KMS operations. Use this panel to understand the baseline KMS latency your proxy is experiencing and to tune the key cache TTL and size accordingly.

Dashboard Variables

The dashboard provides three template variables that let you filter all panels to a specific slice of traffic:
VariableLabel values queryDescription
namespacelabel_values(temporal_cloud_proxy_encrypt_requests, namespace)Filter panels to one or more Temporal Cloud namespaces. Supports multi-select and an “All” option.
sourcelabel_values(temporal_cloud_proxy_encrypt_requests, source)Filter by source label if your metrics carry a source dimension.
targetlabel_values(temporal_cloud_proxy_encrypt_requests, target)Filter by target label if your metrics carry a target dimension.
All panel PromQL expressions are parameterised with {namespace=~"$namespace", source=~"$source", target=~"$target"} so the variable dropdowns at the top of the dashboard apply universally.
Download the dashboard JSON directly from GitHub without cloning the repository: https://github.com/temporal-sa/temporal-cloud-proxy/blob/main/dashboards/grafana-dashboard.jsonClick the Raw button on that page to get the plain JSON you can paste into the Grafana Import via panel JSON field.

Build docs developers (and LLMs) love