关于 temporal-ops
temporal-ops 是用于管理和诊断运行中 Temporal 环境的技能,面向运维人员。它区分 Cloud 与自托管操作,并通过分层检查排查故障;不涵盖工作流代码开发。
主要功能
- 01执行 Temporal 环境运维任务
- 02分层诊断运行故障
- 03区分 Cloud 与自托管后端
- 04破坏性操作前征求确认
- 05诊断结论附置信度
- 06按意图路由到操作指南
适用场景
- 01管理命名空间、密钥和证书
- 02查找卡住或异常的工作流
- 03按网络至工作流层排查故障
- 04评估批量操作影响并验证结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ temporalio/ skill-temporal-ops --skill temporal-ops安装后在 Claude Code 中输入/temporal-ops确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.gitignoreAGENT-PERMISSIONS.mdREADME.md.github/CODEOWNERSreferences/ops/cli-conventions.mdcloud-audit-logs.mdcloud-capacity.mdcloud-billing.mdcloud-certs.mdcloud-migration.mdcloud-connectivity.mdcloud-iam.mdcloud-notifications.mdcloud-namespace-admin.mdcloud-ops-api.mdcloud-terraform.mdrecipes.mdself-hosted-admin.mdcloud-saml-scim.mdworkflow-health.mdreferences/triage/authentication.mdblob-size-limits.mdconnectivity.mdha-failover.mdnon-determinism.mdperformance-bottlenecks.mdrate-limits.mdcertificates.mddiagnostic-ladder.md详细介绍
技能:temporal-ops
概述
此技能用于操作和诊断 Temporal 环境。它有两种模式:
- **运维:**用户想要执行某项操作——创建命名空间、轮换密钥、检查容量、查找不健康的工作流、取消一批工作流、设置导出。此技能会执行合适的命令并解读输出。
- **诊断:**用户遇到了某种症状——工作流卡住、证书错误、连接超时、非确定性恐慌。此技能会通过自底向上的分层诊断来引导调查,直到找到根本原因,并给出置信度评分。
此技能不讲解如何编写工作流或活动(请使用 skill-temporal-developer),也不会列出详尽的 CLI 标志表——请运行 temporal <cmd> --help 查看相关内容,并参阅 cli-conventions.md 了解跨命令的 CLI 约定。适用范围是:用户需要管理或排查正在运行的 Temporal 环境时,使用此技能。
不在适用范围内
- 编写工作流、活动或 SDK 代码 →
skill-temporal-developer。 - 详尽的 CLI 标志/命令参考 → 运行
temporal <cmd> --help;跨命令的 CLI 约定 → cli-conventions.md。 - Worker 性能调优、规格配置、容量规划 →
skill-temporal-workertuning。 - 可自托管环境的 Helm、Kubernetes、数据库管理、监控栈配置——超出 CLI 的适用范围。
如果对话转向上述某个领域,应交由相关的同级技能处理,而不是临场发挥。
原则
运维规范
当用户想要执行运维任务时:
- **确认意图和后端。**这是 Cloud 操作(
tcld)还是自托管操作(temporal operator)?数据平面操作(temporal workflow、temporal batch等)两者均适用。如果后端不明确,先询问再继续——不要假定是 Cloud 或自托管,也不要在确认前输出特定环境的命令。 - **执行命令并解读输出。**运行文档中指定的命令,读取结果并说明其含义;如果用户要求执行操作,则据此采取行动。只读命令(
get、list、describe、count、show)可直接运行。凡是列在破坏性操作下的操作,都应先向用户提出。 - **验证结果。**执行更改操作后,确认新状态符合用户意图。
破坏性操作
如果某项操作不可逆(tcld namespace delete)、会撤销某个有效身份的访问权限(tcld apikey delete)、会转移生产流量(tcld namespace failover),或会扩展到所有匹配项(任何形式的 --query),则属于此级别。对当前操作应用此判断——这是一条规则,而不是一份清单;某条命令未出现在此技能的任何清单中,并不意味着它不属于此级别。
对于此级别内的任何操作:收集证据并提出建议。不要主动执行,也不要为了了解其效果而执行。每条命令的参考文件都说明了其具体影响范围;提出建议前先阅读,而不是之后再读。
- 用数字说明影响范围,而非描述。 对于任何形式的
--query,先运行temporal workflow count --query '<query>',并确保查询内容逐字节一致,然后将结果纳入建议。如果筛选条件除了ExecutionStatus="Running"外没有进一步缩小范围的谓词,则会匹配该 Namespace 中所有未关闭的 Execution。 - 说清目标。 明确说明准确的命令、目标以及该命令解析到的 Namespace。连接设置可能来自
TEMPORAL_*环境变量或配置文件中的配置,因此目标通常无法从命令文本中看出。如果后端或 Namespace 是根据上下文推断出来的,而非用户明确说明的,请指出这一点——误将破坏性命令指向错误 Namespace,是最常见的出错原因。 - 明确询问,然后执行至完成。 将命令、目标以及(对于任何形式的
--query)第 1 步得到的数量作为直接问题交给用户,并等待答复。用户批准后,对于--query批量操作,使用--yes运行;该标志可让已获批准的批量操作完成,因为交互式提示需要终端,而没有终端时命令会报告user denied confirmation并且不执行任何操作。--yes只能用于用户已批准的命令,绝不能用于重试因提示确认失败的命令。不要改用循环逐个执行workflow terminate --workflow-id。批准仅适用于针对单一目标的一条命令;不能沿用到下一条命令、更宽泛的查询或第二个 Namespace。 - 验证,并了解中止方法。 重新运行相应的
get、describe或count。批量作业会异步处理:temporal batch describe --job-id <id>会显示处理进度;temporal batch terminate --job-id <id>可在作业处理完所有匹配项之前将其停止。
如果存在能达到相同目标的可逆替代操作,也一并提出:cancel 会让 Workflow 清理代码运行,而 terminate 不会;apikey disable 可撤销,而 delete 不可撤销;accepted-client-ca add 会追加,而 set 会替换。
不要假设环境会替你拦截破坏性命令。凭据权限范围、命令拒绝名单和确认提示可能已配置,也可能没有;即便可能存在,也不能因此跳过上述任何步骤——用户所依赖的安全保障就是你。
诊断规范
当用户遇到故障或异常时:
-
自底向上诊断。 先验证底层,再判断上层是否有问题。各层从底到顶依次为:
- DNS / 网络路径
- TCP / 端口连通性
- TLS 握手
- 身份验证(API 密钥或 mTLS 客户端证书)
- gRPC 健康状态和 Temporal 前端连通性
- Temporal 命名空间、任务队列、工作器
- 工作流代码(确定性、信号、计时器、子工作流)
完整的诊断阶梯见 diagnostic-ladder.md。
-
始终验证上一层,不要给出臆测的修复方案。如果 TLS 正常,先证明身份验证正常,再判断工作流是否有问题。如果轮询器存在,先确认工作流的最后一个事件,再判断工作器是否有问题。
-
为每项诊断建议附上置信度分数(1-10):
- 9-10:症状、操作和确认信号清晰吻合。
- 6-8:证据充分,但至少还有一种可能的解释。
- 1-5:问题仍不明确;此时的“修复”应是下一项有助于区分原因的检查,而非根本原因。
-
明确指出模糊之处。
context deadline exceeded之类的错误无法说明具体原因;而RESOURCE_EXHAUSTED这样的单一代码可能表示多种情况(账户限额导致的限流,或每个 Workflow 的锁争用)。应指出这一点、收集更多上下文,并将下一步范围限定清楚。
这些是技能规范,并非从文档中得出的事实。
意图路由
运维
找到与用户意图相符的行。参考文件中包含相关命令和操作步骤。
| 意图 | 类别 | 参考 |
|---|---|---|
| 创建、获取、列出、删除 Cloud 命名空间 | Cloud 命名空间管理 | cloud-namespace-admin.md |
| 添加/移除区域、故障转移、HA 配置 | Cloud 命名空间管理 | cloud-namespace-admin.md |
| 设置保留期限、标签、codec-server、连接规则 | Cloud 命名空间管理 | cloud-namespace-admin.md |
| 添加或重命名 Cloud 搜索属性 | Cloud 命名空间管理 | cloud-namespace-admin.md |
| 检查当前 APS / 容量模式 | Cloud 容量 | cloud-capacity.md |
| 切换 On-Demand ↔ Provisioned、设置 TRU | Cloud 容量 | cloud-capacity.md |
| 了解 APS / RPS / OPS 限制和限流 | Cloud 容量 | cloud-capacity.md |
| 创建、禁用、启用、删除 API 密钥 | Cloud IAM | cloud-iam.md |
| 邀请、列出、移除用户;设置角色/权限 | Cloud IAM | cloud-iam.md |
| 管理用户组和服务账户 | Cloud IAM | cloud-iam.md |
| 生成 mTLS 证书、上传 CA、设置证书筛选器 | Cloud 证书 | cloud-certs.md |
| 轮换 mTLS 证书 | Cloud 证书 | cloud-certs.md |
| 设置 Workflow History Export(S3 / GCS) | Cloud 命名空间管理 | cloud-namespace-admin.md |
| 设置 PrivateLink / PSC、管理连接规则 | Cloud 连接 | cloud-connectivity.md |
| 自托管集群健康状况、描述、命名空间 CRUD | 自托管管理 | self-hosted-admin.md |
| 自托管搜索属性、Nexus 端点 | 自托管管理 | self-hosted-admin.md |
| 检查或管理 Cloud Nexus Endpoint 的调用方命名空间允许列表;1,000 个调用方的默认值 | Cloud 命名空间管理 | cloud-namespace-admin.md#tcld-nexus-endpoint-allowed-namespace |
| 通过列表查询查找卡住/挂起/不健康的工作流 | 工作流健康状况 | workflow-health.md |
| 任务队列轮询器状态、工作流计数 | 工作流健康状况 | workflow-health.md |
| 取消、终止或重置工作流 | 工作流恢复 | workflow-stuck.md#recovery-commands |
对工作流执行批量操作(--query) | CLI 约定 | cli-conventions.md |
| Schedule CRUD、时间规范和操作 | CLI 约定 | cli-conventions.md |
| 在外部完成或使活动失败 | CLI 约定 | cli-conventions.md |
| Cloud Ops API 访问、速率限制、Go SDK | Cloud Ops API | cloud-ops-api.md |
| 查看账单、生成账单报告、成本归属 | Cloud 账单 | cloud-billing.md |
| 审计日志:查看、通过 API 查询、配置接收端(AWS/GCP) | Cloud 审计日志 | cloud-audit-logs.md |
| Terraform provider:Namespace/User/SA/API Key/Nexus CRUD | Cloud Terraform | cloud-terraform.md |
| 到期提醒(证书、API 密钥、额度)、状态页面 | Cloud 通知 | cloud-notifications.md |
| SAML SSO、SCIM 配置、IdP 集成 | Cloud SAML/SCIM | cloud-saml-scim.md |
| 将自托管迁移到 Cloud(自动或手动)、在 Cloud 区域之间迁移 | Cloud 迁移 | cloud-migration.md |
| 端到端运维手册(设置、轮换、审计、账单、Terraform) | 运维方案 | ops/recipes.md |
诊断
找到与用户症状相符的行。从第一项检查开始调查,然后阅读链接的参考资料。
| 症状 | 类别 | 首要检查 | 参考 |
|---|---|---|---|
connection refused,无法访问前端 | 连接问题 | nc -zvw10 <host> 7233 | connectivity.md#connection-refused |
no such host,DNS 解析失败 | 连接问题 | dig +short <host> 或 nslookup <host> | connectivity.md#dns |
tls: handshake failure,服务端拒绝握手 | 证书 | openssl s_client -connect <host>:7233 -servername <host> </dev/null | certificates.md#handshake-failure |
x509: certificate has expired 或 not yet valid | 证书 | openssl x509 -enddate -noout -in cert.pem | certificates.md#expired-or-not-yet-valid |
x509: certificate signed by unknown authority | 证书 | openssl verify -CAfile ca.pem client.pem | certificates.md#unknown-authority |
tcld 会话/身份验证失败,Cloud 角色不明确 | 身份验证 | tcld account get | authentication.md#cloud-role-and-permission-model |
UNAUTHENTICATED,API 密钥被拒绝 | 身份验证 | env | grep -i TEMPORAL_API_KEY,然后运行 tcld apikey get --id <apikey_id> | authentication.md#things-to-check-when-unauthenticated-is-returned-with-an-api-key |
使用 API 密钥时出现 namespace not found/命名空间字符串错误 | 身份验证 | 确认区域端点格式为 <region>.<cloud_provider>.api.temporal.io:7233 | authentication.md#address-form-for-api-key-connections |
gRPC 状态为 RESOURCE_EXHAUSTED | 速率限制 | 确认触发了哪项限制:Cloud v1 检查节流指标,v0/自托管环境检查 resource_exhausted_cause 标签 | rate-limits.md#identifying-which-limit-was-hit |
| 任务队列未显示轮询器 | Worker 健康状况 | temporal task-queue describe --task-queue <q> | worker-health.md#what-no-pollers-looks-like |
| 工作流卡在待处理的活动/计时器/子工作流/信号上 | 工作流卡住 | temporal workflow describe --workflow-id <id> | workflow-stuck.md#the-primary-inspection-command-temporal-workflow-describe |
NondeterminismError,WorkflowTaskFailed 反复出现 | 非确定性 | 在事件历史记录中找出最后一次 WorkflowTaskFailed 的原因 | non-determinism.md#the-wft-failure-signature-of-non-determinism |
| 本地重放失败,但生产工作流曾在运行 | 非确定性 | 获取历史记录,并在一次测试中运行 SDK 重放器 | replay.md#step-2--run-the-sdk-replayer-all-supported-sdks |
| HA 故障转移未将流量路由到故障转移区域 | HA 故障转移 | 比较 tcld namespace get --namespace <ns>.<acct> 的结果与 DNS CNAME | ha-failover.md#start-here-establish-ground-truth |
| Namespace 故障转移后,Serverless Worker(AWS Lambda)停止处理任务 | HA 故障转移 | 确认存在 FailoverNamespace 审计事件,然后将新的活动区域与 Worker Deployment Version 上的 Lambda ARN 进行比较 | ha-failover.md#symptom-serverless-workers-kept-running-in-the-old-region-after-failover |
context deadline exceeded(未知层级) | 运行时错误 | 确定发出该错误的操作和 SDK | runtime-errors.md#deadline-exceeded |
向单个 Workflow 发送信号/更新/查询时出现 Workflow is busy/ResourceExhausted(BusyWorkflow) | 运行时错误 | 先排除账号级限制导致的节流,再按 operation 拆分 temporal_cloud_v1_resource_exhausted_error_count | runtime-errors.md#workflow-lock-contention-busyworkflow |
PAYLOADS_TOO_LARGE、exceeds size limit、载荷/gRPC Blob 大小错误 | Blob 大小限制 | 检查问题涉及载荷(2 MB)还是 gRPC 消息(4 MB) | blob-size-limits.md |
| 工作流卡在不可见的重试循环中(gRPC 消息过大) | Blob 大小限制 | 检查 Worker 日志中是否有 ResourceExhausted,并减小批次大小 | blob-size-limits.md |
| 调度到启动延迟高、任务槽位耗尽、Workflow Task 缓慢 | 性能瓶颈 | 检查 temporal_workflow_task_schedule_to_start_latency 的 P95 | performance-bottlenecks.md |
| 重放延迟高、缓存逐出、检测到死锁 | 性能瓶颈 | 检查 workflow_task_replay_latency 和粘性缓存指标 | performance-bottlenecks.md |
| Schedule 未触发,错过补偿执行窗口 | Schedule 操作遗漏 | 针对 temporal_cloud_v1_schedule_missed_catchup_window_count 设置警报 | schedule-missed.md |
| 如果某个症状无法对应表格中的任何一行,请从 diagnostic-ladder.md 开始,并从最后一个已确认正常的层级向上排查。 |
流程
运维路径
第 1 步:确定意图和后端
确定用户想要执行的操作,以及目标是:
- Temporal Cloud → 使用
tcld命令(需要tcld login) - 自托管集群 → 使用
temporal operator命令 - 数据平面(任一后端) → 使用
temporal workflow、temporal batch、temporal schedule等命令
如果上下文已明确后端——.tmprl.cloud 地址、tcld 命令、Cloud 命名空间格式 ns.account → Cloud;Kubernetes/Helm、docker-compose、自托管配置文件 → 自托管——则直接继续,无需询问。**否则,请先停止并询问:“你使用的是 Temporal Cloud 还是自托管?”然后再输出任何特定于环境的命令。**不要默认选择任一环境。确认后,将答案保存到记忆中,以便今后的对话中不再询问。
第 2 步:执行并解读
在上方的运维表格中查找对应意图。阅读链接的参考文件,了解准确的命令、标志和预期输出。运行命令,并为用户解读结果。
第 3 步:验证
执行变更操作(创建、更新、删除、轮换)后,确认新状态:
- 重新运行相应的
get或describe命令 - 确认输出符合用户意图
- 报告结果
诊断路径
第 1 步:确定症状
请用户提供准确复制粘贴的错误文本。不要接受转述——准确的字符串通常能指明故障层级(例如,x509: 前缀表示 TLS/证书层,RESOURCE_EXHAUSTED: 前缀表示 gRPC 速率限制,NondeterminismError 表示工作流重放层)。请注意,仅凭 RESOURCE_EXHAUSTED 无法判断触发了哪种情况——账户限额节流和单个 Workflow 锁竞争(Workflow is busy,即 BusyWorkflow)共用同一代码。请按标签拆分资源耗尽指标(Cloud v1 系列使用 operation,v0 和自托管使用 resource_exhausted_cause),不要解析自由文本消息。
继续之前,请确认以下三点:
- 运行了什么命令,或者哪个 SDK 调用产生了错误?
- 错误来自什么环境(本地开发服务器、自托管集群、Temporal Cloud)?如果上下文已明确(地址、命令、命名空间格式),则无需询问——**但如果不确定,请现在询问,然后再继续诊断。**将答案保存到记忆中,以便今后的对话使用。
- 最近有什么变更(新部署、新证书、新命名空间、新区域)?
第 2 步:收集上下文
调查所需的上下文取决于问题类别。至少需要:
- **对于任何 Cloud 身份验证 / 连接问题:**身份验证方法(API 密钥或 mTLS)、准确地址、准确命名空间、SDK 及其版本。端点系列因身份验证方法而异——请参阅 connectivity.md#endpoint-formats。对于私有连接(PrivateLink / PSC),TLS 服务器名称覆盖项也因身份验证方法而异——请参阅 cloud-connectivity.md。
- **对于卡住的工作流:**命名空间、工作流 ID、运行 ID,以及
temporal workflow describe --workflow-id <id>的输出(待处理操作状态位于此处,而不只是在事件历史中)。通过temporal workflow show查看事件历史,可作为补充视图。 - **对于 Worker 健康问题:**Worker 日志(注册错误、身份验证错误、panic)、
temporal task-queue describe --task-queue <q>的输出,以及用于查看各 Worker 详细信息的temporal worker describe --task-queue <q>。 - **对于非确定性错误:**包含错误的 Worker 日志行、工作流类型名称,以及访问历史记录 JSON 的权限。
步骤 3:验证粘贴的 SDK 配置(如有)
如果用户粘贴了 SDK 连接代码——哪怕只有地址、命名空间或身份验证字段——也要在沿梯子向上排查之前,根据 sdk-snippet-review.md 进行检查。端点类型错误、命名空间过短或身份验证方式不匹配,都会让下面所有网络层探测看起来都出了问题,即使实际上更底层并没有问题。
如果用户已有经过验证、此前正常工作的配置,且症状是新出现的,则跳过此步骤——问题不在代码片段,而是环境发生了变化。其他情况下,将代码片段验证视为第 0 层。
步骤 4:沿梯子向上排查
使用 diagnostic-ladder.md 选择合适的起始层。一般来说:
- 身份验证/连接/证书相关症状 → 从第 1 层(DNS)开始,逐层向上排查。
- Worker/任务队列相关症状 → 从第 6 层(命名空间 + 轮询器)开始。
- 工作流卡住/确定性相关症状 → 从第 7 层(工作流代码)开始,但要先确认第 6 层(Worker 确实在轮询)。
每一层都有一条用于确认其正常的命令,以及一种故障特征,可据此判断问题是在该层还是更高层。
步骤 5:修复并验证
针对根本原因提出修复方案。然后重新运行该层的健康检查命令,并在可能时重试用户最初的操作,以验证修复结果。为诊断附上置信度评分。
如果修复所在层的上一层仍然失败,请返回步骤 4,继续逐层向上排查——最先出现故障的层往往不是唯一的问题所在。
前提条件
- Temporal CLI(
temporal)——数据平面操作和可自托管管理所必需。安装:brew install temporal,或参阅 Temporal CLI 文档。 - tcld——Cloud 操作所必需。安装:
brew install temporal-cloud-cli,或参阅 tcld 文档。使用前请通过tcld login进行身份验证。
参考文件
操作
- cloud-namespace-admin.md — 通过
tcld管理 Cloud 命名空间生命周期:创建、获取、列出、删除、故障转移、添加区域、保留期、标签、codec-server、高可用配置、连接规则、搜索属性、accepted-client-ca、证书筛选器、导出,以及tcld nexus endpoint allowed-namespace调用方允许列表(Access Policy 上限为 1,000 个调用方)。 - cloud-capacity.md — 容量模式(按需 / 预配置)、APS/RPS/OPS 定义、TRU、
tcld namespace capacity update、默认限制、节流、APS 管理最佳实践。 - cloud-iam.md — API 密钥生命周期(
tcld apikey)、用户(tcld user)、用户组(tcld user-group)、服务账号、账号操作(tcld account)、角色、命名空间权限。 - cloud-certs.md — mTLS 证书管理:使用
tcld generate-certificates生成证书、上传 CA、证书筛选器、证书轮换、在 mTLS 与 API 密钥之间切换。 - cloud-connectivity.md — 专用连接(AWS PrivateLink / GCP PSC)、连接规则:设置、规则参数、tcld 命令、将规则关联到命名空间。
- cloud-migration.md — 迁移路径:自托管到 Cloud 的自动迁移(S2S 代理、
tcld migration命令、5 个阶段)、自托管到 Cloud 的手动迁移(客户端变更、工作流策略)、Cloud 内部区域到区域迁移(高可用添加区域 / 故障转移)。 - cloud-ops-api.md — Cloud Ops API:HTTP 和 gRPC 端点(
saas-api.tmprl.cloud)、Go SDK、protobuf 编译、速率限制(账号 160 RPS、用户 40、SA 80、并发异步请求 10)、API 版本标头、用例。 - cloud-billing.md — Cloud 计费:Billing Center(发票、额度、计划、按命名空间统计的费用)、Usage Dashboards、Billing API:异步生成 CSV 报告、兼容 FOCUS 的格式、27 列报告架构、日期范围限制。
- cloud-audit-logs.md — Cloud Audit Logs:支持的控制平面事件(Account、API Keys、Connectivity Rules、Namespace、Export、Nexus、Service Accounts、User、User Groups)、JSON 格式、API 访问(保留 30 天)、AWS Kinesis 和 GCP Pub/Sub 接收器配置。
- cloud-terraform.md — Terraform 提供程序:设置(
TEMPORAL_CLOUD_API_KEY)、temporalcloud_namespace/temporalcloud_user/temporalcloud_service_account/temporalcloud_apikey/temporalcloud_nexus_endpoint的 CRUD、导入、数据源(区域、命名空间)、限制(API 密钥不可导入,无法管理 Account Owner)。 - cloud-notifications.md — Cloud 通知:证书过期(提前 15/10/5 天)、API 密钥过期(提前 30/20/10 天)、额度消耗 / 过期提醒、计划变更、故障转移事件、接收者角色、发件人
[email protected]。 - cloud-saml-scim.md — SAML SSO(Entra ID、Okta):实体标识符(
urn:auth0:prod-tmprl:ACCOUNT_ID-saml)、回调 URL(login.tmprl.cloud)、IdP 配置步骤、支持工单流程。SCIM:支持的供应商、前提条件(先配置 SAML)、10 分钟同步窗口、组到角色的映射。 - self-hosted-admin.md — 通过
temporal operator管理自托管控制平面:集群运行状况 / 描述、命名空间 CRUD、搜索属性创建 / 列出 / 移除、Nexus 端点 CRUD。 - workflow-health.md — 数据平面运行状况查询:使用 List Filters 执行
temporal workflow list,temporal workflow describe/show/count,使用temporal task-queue describe查看轮询器状态。 - cli-conventions.md — 跨命令的
temporalCLI 约定:连接 / 身份(TEMPORAL_*环境变量 ↔--address/--namespace/--api-key、--identity)、输出 / 格式(--output、--time-format、payload 简写)、--query⇒ 批处理作业桥接(结合temporal batch describe/list/terminate),以及计划时间规格形式。最后附有操作→命令索引,将每项数据平面操作指向对应文件。详尽的标志说明请参阅temporal <cmd> --help。 - ops/recipes.md — 端到端运维手册:设置新命名空间、检查 APS、切换容量模式、查找卡住的工作流、轮换 API 密钥、审核访问权限、轮换 mTLS 证书、检查自托管运行状况、查看账单 / 生成账单报告、配置审计日志接收器、使用 Terraform 配置资源、设置 SAML SSO。
Diagnosis
- sdk-snippet-review.md — 对粘贴的 SDK 连接代码片段进行第 0 层配置检查:各身份验证方法对应的端点形式、命名空间格式、身份验证 / TLS 要求、
TEMPORAL_*环境变量和常见配置错误。在诊断阶梯之前运行。 - diagnostic-ladder.md — 自底向上的七层模型,每层包含一条规范命令,并交叉链接到相关主题页面。
- connectivity.md — DNS、TCP、端点类型(mTLS 使用 Namespace Endpoint,API 密钥使用 Regional Endpoint)、防火墙 / 代理配置、PrivateLink / PSC 和快速诊断脚本。
- certificates.md — x509 和 TLS 警报字符串、过期 / 未知颁发机构 / 主机名不匹配 / 密钥不匹配诊断、通过
tcld namespace accepted-client-ca配置的 Cloud 接受的客户端 CA 集合、Cloud mTLS 证书要求、轮换和过期通知、openssl 操作示例。 - authentication.md —
UNAUTHENTICATED与PERMISSION_DENIED的区别、API 密钥生命周期(tcld apikey命令、环境变量传播、必需的 Regional Endpoint 形式)、TLS 后的 mTLS(证书筛选、身份到角色映射)、Cloud 账户级角色和命名空间级权限。 - workflow-stuck.md — Workflow Execution Status 值、作为主要检查命令的
temporal workflow describe、通过temporal workflow show查看 Event History、待处理的活动 / 子工作流 / 信号 / Nexus 操作 / Workflow Tasks、WorkflowTaskFailed 重试循环、恢复命令(发送信号、终止、取消、重置、暂停 / 恢复)。 - non-determinism.md — 确定性定义、WFT 失败特征、导致 ND 的代码模式、各 SDK 的错误形式、从 Event History 识别 ND、本地重放复现、通过 Worker Versioning / 修补 / 重置进行修复。
- worker-health.md — 使用
temporal task-queue describe处理无轮询器的操作手册、可达性和版本控制、Worker 级别的 describe、调度到启动延迟、Worker 任务槽、粘性执行和粘性缓存、Worker 心跳、Cloud 命名空间级轮询器限制、Worker 日志特征。 - rate-limits.md —
RESOURCE_EXHAUSTED的含义(及其不代表的情况)、On-Demand 和 Provisioned 容量模式下的 Cloud APS / RPS / OPS、自托管环境中的frontend.rps/frontend.namespaceRPS动态配置、通过限流指标(Cloud v1)或resource_exhausted_cause标签(v0 / 自托管)识别触发的限制,以及区分账户限制导致的限流与单个资源耗尽。 - ha-failover.md — 通过 Namespace Endpoint CNAME 进行 Cloud HA 路由、验证活动区域(控制平面
tcld namespace get与 DNS 视图)、未跟随故障转移的客户端、故障转移后的 PrivateLink、故障转移未执行、切换窗口错误、平台限制、RPO / RTO 语义,以及因计算提供商配置按区域划分而未跟随故障转移的 Serverless Workers(AWS Lambda)。 - runtime-errors.md — 按操作和调用位置区分 deadline-exceeded、将 Workflow 锁竞争(BusyWorkflow)与账户限制导致的限流区分开并通过
operation明细确认,以及针对no pollers/INVALID_ARGUMENT/ 未指定原因的UNAVAILABLE进行路由。 - replay.md — 使用 SDK 客户端获取 Event History(CLI 导出作为备用方式)、在所有受支持的 SDK(Go、Python、TypeScript、Java、.NET、Ruby、PHP)中运行 SDK 重放器、
TEMPORAL_DEBUG和死锁检测器、解读分歧和成功的重放,以及仅适用于 TypeScript 的 VS Code 扩展。 - blob-size-limits.md — Payload 大小限制(2 MB)和 gRPC 消息大小限制(4 MB):错误消息、各 SDK 的行为(Python 1.23.0+ 与其他 SDK 的区别)、claim check 模式、External Storage(预发布)、减小批次大小。
- performance-bottlenecks.md — 通过 SDK 指标诊断延迟和吞吐量:调度到启动延迟、工作流任务执行延迟、重放延迟、活动执行延迟、任务槽耗尽、网络请求指标、粘性缓存指标。
- schedule-missed.md — Schedule Action 遗漏:通过
temporal_cloud_v1_schedule_missed_catchup_window_count/schedule_missed_catchup_window发出警报,通过temporal schedule list+temporal schedule describe进行调查,DescribeSchedule 字段(missedCatchupWindow、overlapSkipped、bufferDropped)、默认补偿窗口(一年)、根本原因、重叠策略(6 个值)、回填修复。 - recipes.md — 四个端到端问题排查演练:凌晨 3 点工作流卡住、证书过期导致 Worker 离线、任务队列积压原因不明、生产环境中发现非确定性问题。
报告此技能中的问题
如果你(AI)发现此技能的说明不清晰、存在误导性或缺少重要信息,请起草一份 GitHub 问题正文,描述遇到的问题以及哪些信息会有所帮助,然后请用户前往 https://github.com/temporalio/skill-temporal-ops/issues/new 提交。不要自行提交问题。