Temporal
Introduction
Temporal is an open-source workflow orchestration platform for building reliable distributed applications. It manages long-running workflows and background jobs by handling retries, state management, and failure recovery automatically.
Getting Started
Compatibility
Temporal monitoring is compatible with Temporal Server versions ≥ 1.x. Temporal exposes metrics using Prometheus format. The metrics endpoint can be scraped by monitoring agents such as Telegraf, Prometheus, or custom collectors. Supported Linux distributions include Ubuntu, RHEL, CentOS, Debian, and Amazon Linux, as well as container environments such as Docker and Kubernetes.
Data Collection Method
vuSmartMaps collects Temporal health and performance metrics through the Prometheus metrics endpoint exposed by Temporal.
Metrics are scraped using Telegraf Prometheus input plugin and forwarded to the Kafka pipeline for ingestion into the monitoring platform.
Prerequisites
Inputs for Configuring Data Source
- Data Source Name: A unique display name for this Temporal data source. Used to identify the source within the monitoring platform.
- Temporal Server: The IP address or hostname of the Temporal server. This field uniquely identifies the Temporal server.
- Period (in seconds): How frequently data is collected from the Temporal metrics endpoint. The value should be between 60 and 3000 seconds.
- Endpoint URL: Add the Temporal metrics endpoint URL. Example: http://server:9191/metrics
- Authentication Method: Select the authentication method required to access the Temporal metrics endpoint.
- Deployment Type: Select the Temporal deployment type. Choose "cloud" for Temporal Cloud (API key) or "self_hosted" for self-hosted Temporal with IdP-issued JWT.
- Bearer Token: Enter the bearer token. For Temporal Cloud, use the API key from cloud.temporal.io. For self-hosted, use the JWT issued by your IdP (Keycloak, Auth0, Azure AD).
- Username: Username for basic authentication to the Temporal metrics endpoint.
- Password / API Token: Password or API token for basic authentication. Use an API token instead of your account password where possible.
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
| Source IP | Destination IP | Destination Port | Protocol | Direction |
|---|---|---|---|---|
| vuSmartMaps IP | Temporal Server | 9191 (Prometheus Metrics Endpoint) | TCP | Inbound |
*Before providing the firewall requirements, please update the port based on the customer environment.
Configuring the Target
Temporal exposes metrics through a Prometheus endpoint.
Step 1 – Configure the metrics port Ensure the Temporal service is configured to expose metrics on a port (default example): 0.0.0.0:9191
Step 2 – Confirm the metrics endpoint Metrics endpoint: http://<temporal-server-ip>:9191/metrics
Step 3 – Verify metrics availability curl http://localhost:9191/metrics
Configuration Steps
- Enable Prometheus metrics exposure in Temporal configuration.
- Configure the monitoring agent (Telegraf) to scrape the Temporal metrics endpoint.
- Define required metrics filters in the Telegraf configuration.
- Configure the output pipeline (Kafka / monitoring platform).
- Restart the Telegraf service.
- Verify metrics ingestion in the monitoring dashboard.
--- Example Telegraf Configuration ---
[[inputs.prometheus]] urls = ["http://localhost:9191/metrics"]
fieldpass = [ "temporal_request_", "temporal_service_requests_", "temporal_workflow_", "temporal_activity_", "temporal_task_queue_", "temporal_persistence_", "temporal_history_", "temporal_matching_" ]
Metrics Collected
The metrics are based on the input data collected.
