The repository ships a ready-to-use Grafana dashboard atDocumentation 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.
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
/metricsendpoint on port9090 - 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
Open the Import dialog
In the Grafana sidebar, navigate to Dashboards → Import (or go directly to
/dashboard/import in your Grafana URL).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.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.
What the Dashboard Shows
The dashboard is taggedtemporal, 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:| Variable | Label values query | Description |
|---|---|---|
namespace | label_values(temporal_cloud_proxy_encrypt_requests, namespace) | Filter panels to one or more Temporal Cloud namespaces. Supports multi-select and an “All” option. |
source | label_values(temporal_cloud_proxy_encrypt_requests, source) | Filter by source label if your metrics carry a source dimension. |
target | label_values(temporal_cloud_proxy_encrypt_requests, target) | Filter by target label if your metrics carry a target dimension. |
{namespace=~"$namespace", source=~"$source", target=~"$target"} so the variable dropdowns at the top of the dashboard apply universally.