¥
立即购买

DevOps工具文档编写专家

24 浏览
1 试用
0 购买
Dec 3, 2025更新

本提示词专为DevOps工程师设计,能够快速生成各类DevOps工具和软件的专业技术文档。通过系统化的文档结构设计和精准的技术表达,帮助用户创建清晰、规范、实用的工具文档。该提示词支持多种文档类型和复杂程度,能够适应从简单工具介绍到完整技术文档的各种需求,确保输出的文档符合DevOps领域的最佳实践和技术标准。

NebulaCI Pipeline — 快速开始指南

工具概述

NebulaCI Pipeline 是一款面向开发与运维团队的持续集成/持续交付(CI/CD)流水线引擎。通过一份简洁的 YAML 配置文件,您可以定义代码构建、测试、打包与交付流程,并在云端或自托管 Runner 上以容器方式执行。

适用人群:初学者到中级工程师,需快速建立稳定、可重复的自动化流水线。

注:本文示例包含占位符(如 <YOUR_ORG>、<YOUR_PROJECT>、<RUNNER_IMAGE> 等),请替换为您实际环境中的值。

核心特性

  • YAML 驱动的流水线配置:单一文件集中描述触发条件、作业、步骤与制品。
  • 容器化执行:每个作业在声明的容器镜像中运行,环境可复用、可移植。
  • 作业依赖与并行:支持 needs 依赖,满足串并行混合编排。
  • 触发器:支持常见事件触发(推送、合并请求/变更、标签、定时)。
  • 缓存与制品(Artifacts):提升构建速度,保存构建产物用于后续阶段或下载。
  • 密钥管理:通过集中式密钥注入环境变量,避免明文泄露。
  • 可选自托管 Runner:在内网或私有环境执行流水线,提高控制力与合规性。

快速开始

本节将帮助您在最短时间内跑通一次基本构建与测试流程。

  1. 前提条件
  • 已有可访问的 Git 代码仓库(任意 Git 兼容平台)
  • Docker 已安装(如需本地/自托管 Runner)
  • 已在 NebulaCI 平台创建组织/项目(或准备使用自托管单机试跑)
  1. 新建项目并关联仓库
  • 在 NebulaCI 控制台创建项目:<NEBULA_CONSOLE_URL>/<YOUR_ORG>/<YOUR_PROJECT>
  • 按页面引导完成仓库关联(或创建只读部署密钥/访问令牌)
  • 创建至少一个密钥(可选):如 NPM_TOKEN、CLOUD_API_KEY
  1. 在仓库根目录创建流水线文件 nebula.yml 示例:Node.js 项目构建与测试
version: "1"
name: hello-nebula

triggers:
  - push           # 推送代码时触发
  # - pull_request # 如需合并请求触发,取消注释

jobs:
  build:
    runs-on: linux
    container:
      image: node:18-alpine
    env:
      CI: "true"
    steps:
      - name: Checkout
        checkout: true

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test -- --ci

      - name: Build package
        run: npm run build

    artifacts:
      paths:
        - dist/**
        - coverage/**

  deploy:
    needs: [build]
    if: branch == "main"  # 仅在 main 分支执行
    runs-on: linux
    steps:
      - name: Deploy script
        run: ./scripts/deploy.sh
  1. 提交并推送
  • git add nebula.yml
  • git commit -m "Add NebulaCI pipeline"
  • git push
  1. 观察流水线执行
  • 在项目的 Pipelines 页面查看实时日志与状态
  • 成功后可在 Artifacts 页面下载构建产物

可选:本地/自托管 Runner 快速体验(使用占位符示例)

  • 启动 Runner(示例命令,实际以官方镜像与参数为准) docker run --rm -it
    -v $PWD:/workspace
    -e NEBULA_TOKEN=<YOUR_RUNNER_TOKEN>
    <RUNNER_IMAGE>: run -f /workspace/nebula.yml

架构说明

  • 控制平面(Control Plane)
    • 负责项目/凭据管理、Web UI、Webhook 接收、任务调度与状态存储。
  • 执行器/Runner
    • 拉取任务、拉取容器镜像、执行步骤、上报日志与状态。
  • 容器执行环境
    • 每个作业在声明的容器镜像中运行,互不干扰,便于隔离与复现。
  • 缓存与制品服务
    • 持久化构建缓存与制品(Artifacts),供后续作业或用户下载。
  • 密钥存储
    • 集中式安全存储,按需注入到作业环境变量,避免明文出现在仓库。

典型流程:

  1. 代码平台触发事件(push/PR)→ 控制平面接收 → 生成作业队列
  2. Runner 领取作业 → 拉起容器 → 执行 steps → 上传日志/制品 → 上报结果

配置指南(简要)

nebula.yml 顶层字段

  • version: 配置版本号(字符串)
  • name: 流水线名称
  • triggers: 触发事件列表(如 push、pull_request、tag、schedule)
  • env: 顶层环境变量(可选,全部作业可见)
  • jobs: 作业集合(键为作业 ID)

作业级(jobs.<job_id>)

  • runs-on: 运行平台(如 linux)
  • container.image: 运行容器镜像(如 node:18-alpine、python:3.11)
  • env: 作业级环境变量(覆盖/补充顶层 env)
  • needs: 依赖作业列表(用于定义执行顺序)
  • if: 条件执行(如 branch == "main")
  • timeout_minutes: 超时时间(可选)
  • artifacts.paths: 需要保存的文件/目录通配符列表

步骤(jobs.<job_id>.steps[])

  • name: 步骤名称(可选)
  • checkout: true 表示检出仓库代码(内置步骤)
  • run: 执行的命令(字符串,支持多行)
  • shell: 指定 Shell(可选,默认 sh/bash)
  • env: 步骤级环境变量
  • working_directory: 切换工作目录(可选)

密钥与环境变量

  • 在控制台创建密钥:如 MY_TOKEN
  • 在配置中引用: env: API_TOKEN: ${{ secrets.MY_TOKEN }}

缓存(可选,若已开启)

  • 针对依赖目录配置缓存键,示例(示意): cache: key: npm-${{ hashFiles('package-lock.json') }} paths: - ~/.npm

定时触发(可选)

  • 需在 triggers 中声明 schedule,并在控制台定义计划表达式(以平台配置为准)

最佳实践

  • 固定运行镜像版本:使用明确的标签(如 node:18.19-alpine),避免“latest”带来不可预期变更。
  • 分离阶段:将构建、测试、部署拆为独立作业,并使用 needs 控制顺序,缩短失败反馈时间。
  • 合理使用缓存:以锁文件作为缓存键,避免缓存污染;对大依赖目录效果显著。
  • 最小化密钥暴露:仅在需要的作业/步骤设置相关环境变量;不要把密钥写入日志或产物。
  • 只在受控分支部署:通过 if 条件限制生产部署到 main/release 分支。
  • 快速失败:为关键作业设置较短超时;将质量门禁(如测试、Lint)前置。
  • 复现性:将所有命令脚本化(scripts/),便于本地复现与审计。

如需进一步配置(并行矩阵、服务容器、通知集成、组织级模板等),建议查阅对应的扩展文档或在控制台查看各项功能的说明与示例。

KubeTailor Operator 技术文档(面向运维工程师)

注意:本技术文档基于典型 Kubernetes Operator 模式与“环境差异化裁剪/分发”场景编写的参考实现说明。若您的实际版本特性与本文不一致,请以发行包提供的 CRD/Chart/Release Notes 为准。

工具概述

KubeTailor Operator 是一款用于在 Kubernetes 集群中进行环境感知的资源裁剪与策略化分发的控制器。通过声明式 CRD,将通用基线清单(模板)与环境/命名空间/标签等条件匹配、补丁策略、参数化配置相结合,自动生成并持续对齐目标资源,实现:

  • 多环境差异化配置(开发/测试/预生产/生产)
  • 统一基线治理与最小差异补丁
  • 漂移检测与自动纠偏(Reconcile)
  • 安全可控的发布与回滚辅助(基于声明式对齐)

适用人群:负责多环境配置治理、集群资源分发、运维变更一致性与合规的运维工程师与平台团队。

核心特性

  • 声明式资源分发
    • 将基线模板(YAML/Helm/Kustomize/Git 源)分发至多个命名空间或集群(跨集群需结合上层调度/聚合)。
  • 多种补丁策略
    • 支持 Strategic Merge Patch、JSON Patch (RFC 6902)、JSON Merge Patch,按目标选择器执行差异化裁剪。
  • 条件化目标选择
    • 基于命名空间/标签/注解/名称匹配选择目标;支持 include/exclude。
  • 参数化与注入
    • 从 ConfigMap/Secret 注入变量;支持简单模板渲染(如 Go template 语法)。
  • 应用策略
    • Server-Side Apply(SSA)优先,支持 Prune、依赖顺序、Wait 条件;可配置冲突解决策略与一致性校验。
  • 漂移检测与状态可观测
    • 对目标资源进行漂移检测并回收(Prune)或对齐(Apply);提供 CR 状态、事件、条件、Prometheus 指标。
  • 安全与隔离
    • Namespace 范围或集群范围部署;最小 RBAC;可限制 Operator 仅 watch 指定命名空间。
  • 幂等与审计
    • 幂等式 Reconcile;利用 managedFields/fieldManager 审计 SSA 变更来源。
  • 可扩展控制
    • 并发度、速率限制、Leader 选举、Webhooks(校验/默认化)等可配置。

快速开始

先决条件

  • Kubernetes 1.24+(建议 1.25+ 以获得更稳定的 SSA/Admission 能力)
  • kubectl 1.24+
  • 可选:Helm 3.8+(如采用 Helm 安装)
  • 集群具备创建 CRD、RBAC、Webhook(可选)的权限

安装

可选方式一:使用 Helm(推荐)

helm repo add kubetailor https://charts.example.com/kubetailor
helm repo update
helm install kubetailor-operator kubetailor/kubetailor-operator \
  --namespace kubetailor-system --create-namespace \
  --set controller.watchNamespaces="{default,staging,prod}" \
  --set controller.leaderElection=true

可选方式二:使用 kubectl 应用清单

kubectl apply -f https://releases.example.com/kubetailor/operator.yaml

安装后验证:

kubectl get crd | grep kubetailor
# 预期:
# tailorsets.kubetailor.io
# tailortemplates.kubetailor.io
# tailorpolicies.kubetailor.io
kubectl -n kubetailor-system get pods

最小化示例

目标:将一个通用 Deployment 模板分发至 staging 与 prod 命名空间,并对 prod 使用补丁增加副本数与资源限制。

  1. 定义基线模板(TailorTemplate)
apiVersion: kubetailor.io/v1alpha1
kind: TailorTemplate
metadata:
  name: webapp-baseline
  namespace: default
spec:
  source:
    inline:
      manifests:
        - |
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: webapp
            labels:
              app: webapp
          spec:
            replicas: 1
            selector:
              matchLabels:
                app: webapp
            template:
              metadata:
                labels:
                  app: webapp
              spec:
                containers:
                  - name: webapp
                    image: ghcr.io/acme/webapp:1.0.0
                    ports:
                      - containerPort: 8080
  1. 定义分发集(TailorSet)与策略(内联)
apiVersion: kubetailor.io/v1alpha1
kind: TailorSet
metadata:
  name: webapp-distribution
  namespace: default
spec:
  templateRef:
    name: webapp-baseline
  interval: 1m
  apply:
    strategy: ServerSideApply
    prune: true
    wait:
      forConditions: ["Available"]
      timeout: 2m
  targets:
    - name: staging
      namespaceSelector:
        names: ["staging"]
      patches: [] # staging 使用基线
    - name: prod
      namespaceSelector:
        names: ["prod"]
      patches:
        - type: StrategicMergePatch
          patch: |
            apiVersion: apps/v1
            kind: Deployment
            metadata:
              name: webapp
            spec:
              replicas: 3
              template:
                spec:
                  containers:
                    - name: webapp
                      resources:
                        requests:
                          cpu: "200m"
                          memory: "256Mi"
                        limits:
                          cpu: "1"
                          memory: "512Mi"
  1. 应用示例
kubectl apply -f template.yaml
kubectl apply -f tailorset.yaml

kubectl -n staging get deploy webapp
kubectl -n prod get deploy webapp -o jsonpath='{.spec.replicas}'
# 预期 prod 为 3 副本

架构说明

  • 组件

    • Controller Manager:运行 Reconciler、Leader 选举、指标与探针端点。
    • Reconciler(TailorSet/TailorTemplate/TailorPolicy):监听 CR 变更,执行模板渲染、补丁合成、资源应用/Prune、状态汇报。
    • 可选 Admission Webhook:对 CR 请求进行校验与默认化(如补丁类型检查、选择器空集警告)。
    • 存储:依赖 Kubernetes API(CRD 对象),不引入外部数据库。
    • 指标与健康检查:/metrics (Prometheus)、/healthz、/readyz。
  • 工作流程

    1. 监听 TailorTemplate/TailorSet/TailorPolicy 变更。
    2. 读取模板(inline 或远程源),执行变量渲染(如启用)。
    3. 按 targets 的选择器计算目标命名空间集合。
    4. 将补丁与模板合成为目标资源清单。
    5. 采用 Server-Side Apply(默认)应用资源;必要时 Prune 不再受控的资源。
    6. 更新状态:conditions、lastAppliedRevision、变更摘要、错误信息等。
    7. 轮询(interval)或基于事件触发进行重调和(reconcile)。
  • 所有权与审计

    • 使用 SSA fieldManager(默认:kubetailor-operator)。
    • 通过 managedFields 区分与其他控制器的字段所有权,避免“控制器争用”。
    • Finalizer 确保 CR 删除时进行资源回收(如 prune)。

配置指南

Operator 级配置(Chart/Deployment 参数)

常见参数(示例,按发行包为准):

  • --metrics-bind-address=:8080
  • --health-probe-bind-address=:8081
  • --leader-elect=true
  • --max-concurrent-reconciles=4
  • --default-apply-strategy=server-side-apply
  • --sync-interval=1m
  • --watch-namespaces=default,staging,prod
  • --enable-webhook=true
  • --rate-limit=workqueue:50/s,burst:100
  • --field-manager=kubetailor-operator

RBAC 与作用域:

  • 集群级安装:可管理多个命名空间资源。
  • 命名空间级安装:通过 --watch-namespaces 限定作用域,RBAC 最小授权。

CRD 规范(概要)

  1. TailorTemplate(定义基线来源)
  • spec.source:

    • inline.manifests[]: 直接内联 YAML
    • git:
    • helm:
      • chart: 名称或本地路径
      • repo: 仓库地址
      • version: 版本
      • values: 内联 values
      • valuesFrom: ConfigMap/Secret
    • kustomize:
      • path: 相对路径
  • spec.variables(可选):

    • values: 内联键值
    • valuesFrom: ConfigMap/Secret
    • engine: gotemplate|none(默认 none)
  • status:

    • observedGeneration, conditions, lastSourceDigest
  1. TailorSet(定义分发与补丁)
  • spec.templateRef.name: 关联 TailorTemplate
  • spec.interval: 对齐周期,如 1m/5m
  • spec.suspend: bool 暂停对齐
  • spec.apply:
    • strategy: ServerSideApply|ClientApply(默认 SSA)
    • prune: bool
    • forceConflicts: bool(谨慎使用)
    • wait:
      • forConditions: ["Available","Progressing"]
      • timeout: 2m
  • spec.targets[]:
    • name: 标识
    • namespaceSelector:
      • names: ["prod","staging"] 或
      • matchLabels: { env: prod }
      • excludeNames / excludeMatchLabels(可选)
    • resourceSelector(可选,控制模板内资源子集)
      • kinds: ["Deployment","ConfigMap"]
      • matchLabels / annotations
    • patches[]:
      • type: StrategicMergePatch|JSONPatch|JSONMerge
      • patch: 内联补丁或
      • patchFrom: ConfigMap/Secret
    • variables(可选):
      • values / valuesFrom(覆盖模板变量)
    • namespaceTemplate(可选):按命名规则动态生成目标 ns 名称
  • status:
    • conditions, lastAppliedRevision, targetCount, driftSummary
  1. TailorPolicy(可选,集中策略)
  • 将通用补丁或约束独立成 Policy,并在 TailorSet 中引用以复用。

示例:JSON Patch 补丁

patches:
  - type: JSONPatch
    patch: |
      - op: replace
        path: /spec/template/spec/containers/0/image
        value: ghcr.io/acme/webapp:1.0.1

示例:变量注入

variables:
  valuesFrom:
    - configMapKeyRef:
        name: webapp-vars
        key: REPLICA_COUNT

Git/Helm/Kustomize 源(可选)

  • Git 凭据:创建 Secret(ssh 或 https token),在 TailorTemplate.spec.source.git.secretRef 引用。
  • Helm Chart:
    • 支持 values 与 valuesFrom 混用;
    • 渲染后再进入补丁与选择器流程。
  • Kustomize:
    • 先执行 kustomize build,再进行补丁。

冲突与所有权

  • 推荐使用 SSA,避免与其他控制器(如 HPA/Service Mesh sidecar injector)冲突。对于可能被外部控制器覆盖的字段(如 replicas),采用补丁感知与字段避让策略:
    • 将副本控制交给 HPA 时,不在补丁中设置 spec.replicas;
    • 对容器资源限制等稳定字段使用 SSA 受控。

多租户与隔离

  • 多团队共享时,建议:
    • 每团队单独的 TailorSet 命名空间;
    • 限定 watch-namespaces;
    • RBAC 限制只能管理所属命名空间资源;
    • 针对跨命名空间分发需经过审批与变更流程。

可观测与调试

  • 指标(示例):
    • kubetailor_reconcile_duration_seconds
    • kubetailor_applies_total{result="success|error"}
    • kubetailor_drift_resources{state="drifted|aligned"}
  • 事件与 Conditions:
    • Ready/Degraded/Progressing
    • 提供详细错误信息(模板渲染失败、补丁不匹配、API 冲突等)
  • 日志:
    • 结构化日志;可按 TailorSet 名称、Target 名称过滤。

最佳实践

  • 设计与组织

    • 以“基线模板 + 最小化补丁”为原则,减少环境差异面。
    • 将通用补丁沉淀为 TailorPolicy 复用,避免重复定义。
    • 一套 TailorSet 管理一个应用或一个域的资源,保证边界清晰。
  • 应用策略

    • 优先使用 Server-Side Apply,以字段级所有权避免控制器冲突。
    • 启用 prune 但需先在非生产环境验证,确保不会误删。
    • 使用 wait 条件和合理超时,保证变更可观测与可回退。
  • 变量与密钥

    • 使用 ConfigMap/Secret 管理敏感与环境变量;避免将密钥写入 CR 明文。
    • 使用 Secret 的独立 RBAC 控制访问。
  • 补丁安全

    • 使用资源选择器限定补丁作用范围;补丁应幂等且最小化。
    • 在生产前执行 dry-run(可通过 kubectl diff 或开启 operator dry-run 模式)验证补丁效果。
  • 漂移治理

    • 开启周期性对齐(interval);对手工变更进行审计并回正。
    • 对需允许“临时偏差”的场景,可在目标对象上打注解跳过一次 reconcile(如支持时)。
  • 性能与稳定

    • 根据集群规模调整 --max-concurrent-reconciles 与队列限速。
    • 对大规模分发(上千对象)分批 rollout(通过 targets 分片或分级策略实现)。
  • 与 CI/CD 集成

    • 将 TailorTemplate/TailorSet 的变更纳入 GitOps 流程,配合合并请求审核、自动化测试与分支策略。
    • 使用标签或目录分层区分环境,避免误投放。
  • 灾备与回滚

    • 通过 Git 历史与 SSA 审计快速恢复先前版本。
    • 为关键变更定义变更窗口与审批流程;对生产使用更短间隔的监控与报警。
  • 安全与合规

    • 最小权限原则;避免赋予 operator 过大集群范围权限。
    • 对 Webhook 采用 TLS 与固定 CA 验证;对外部源(Git/Helm Repo)使用只读凭据。

附:常见问题排查

  • 状态为 Degraded
    • 检查 events 与 status.conditions 中的错误原因(API 冲突、补丁不匹配路径、资源限制)。
  • 补丁未生效
    • 确认补丁类型与路径正确;检查 resourceSelector 是否过滤掉了目标对象。
  • 资源被还原
    • Operator 会对齐声明态;如需手工修改,请在模板/补丁中落地或在对象打注解跳过(如版本支持)。

以上为 KubeTailor Operator 的参考技术文档。请结合实际发行版本的 CRD 定义与 Helm Values 使用,以获得精确字段与默认值。

LogHarbor Collector API 文档

工具概述

LogHarbor Collector 是一款面向开发人员的日志采集与接收服务,提供基于 HTTP 的统一日志写入 API。应用、服务或边车代理可将结构化日志批量发送到 Collector,Collector 负责校验、缓冲并将日志安全地投递至后端存储或下游处理管道。

本文件为标准开发者 API 文档,覆盖接口定义、请求/响应格式、错误码、限流与重试、幂等性与安全要求等。

注意:文档中的示例域名与数值仅用于说明,实际以您部署的环境与配置为准。

核心特性

  • 标准化日志写入
    • 支持单条 JSON、批量 JSON 数组、NDJSON(换行分隔 JSON)
    • 支持 gzip 压缩传输
  • 批量与部分接受
    • 同一批次内逐条校验,支持部分成功并返回逐条错误
  • 幂等性保障
    • 通过 X-Request-Id 去重,避免重复入队
  • 明确的模式约束
    • 统一字段定义(timestamp、level、message、service、attributes 等)
  • 运行状态可观测
    • 健康检查与入队状态查询
  • 安全与配额
    • 基于 API Key 的鉴权,支持速率限制与请求大小限制
  • 版本化 API
    • 路径包含版本号(/v1),向后兼容受控演进

快速开始

  • 前提条件
  • 基础信息
    • Base URL: https://collector.example.com
    • API 版本: v1
    • 认证方式: X-Api-Key: <YOUR_API_KEY>
    • 支持的内容类型: application/json, application/x-ndjson
    • 可选压缩: Content-Encoding: gzip

示例 1:发送单条日志

curl -X POST "https://collector.example.com/v1/logs" \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "timestamp": "2025-01-10T08:30:15.123Z",
    "level": "info",
    "message": "user login success",
    "service": {"name": "auth-service", "version": "1.4.2"},
    "host": {"name": "node-12"},
    "attributes": {"user_id": "u-123", "ip": "203.0.113.10"}
  }'

示例 2:批量 JSON 数组

curl -X POST "https://collector.example.com/v1/logs" \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '[
    {"timestamp": "2025-01-10T08:30:15.123Z", "level": "info", "message": "a"},
    {"timestamp": "2025-01-10T08:30:16Z", "level": "error", "message": "b", "attributes": {"code": 502}}
  ]'

示例 3:NDJSON + gzip

printf '%s\n' \
'{"timestamp":"2025-01-10T08:30:15Z","level":"info","message":"line1"}' \
'{"timestamp":"2025-01-10T08:30:16Z","level":"warn","message":"line2"}' \
| gzip -c \
| curl -X POST "https://collector.example.com/v1/logs" \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/x-ndjson" \
  -H "Content-Encoding: gzip" \
  --data-binary @-

示例 4:幂等请求(避免重复入队)

curl -X POST "https://collector.example.com/v1/logs" \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -H "X-Request-Id: 1b3c1e02-a7e1-4eb3-91f2-115aa0e51d0f" \
  -d '{"timestamp":"2025-01-10T08:30:15Z","level":"info","message":"idempotent"}'

架构说明

  • Ingestion API
    • 接收 HTTP 请求,执行鉴权、内容协商与速率限制
  • Validator
    • 对每条日志进行 JSON 与模式校验、字段标准化(如时间戳解析)
  • Buffer/Queue
    • 异步缓冲,支持背压;提供至少一次投递语义
  • Processor
    • 可选的轻量化处理(清洗、字段补全、标签附加)
  • Sink/Exporter
    • 转发到下游(如对象存储、搜索引擎、消息队列或内部处理管道)
  • Observability
    • 采集内部指标与健康状态,用于外部监控

语义保障:

  • 写入为“至少一次”语义;客户端需容忍偶发重复并在消费端去重或通过幂等键减少重复

配置指南

  1. 认证与安全
  • 所有请求必须使用 HTTPS
  • 在请求头中携带 API Key
    • X-Api-Key: <YOUR_API_KEY>
  • 可选幂等键
    • X-Request-Id: <UUID或其他稳定唯一值>
    • 作用:同一 24 小时窗口内重复请求(且负载一致)将复用同一 ingestion_id;若负载不同返回 409 Conflict
  1. 接口定义

POST /v1/logs

  • 描述:写入单条或批量日志
  • 请求头
    • Content-Type: application/json 或 application/x-ndjson
    • Content-Encoding: gzip(可选)
    • X-Api-Key: 必填
    • X-Request-Id: 可选(启用幂等)
  • 请求体
    • 三种等价格式:
      • 单条 JSON 对象
      • JSON 数组(每个元素为一条日志)
      • NDJSON(每行一个 JSON 对象)
  • 响应
    • 成功:202 Accepted
    • Body:
      {
        "ingestion_id": "ing-01HYY4ZK9V8Z2M2TQ1E9S8WQ3B",
        "accepted": 98,
        "rejected": 2,
        "errors": [
          {"index": 0, "error_code": "schema_violation", "message": "missing message"},
          {"index": 7, "error_code": "invalid_timestamp", "message": "invalid RFC3339 format"}
        ]
      }
      
  • 典型错误码
    • 400 Bad Request:无效 JSON/不支持的字段类型/不支持的 Content-Type
    • 401 Unauthorized:鉴权失败或缺失 API Key
    • 409 Conflict:X-Request-Id 冲突且负载不同
    • 413 Payload Too Large:请求体超限
    • 415 Unsupported Media Type:Content-Type 不支持
    • 429 Too Many Requests:触发限流
    • 500/503:服务器内部错误/暂时性不可用

GET /v1/ingestions/{ingestion_id}

  • 描述:查询入队处理状态(可用于异步确认)
  • 响应示例:
    {
      "ingestion_id": "ing-01HYY4ZK9V8Z2M2TQ1E9S8WQ3B",
      "status": "completed",   // processing|completed|partial|failed
      "accepted": 98,
      "rejected": 2,
      "errors": [
        {"index": 0, "error_code": "schema_violation", "message": "missing message"}
      ],
      "received_at": "2025-01-10T08:30:17.004Z",
      "expires_at": "2025-01-11T08:30:17.004Z"
    }
    

GET /v1/health

  • 描述:Collector 运行健康检查
  • 响应:200 OK
    { "status": "ok" }
    
  1. 日志记录模式(LogRecord)
  • 通用 JSON 对象,字段如下(未标注必填均为可选)
    • timestamp: string
      • RFC3339/ISO-8601 格式,建议使用 UTC(Z)
      • 若缺省,系统使用接收时间
    • level: string
      • 允许值:trace|debug|info|warn|error|fatal(大小写不敏感)
      • 默认:info
    • message: string(建议提供)
      • 建议不超过 32KB
    • service: object
      • name: string(如 "auth-service")
      • version: string(如 "1.4.2")
    • host: object
      • name: string(如 "node-12")
    • logger: string(记录器名称)
    • thread: string(线程或协程标识)
    • trace_id: string
      • 16 字节十六进制(32 个十六进制字符)
    • span_id: string
      • 8 字节十六进制(16 个十六进制字符)
    • attributes: object
      • 任意键值对,值类型支持 string | number | boolean
    • labels: object
      • 轻量标签(string -> string)
    • source: string
      • 客户端自定义来源标识

示例 LogRecord:

{
  "timestamp": "2025-01-10T08:30:15.123456Z",
  "level": "error",
  "message": "payment failed",
  "service": {"name": "payment-api", "version": "2.3.1"},
  "host": {"name": "vm-23"},
  "trace_id": "6b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e",
  "span_id": "1a2b3c4d5e6f7a8b",
  "attributes": {"order_id":"o-8876","amount":199.99,"currency":"USD","retry":false},
  "labels": {"env":"prod","region":"us-east-1"},
  "source": "gateway"
}
  1. 大小与配额限制(默认建议值,实际以部署配置为准)
  • 单请求最大 body:5 MB
  • 单请求最大日志条数:10,000
  • 单条日志中 attributes 键数量:≤ 256
  • 单个字段最大长度:64 KB(message 建议 ≤ 32 KB)
  • 速率限制:返回头包含以下可选字段(如启用)
    • X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
  1. 内容类型与编码
  • Content-Type:
    • application/json(单条或数组)
    • application/x-ndjson(换行分隔)
  • Content-Encoding:
    • gzip(可选,建议用于大批量或高并发)
  1. 错误模型
  • 响应体(错误场景):
    {
      "error_code": "invalid_json",
      "message": "malformed JSON payload",
      "details": {"position": 128}
    }
    
  • 常见 error_code:
    • invalid_json, unsupported_media_type, unauthorized, forbidden, payload_too_large, rate_limited, schema_violation, invalid_timestamp, invalid_level, duplicate_request_id, internal_error
  1. 重试与幂等
  • 网络/5xx/429 建议带指数退避重试;初始退避 200–500ms,最大退避 10s,抖动随机化
  • 使用 X-Request-Id 提供去重能力
    • 同一 request id + 相同负载:返回相同 ingestion_id,不重复入队
    • 同一 request id + 不同负载:409 Conflict
  • 客户端应对 413/400 修正负载后再发送,避免盲目重试
  1. 时间与时区
  • 建议使用 UTC(Z)时间戳
  • 允许纳秒精度(若超出系统精度,将按支持精度截断/舍入)

最佳实践

  • 批量发送
    • 优先使用批量(JSON 数组或 NDJSON)以减少连接与开销;建议每批 100–1000 条,或按 256KB–1MB 的未压缩体积分批
  • 压缩传输
    • 对大批次启用 gzip,可显著降低带宽占用与延迟
  • 字段规范化
    • 保持稳定的 service.name 与 labels.env,用于后续路由与索引
    • 使用 attributes 承载业务键值,不要在 message 中混合结构化信息
  • 幂等与可恢复
    • 为每个请求生成稳定的 X-Request-Id(如 UUID v4),在客户端重试时复用
  • 错误处理
    • 对 207 式的“部分成功”(通过 errors 数组体现)进行逐条修正重发,避免整批重复
  • 速率与背压
    • 监控 429 与 X-RateLimit-* 头,动态调整批大小与发送速率
  • 安全
    • API Key 保存在安全存储,避免写入应用日志
    • 仅通过 HTTPS 发送,验证证书链
  • 观测性
    • 在客户端记录发送量、失败量、重试次数、平均批大小与延迟,便于容量规划
  • 数据质量
    • 保证 timestamp 单调不倒退(尽量与 NTP 同步)
    • 限制 attributes 键数量与长度,避免过度高基数字段

如需更多示例或 SDK 适配建议,请根据您的语言栈实现以下要点:统一 HTTP 客户端、批处理缓冲、gzip 压缩、指数退避重试、X-Request-Id 幂等与可观测指标上报。

示例详情

解决的问题

为DevOps团队提供一款“即写即用”的智能文档生成器,帮助你在数分钟内产出可上线、可交付、可复用的工具文档套件。通过一句输入,自动生成从简介、上手步骤、原理结构、安装与配置到实践建议的全链路内容;按开发、测试、运维、SRE等不同读者自动调整深浅与表达;统一术语与结构,减少沟通成本与误操作。目标是将文档产出效率提升数倍、显著降低重复问答与支持成本,加速工具采用与版本发布,最终实现更快交付与更稳运营。

适用用户

DevOps工程师

在工具上线或迁移时,快速产出安装指南、配置样例与故障排查章节,沉淀脚本用法,减少反复答疑与交接时间。

SRE/运维团队

制定巡检与告警处理手册,清晰化回滚流程和常见问题库,缩短故障恢复时间,保障服务稳定运行。

技术负责人/架构师

梳理系统架构与依赖边界,明确容量规划与变更影响,统一文档标准,提升团队协作与合规可审计性。

特征总结

一键生成多种DevOps工具文档,从工具概述到配置指南,结构清晰,上手即用。
依据目标读者自动调整详略与术语,面向新人友好,又能满足资深工程师查阅。
内置最佳实践和常见场景示例,轻松生成可落地的操作步骤与规避风险提示。
支持快速开始、架构说明、配置指南等模块化输出,一键组合成完整手册。
自动抽取工具核心价值与使用边界,避免过度承诺,帮助团队达成一致预期。
统一术语与格式规范,消除文档风格差异,降低沟通成本,提升跨团队协作效率。
针对CI/CD、监控、基础设施即代码与脚本场景,轻松生成针对性的文档模板。
提供审校清单与发布建议,保障内容准确及时,文档上线流程更可控可追溯。
按版本迭代快速更新变更说明,保持文档与工具同步,显著降低后续维护负担。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 537 tokens
- 4 个可调节参数
{ 工具名称 } { 文档类型 } { 详细程度 } { 目标用户 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59