← 文章 / 云原生与基础设施
signoz 7小时前 · 2026-09-25 15:39:59 · 1 阅读

SigNoz 操作参考 - 自定义资源与规范字段

在此查阅 SigNoz Operator 的自定义资源、spec 字段、status 条件及配置标志。如需安装 operator 并创建第一个资源,请参考 SigNoz Operator 概览。

若要查看集群中某一 Kind 的所有字段,可运行 kubectl explain,例如 kubectl explain dashboard.spec。

自定义资源

所有 Kind 均属于 resources.signoz.io/v1alpha1 API 组。

Kind作用域SigNoz 对象
ProviderConfigNamespaceSigNoz 端点及其 API key
ClusterProviderConfigCluster同 ProviderConfig,但适用于所有 Namespace
DashboardNamespace仪表盘
RuleNamespace告警规则
SavedViewNamespace已保存的视图
PlannedMaintenanceNamespace计划内维护窗口
RoutePolicyNamespace通知路由策略
UserNamespace用户
RoleNamespace角色
ServiceAccountNamespace服务账号
AuthDomainNamespaceSSO 认证域

operator 仓库中的 samples 目录为每种 Kind 提供了一个示例清单。

公共 Spec 字段

除 ProviderConfig 和 ClusterProviderConfig 外,每种 Kind 的 spec 根层级均包含以下字段:

字段默认值说明
providerConfigRef.name无,必填要使用的 ProviderConfig 或 ClusterProviderConfig 的名称。
providerConfigRef.kindProviderConfigProviderConfig 或 ClusterProviderConfig。
interval10mOperator 将 SigNoz 中的对象与 manifest 比对并回滚偏差的频率。
retryIntervalinterval,否则 1m临时故障后 operator 重试的频率。若未设置,则使用 interval 的值;若两者都未设置,则使用 --default-resources-retry-interval 的值。
timeout30s单次 reconcile 的最长时间,包括对 SigNoz 的调用。
suspendfalse设为 true 时,operator 停止处理该资源,不会修改或删除 SigNoz 中的对象。
reclaimPolicyDelete删除自定义资源时 SigNoz 侧的处理方式:Delete 会删除 SigNoz 对象,Orphan 则保留它。
objectTemplate.spec无以结构化字段表示的 SigNoz 对象,apply manifest 时由 API server 校验。
objectTemplate.jsonSpec无以 JSON 请求体表示的 SigNoz 对象。operator 原样发送,因此请求体必须包含标识字段(如 name)以及 schema 版本(如 dashboard 的 "schemaVersion": "v6")。

objectTemplate.spec 和 objectTemplate.jsonSpec 只能设置其中一个。interval、retryInterval 和 timeout 的默认值来自 operator 标志。

ProviderConfig 字段

ProviderConfig 和 ClusterProviderConfig 的 spec 相同:

字段描述
endpoint.value SigNoz 实例的 URL,必须以 http:// 或 https:// 开头。建议使用 https://,因为 operator 会在请求头中携带 API 密钥。
endpoint.valueFrom从 secretKeyRef 或 configMapKeyRef 中读取 URL。
auth.header.name用于承载 API 密钥的 Header 名称,默认为 SIGNOZ-API-KEY。
auth.header.schemeHeader 值的方案前缀,例如 Bearer。Operator 发送的格式为 <scheme> <value>。
auth.header.value内联 API 密钥。建议改用 valueFrom,避免密钥明文出现在清单文件中。
auth.header.valueFrom从 secretKeyRef 或 configMapKeyRef 中读取 API 密钥。
tls.caSecretRef指定信任 CA 证书的 Secret 的 name 和 key。Operator 会与其他引用相同地从当前命名空间读取该配置。
tls.insecureSkipVerify若设为 true,Operator 将跳过服务端证书验证。

endpoint 和 auth.header 的 value 与 valueFrom 二者只能选其一。

对于 ProviderConfig,Operator 从其所在命名空间读取相关的 Secrets 和 ConfigMaps;对于 ClusterProviderConfig,则从 Operator 所在的命名空间 signoz-operator-system 中读取。

状态条件

所有受管理资源均报告以下统一的 Condition 类型:

Condition含义
Ready汇总其他所有 Condition 的状态,等待此项变为就绪即可。
Synced当 SigNoz 中的对象与清单一致时为 True;Operator 尚无法确认时为 Unknown。
Recoverable表示暂时性故障,Operator 将按 retryInterval 间隔自动重试。
Terminal表示重试无法解决的故障。在人工编辑资源、修改对应的 ProviderConfig 或 Secret、或重启 Operator 之前,Operator 将停止重试。
Suspended spec.suspend 的值为 true。

kubectl get 命令会在 READY 和 REASON 列中显示 Ready 状态及其原因,并在 ID 列中显示 SigNoz ID。

资源原因

原因含义
Created、Updated、SyncedSigNoz 中的对象与清单(manifest)一致。
PendingSigNoz 中缺少该对象,例如有人在 UI 中将其删除。Operator 会再次创建它。
InvalidSpecOperator 无法读取期望状态,例如 jsonSpec 包含无效的 JSON。
RejectedSigNoz 以 400 响应拒绝了请求体。
ImmutableFieldChanged你修改了仅在 Operator 创建对象时才能设置的字段。
Ambiguous有多个 SigNoz 对象匹配该资源的标识。
SigNozResourceIDMismatchresources.signoz.io/signoz-resource-id 注解中指定的对象与资源标识不匹配。
UnauthorizedSigNoz 以 401 或 403 响应拒绝了 API 密钥。
ProviderConfigNotReadyOperator 无法从 ProviderConfig 读取端点或 API 密钥。
BackendErrorSigNoz 返回了 5xx 或 429 响应。
BackendUnreachable连接、超时或 TLS 失败。
Suspendedspec.suspend 的值为 true。
CompareFailedOperator 无法将清单与 SigNoz 中的对象进行比较。这很可能是 Operator 的 bug。请在 operator issues 中报告。

ProviderConfig 原因

ProviderConfig 仅报告 Ready 状态。Ready=True 表示 Operator 可以读取端点和 API 密钥。Operator 不会向 SigNoz 发送测试请求。

原因含义
Resolved Operator 读取 endpoint 和 API key。
SpecInvalidspec 不合法。
EndpointInvalidendpoint 不是合法的 URL。
SecretNotFound、ConfigMapNotFound引用的 Secret 或 ConfigMap 在 Operator 读取的命名空间中不存在。
KeyNotFoundSecret 或 ConfigMap 中没有引用的 key。
ValueEmpty引用的 key 值为空。
CABundleInvalidtls.caSecretRef 中的 CA bundle 不合法。
ReferenceReadFailedOperator 无法读取引用的 Secret 或 ConfigMap。

资源身份

当资源还没有 SigNoz ID 时,Operator 会查找身份相同的已有对象并收养它。例如,Dashboard 会匹配同名(name 相同)的 dashboard,User 会匹配相同邮箱的用户。如果设置了 reclaimPolicy: Delete,删除自定义资源时 Operator 也会删除被收养的对象。

如果匹配到的对象不止一个,请在自定义资源上设置 resources.signoz.io/signoz-resource-id 注解,指定要收养对象的 ID。

Operator 启动参数

Operator 通过启动参数(flag)读取配置。下表列出了常用参数。完整列表(包括 metrics 和 webhook 服务器的 TLS 参数)请参见 cmd/config.go。每个参数也可以通过环境变量设置,前缀为 SIGNOZ_OPERATOR_。例如,--log-level 对应 SIGNOZ_OPERATOR_LOG_LEVEL。

参数默认值说明
--log-levelinfo可选值为 debug、info、error 或 panic。
--watch-namespaces所有命名空间要监
原始来源: signoz

评论 (0)