OpenShift Pipelines 中的可观察性


Red Hat OpenShift Pipelines 1.18

OpenShift Pipelines 的可观察性功能

Red Hat OpenShift Documentation Team

摘要

本文档提供有关 OpenShift Pipelines 的可观察性功能的信息。

Tekton Results 是一个记录每个管道运行和任务运行的完整信息的服务。您可以根据需要修剪 PipelineRunTaskRun 资源,并使用 Tekton Results API 或 opc 命令行工具访问其 YAML 清单以及日志信息。

1.1. Tekton Results 概念

Tekton Results 归档管道运行和任务以结果和记录的形式运行。

对于每个完成运行的 PipelineRunTaskRun 自定义资源(CR),Tekton Results 会创建一个 记录

结果 可以包含一个或多个记录。记录始终是一个结果的一部分。

结果与管道运行对应,包括 PipelineRun CR 本身以及作为管道运行一部分启动的所有 TaskRun CR 的记录。

如果任务运行是直接启动的,如果没有使用管道运行,则会为此任务运行创建一个结果。此结果包含同一任务运行的记录。

每个结果都有一个名称,其中包含创建 PipelineRunTaskRun CR 的命名空间以及 CR 的 UUID。结果名称为 < namespace_name>/results/<parent_run_uuid > 的格式。在这个格式中,<parent_run_uuid > 是管道运行的 UUD,或其他任务运行已直接启动的。

结果名称示例

results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed
Copy to Clipboard Toggle word wrap

每个记录都有一个名称,其中包含记录的结果名称,以及 PipelineRunTaskRun CR 的 UUID。结果名称的格式为 < namespace_name>/results/<parent_run_uuid>/results/<run_uuid >。

记录名称示例

results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621
Copy to Clipboard Toggle word wrap

记录包括 TaskRunPipelineRun CR 的完整 YAML 清单,因为它会在完成运行后存在。此清单包含运行规格、为运行指定的任何注解,以及有关运行结果的特定信息,如完成时间和运行是否成功。

TaskRunPipelineRun CR 存在时,您可以使用以下命令查看 YAML 清单:

$ oc get pipelinerun <cr_name> -o yaml
Copy to Clipboard Toggle word wrap

Tekton Results 在 TaskRunPipelineRun CR 被删除后保留此清单,并使其可用于查看和搜索。

管道的 YAML 清单在完成后运行

  kind: PipelineRun
  spec:
    params:
      - name: message
        value: five
    timeouts:
      pipeline: 1h0m0s
    pipelineRef:
      name: echo-pipeline
    taskRunTemplate:
      serviceAccountName: pipeline
  status:
    startTime: "2023-08-07T11:41:40Z"
    conditions:
      - type: Succeeded
        reason: Succeeded
        status: "True"
        message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0'
        lastTransitionTime: "2023-08-07T11:41:49Z"
    pipelineSpec:
      tasks:
        - name: echo-task
          params:
            - name: message
              value: five
          taskRef:
            kind: Task
            name: echo-task-pipeline
      params:
        - name: message
          type: string
    completionTime: "2023-08-07T11:41:49Z"
    childReferences:
      - kind: TaskRun
        name: echo-pipeline-run-gmzrx-echo-task
        apiVersion: tekton.dev/v1
        pipelineTaskName: echo-task
  metadata:
    uid: 62c3b02e-f12b-416c-9771-c02af518f6d4
    name: echo-pipeline-run-gmzrx
    labels:
      tekton.dev/pipeline: echo-pipeline
    namespace: releasetest-js5tt
    finalizers:
      - chains.tekton.dev/pipelinerun
    generation: 2
    annotations:
      results.tekton.dev/log: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4/logs/c1e49dd8-d641-383e-b708-e3a02b6a4378
      chains.tekton.dev/signed: "true"
      results.tekton.dev/record: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4/records/62c3b02e-f12b-416c-9771-c02af518f6d4
      results.tekton.dev/result: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4
    generateName: echo-pipeline-run-
    managedFields:
      - time: "2023-08-07T11:41:39Z"
        manager: kubectl-create
        fieldsV1:
          f:spec:
            .: {}
            f:params: {}
            f:pipelineRef:
              .: {}
              f:name: {}
          f:metadata:
            f:generateName: {}
        operation: Update
        apiVersion: tekton.dev/v1
        fieldsType: FieldsV1
      - time: "2023-08-07T11:41:40Z"
        manager: openshift-pipelines-controller
        fieldsV1:
          f:metadata:
            f:labels:
              .: {}
              f:tekton.dev/pipeline: {}
        operation: Update
        apiVersion: tekton.dev/v1
        fieldsType: FieldsV1
      - time: "2023-08-07T11:41:49Z"
        manager: openshift-pipelines-chains-controller
        fieldsV1:
          f:metadata:
            f:finalizers:
              .: {}
              v:"chains.tekton.dev/pipelinerun": {}
            f:annotations:
              .: {}
              f:chains.tekton.dev/signed: {}
        operation: Update
        apiVersion: tekton.dev/v1
        fieldsType: FieldsV1
      - time: "2023-08-07T11:41:49Z"
        manager: openshift-pipelines-controller
        fieldsV1:
          f:status:
            f:startTime: {}
            f:conditions: {}
            f:pipelineSpec:
              .: {}
              f:tasks: {}
              f:params: {}
            f:completionTime: {}
            f:childReferences: {}
        operation: Update
        apiVersion: tekton.dev/v1
        fieldsType: FieldsV1
        subresource: status
      - time: "2023-08-07T11:42:15Z"
        manager: openshift-pipelines-results-watcher
        fieldsV1:
          f:metadata:
            f:annotations:
              f:results.tekton.dev/log: {}
              f:results.tekton.dev/record: {}
              f:results.tekton.dev/result: {}
        operation: Update
        apiVersion: tekton.dev/v1
        fieldsType: FieldsV1
    resourceVersion: "126429"
    creationTimestamp: "2023-08-07T11:41:39Z"
    deletionTimestamp: "2023-08-07T11:42:23Z"
    deletionGracePeriodSeconds: 0
  apiVersion: tekton.dev/v1
Copy to Clipboard Toggle word wrap

您可以通过其名称访问每个结果并记录。您还可以使用通用表达式语言(CEL)查询来根据其包含的信息(包括 YAML 清单)搜索结果和记录。

您还可以将 Tekton Results 配置为促进将作为管道或任务一部分运行的所有工具的日志信息转发到 LokiStack。然后,您可以查询与 Tekton Results 记录关联的任务运行的 Tekton Results 信息。

1.2. 配置 Tekton 结果

安装 OpenShift Pipelines 后,Tekton Results 会被默认启用。

但是,如果要存储和访问管道运行的日志信息和任务运行,您必须配置此信息转发到 LokiStack。

您可以选择为 Tekton Results 完成额外的配置。

1.2.1. 为日志信息配置 LokiStack 转发

如果要使用 Tekton Results 查询任务运行的日志信息,您必须在 OpenShift Container Platform 集群上安装 LokiStack 和 OpenShift Logging,并将日志信息转发到 LokiStack。

如果没有为日志信息配置 LokiStack 转发,Tekton Results 不会存储此信息,或者从命令行界面或 API 提供它。

先决条件

  • 已安装 OpenShift CLI (oc)实用程序。
  • 以集群管理员用户身份登录 OpenShift Container Platform 集群。

流程

要配置 LokiStack 转发,请完成以下步骤:

  1. 在 OpenShift Container Platform 集群中,使用 Loki Operator 安装 LokiStack,同时安装 OpenShift Logging Operator。
  2. 根据您安装的 OpenShift Logging 版本 6 或版本 5,为 ClusterLogForwarder 自定义资源(CR)创建一个 ClusterLogForwarder.yaml 清单文件,包含以下 YAML 清单之一:

    如果安装了 OpenShift Logging 版本 6,ClusterLogForwarder CR 的 YAML 清单

    apiVersion: observability.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: collector
      namespace: openshift-logging
    spec:
      inputs:
      - application:
          selector:
            matchExpressions:
              - key: app.kubernetes.io/managed-by
                operator: In
                values: ["tekton-pipelines", "pipelinesascode.tekton.dev"]
        name: only-tekton
        type: application
      managementState: Managed
      outputs:
      - lokiStack:
          labelKeys:
            application:
              ignoreGlobal: true
              labelKeys:
              - log_type
              - kubernetes.namespace_name
              - openshift_cluster_id
          authentication:
            token:
              from: serviceAccount
          target:
            name: logging-loki
            namespace: openshift-logging
        name: default-lokistack
        tls:
          ca:
            configMapName: openshift-service-ca.crt
            key: service-ca.crt
        type: lokiStack
      pipelines:
      - inputRefs:
        - only-tekton
        name: default-logstore
        outputRefs:
        - default-lokistack
      serviceAccount:
        name: collector
    Copy to Clipboard Toggle word wrap

    如果安装了 OpenShift Logging 版本 5,ClusterLogForwarder CR 的 YAML 清单

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    metadata:
      name: instance
      namespace: openshift-logging
    spec:
      inputs:
      - name: only-tekton
        application:
          selector:
            matchLabels:
              app.kubernetes.io/managed-by: tekton-pipelines
      pipelines:
        - name: enable-default-log-store
          inputRefs: [ only-tekton ]
          outputRefs: [ default ]
    Copy to Clipboard Toggle word wrap

  3. 输入以下命令在 openshift-logging 命名空间中创建 ClusterLogForwarder CR:

    $ oc apply -n openshift-logging ClusterLogForwarder.yaml
    Copy to Clipboard Toggle word wrap
  4. 使用以下命令编辑 TektonConfig 自定义资源(CR):

    $ oc edit TektonConfig config
    Copy to Clipboard Toggle word wrap

    结果 spec 中进行以下更改:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      result:
        loki_stack_name: logging-loki 
    1
    
        loki_stack_namespace: openshift-logging 
    2
    Copy to Clipboard Toggle word wrap
    1
    LokiStack CR 的名称,通常为 logging-loki
    2
    部署 LokiStack 的命名空间的名称,通常为 openshift-logging

1.2.2. 配置外部数据库服务器

Tekton Results 使用 PostgreSQL 数据库来存储数据。默认情况下,安装包含一个内部 PostgreSQL 实例。您可以将安装配置为使用部署中已存在的外部 PostgreSQL 服务器。

流程

  1. 输入以下命令,使用凭证创建 secret 以连接到 PostgreSQL 服务器:

    $ oc create secret generic tekton-results-postgres \
      --namespace=openshift-pipelines \
      --from-literal=POSTGRES_USER=<user> \
      --from-literal=POSTGRES_PASSWORD=<password>
    Copy to Clipboard Toggle word wrap
  2. 使用以下命令编辑 TektonConfig 自定义资源(CR):

    $ oc edit TektonConfig config
    Copy to Clipboard Toggle word wrap

    结果 spec 中进行以下更改:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      result:
        is_external_db: true
        db_host: database.example.com 
    1
    
        db_port: 5342 
    2
    Copy to Clipboard Toggle word wrap
    1
    提供 PostgreSQL 服务器的主机名。
    2
    提供 PostgreSQL 服务器的端口号。

1.2.3. 为 Tekton 结果配置保留策略

默认情况下,Tekton Results 存储管道运行、任务运行、事件和日志无限期存储。这会导致存储资源的不必要的使用,并可能会影响您的数据库性能。

您可以在集群级别为 Tekton Results 配置保留策略,以删除旧的结果及其关联的记录和日志。

流程

  • 使用以下命令编辑 TektonConfig 自定义资源(CR):

    $ oc edit TektonConfig config
    Copy to Clipboard Toggle word wrap

    结果 spec 中进行以下更改:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      result:
        options:
          configMaps:
            config-results-retention-policy:
              data:
                runAt: "3 5 * * 0" 
    1
    
                maxRetention: "30" 
    2
    Copy to Clipboard Toggle word wrap
    1
    以 cron 格式指定在数据库中运行修剪作业时。这个示例在每天的下午 5:03 AM 运行作业。
    2
    指定在数据库中保留数据的天数。这个示例保留 30 天的数据。

1.3. 使用 opc 命令行工具查询 Tekton Results

您可以使用 opc 命令行工具查询 Tekton 结果以获取结果和记录。要安装 opc 命令行工具,请为 tkn 命令行工具安装软件包。有关安装此软件包的步骤,请参阅安装 tkn

您可以使用记录的名称和结果来检索其中的数据。

您可以使用通用表达式语言(CEL)查询搜索结果和记录。这些搜索显示结果或记录的 UUID。您可以使用提供的示例来创建对常见搜索类型的查询。您还可以使用参考信息来创建其他查询。

1.3.1. 准备 opc 工具环境以查询 Tekton Results

在查询 Tekton 结果前,您必须为 opc 工具准备环境。

先决条件

  • 已安装 opc 工具。

流程

  1. 输入以下命令将 RESULTS_API 环境变量设置为到 Tekton Results API 的路由:

    $ export RESULTS_API=$(oc get route tekton-results-api-service -n openshift-pipelines --no-headers -o custom-columns=":spec.host"):443
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令为 Tekton Results API 创建身份验证令牌:

    $ oc create token <service_account>
    Copy to Clipboard Toggle word wrap

    保存此命令输出的字符串。

  3. 可选:创建 ~/.config/tkn/results.yaml 文件以使用 Tekton Results API 自动身份验证。该文件必须具有以下内容:

    address: <tekton_results_route> 
    1
    
    token: <authentication_token> 
    2
    
    ssl:
       roots_file_path: /home/example/cert.pem 
    3
    
       server_name_override: tekton-results-api-service.openshift-pipelines.svc.cluster.local 
    4
    
     service_account:
       namespace: service_acc_1 
    5
    
       name: service_acc_1 
    6
    Copy to Clipboard Toggle word wrap
    1
    到 Tekton Results API 的路由。使用与 RESULTS_API 设置的值相同的值。
    2
    oc create token 命令创建的身份验证令牌。如果您提供此令牌,它会覆盖 service_account 设置,并且 opc 使用这个令牌进行身份验证。
    3
    带有您为 API 端点配置的 SSL 证书的文件位置。
    4
    如果您为 OpenShift Pipelines 配置了一个自定义目标命名空间,请将 openshift-pipelines 替换为此命名空间的名称。
    5 6
    用于使用 Tekton Results API 进行身份验证的服务帐户名称。如果您提供了身份验证令牌,则不需要提供 service_account 参数。

    或者,如果您没有创建 ~/.config/tkn/results.yaml 文件,您可以使用- authtoken 选项将令牌传递给每个 opc 命令。

1.3.2. 根据名称查询结果和记录

您可以使用其名称列出和查询结果和记录。

先决条件

  • 已安装 opc 工具,并准备好其环境来查询 Tekton Results。
  • 安装了 jq 软件包。
  • 如果要查询日志信息,请将日志转发配置为 LokiStack。

流程

  1. 列出与管道运行和在命名空间中创建的任务对应的结果的名称。输入以下命令:

    $ opc results list --addr ${RESULTS_API} <namespace_name>
    Copy to Clipboard Toggle word wrap

    示例命令

    $ opc results list --addr ${RESULTS_API} results-testing
    Copy to Clipboard Toggle word wrap

    输出示例

    Name                                                          Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed  2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/ad7eb937-90cc-4510-8380-defe51ad793f  2023-06-29 02:49:38 +0530 IST           2023-06-29 02:50:06 +0530 IST
    results-testing/results/d064ce6e-d851-4b4e-8db4-7605a23671e4  2023-06-29 02:49:45 +0530 IST           2023-06-29 02:49:56 +0530 IST
    Copy to Clipboard Toggle word wrap

  2. 输入以下命令列出结果中所有记录的名称:

    $ opc results records list --addr ${RESULTS_API} <result_name>
    Copy to Clipboard Toggle word wrap

    示例命令

    $ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed
    Copy to Clipboard Toggle word wrap

    输出示例

    Name                                                                                                   Type                                    Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621  tekton.dev/v1.TaskRun              2023-06-29 02:49:53 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/5de23a76-a12b-3a72-8a6a-4f15a3110a3e  results.tekton.dev/v1alpha2.Log         2023-06-29 02:49:57 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/57ce92f9-9bf8-3a0a-aefb-dc20c3e2862d  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9a0c21a-f826-42ab-a9d7-a03bcefed4fd  tekton.dev/v1.TaskRun              2023-06-29 02:49:57 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/04e2fbf2-8653-405f-bc42-a262bcf02bed  tekton.dev/v1.PipelineRun          2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e6eea2f9-ec80-388c-9982-74a018a548e4  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    Copy to Clipboard Toggle word wrap

  3. 输入以下命令从记录中检索管道运行或任务的 YAML 清单:

    $ opc results records get --addr ${RESULTS_API} <record_name> \
      | jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

    示例命令

    $ opc results records get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

  4. 可选:使用日志记录名称从记录中检索任务运行的日志信息。要获取日志记录名称,请将 记录 替换为记录名称中的日志。输入以下命令:

    $ opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

    示例命令

    $ opc results logs get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/logs/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

1.3.3. 搜索结果

您可以使用通用表达式语言(CEL)查询来搜索结果。例如,您可以找到管道运行的结果,这些结果没有成功。但是,大多数相关信息都不包含在结果对象中;若要根据名称、完成时间和其他数据搜索,请搜索记录。

先决条件

  • 已安装 opc 工具,并准备好其环境来查询 Tekton Results。

流程

  • 输入以下命令使用 CEL 查询来搜索结果:

    $ opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>
    Copy to Clipboard Toggle word wrap

将 &lt ;namespace_name > 替换为管道运行或任务运行的命名空间。

Expand
表 1.1. 对结果的 CEL 查询示例
用途CEL 查询

所有失败的结果

!(summary.status == SUCCESS)

结果所有管道运行包含注解 an1ann2

summary.annotations.contains ('ann1')&& summary.annotations.contains ('ann2')&& summary.type=='PIPELINE_RUN'

1.3.4. 搜索记录

您可以使用通用表达式语言(CEL)查询搜索记录。因为每个记录包含管道运行或任务运行的完整 YAML 信息,您可以根据许多不同的条件查找记录。

先决条件

  • 已安装 opc 工具,并准备好其环境来查询 Tekton Results。

流程

  • 输入以下命令使用 CEL 查询搜索记录:

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-
    Copy to Clipboard Toggle word wrap

    将 &lt ;namespace_name > 替换为管道运行或任务运行的命名空间。或者,输入以下命令搜索单个结果中的记录:

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>
    Copy to Clipboard Toggle word wrap

    <result_name > 替换为结果的全名。

Expand
表 1.2. CEL 查询记录示例
用途CEL 查询

所有任务运行或管道运行的记录

!(data.status.conditions[0].status == 'True')

运行1的 TaskRunPipelineRun 自定义资源(CR)的名称的记录

data.metadata.name == 'run1'

所有由名为 run1PipelineRun CR 启动的任务记录

data_type == 'TASK_RUN' && data.metadata.labels['tekton.dev/pipelineRun'] == 'run1'

所有管道运行和任务运行的记录从名为 pipeline1Pipeline CR 创建

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1'

所有管道运行的记录都从名为 pipeline1Pipeline CR 创建

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1' && data_type == 'PIPELINE_RUN'

所有任务的记录,其中 TaskRun CR 名称使用 hello不足的位置

data.metadata.name.startsWith ('hello')&& data_type=='TASK_RUN'

完成所有管道运行的记录时间超过五分钟

data.status.completionTime - data.status.startTime > duration ('5m')&& data_type == 'PIPELINE_RUN'

所有管道运行和任务运行的记录在 2023 年 10 月 7 日完成

data.status.completionTime.getDate ()== 7 && data.status.completionTime.getMonth ()== 10 && data.status.completionTime.getFullYear ()== 2023

所有管道运行的记录包括三个或更多任务

size(data.status.pipelineSpec.tasks) >= 3 && data_type == 'PIPELINE_RUN'

具有 an1 注解的所有管道运行的记录

data.metadata.annotations.contains('ann1') && data_type == 'PIPELINE_RUN'

所有管道运行的记录,其中包含 an1 以及以 hello开头的 PipelineRun CR 的名称

data.metadata.annotations.contains ('ann1')&& data.metadata.name.startsWith ('hello')&& data_type == 'PIPELINE_RUN'

1.3.5. 搜索结果的参考信息

您可以使用通用表达式语言(CEL)查询中的以下字段进行结果:

Expand
表 1.3. CEL 查询结果中的字段
CEL 字段描述

创建 PipelineRunTaskRun 自定义资源(CR)的命名空间。

uid

结果的唯一标识符。

annotations

添加到 PipelineRunTaskRun CR 的注解。

summary

结果摘要。

create_time

结果的创建时间。

update_time

结果的最后更新时间。

您可以使用 summary.status 字段来确定管道运行是否成功。此字段可以有以下值:

  • UNKNOWN
  • SUCCESS
  • 失败
  • TIMEOUT (超时)
  • CANCELLED
注意

不要使用引号字符,如 "' 来为此字段提供值。

1.3.6. 搜索记录的参考信息

您可以使用 Common Expression Language (CEL)查询记录中的以下字段:

Expand
表 1.4. CEL 查询记录中的字段
CEL 字段描述

名称

记录名称

 

data_type

记录类型标识符

tekton.dev/v1.TaskRunadministrative_RUNtekton.dev/v1.PipelineRunPIPELINE_RUNresults.tekton.dev/v1alpha2.Log

data

任务运行或管道运行的 YAML 数据。在日志记录中,此字段包含日志输出。

 

因为 data 字段包含任务运行或管道运行的整个 YAML 数据,所以您可以在 CEL 查询中使用此数据的所有元素。例如,data.status.completionTime 包含任务运行或管道运行的完成时间。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部