跳转至

开启部署版自身的可观测

概述

本文档的目的在于能够帮助私有部署版用户,如何对部署版实施可观测,以提升整体观测云服务的运行可靠性。此篇讲述了2种经典的可观测模式,以及在 Kubernetes 的环境下如何部署 Datakit 数据采集、日志及切割、应用性能监测、可用性监测、用户访问监测 等。此外,我们还提供了基础设施及中间件观测应用服务观测的一键导入模板文件,方便大家更好的使用以便观测自身环境。

部署版可观测模式

此模式是指,自己观测自己。换句话说,就是自己把数据打到自己的空间上。这就意味着如果环境挂掉了。那么自己也同时观测不到自己的信息数据了,并且也无法进一步排查原因。此方案优点是:部署方便。缺点是:数据是持续产生的,会产生数据自迭代,导致一直循环下去,并且集群崩溃时,无法观测到自身的问题。

此模式是指,客户的多个观测云都往同一节点去打。优点:不会造成数据传输闭环的情况,并且能够实时监测到自身集群的状态。

guance2

账号信息准备

名称 类型 说明 创建语法(注意修改密码) 重要程度
私有 FUNC 数据库账号 DB & USER FUNC 服务连接账号 CREATE DATABASE private_func;
create user 'private_func'@'%' identified by 'V4KySbFhzDkxxxx';
GRANT ALL PRIVILEGES ON private_func.* TO private_func;
FLUSH PRIVILEGES;
可选
MySQL 自观测账号 USER 自观测账号,采集MySQL 指标 CREATE USER 'datakit'@'%' IDENTIFIED WITH caching_sha2_password by 'SFGS&DFxxxx32!';
GRANT PROCESS ON . TO 'datakit'@'%';
GRANT SELECT ON . TO 'datakit'@'%';
show databases like 'performance_schema';
GRANT SELECT ON performance_schema.* TO 'datakit'@'%';
GRANT SELECT ON mysql.user TO 'datakit'@'%';
GRANT replication client on . to 'datakit'@'%';
重要
业务数据采集账号 USER 使用 FUNC 采集业务数据使用 CREATE USER 'read'@'%' IDENTIFIED BY 'u19e0LmkL8Fxxxx';
GRANT SELECT ON df_core.* TO 'read'@'%';
FLUSH PRIVILEGES;
可选
PostgreSQL 自观测账号 USER GuanceDB 3.0 监控使用 CREATE USER datakit WITH PASSWORD 'Z7ZdQ326EeexxxxP';
GRANT pg_monitor TO datakit;
GRANT CONNECT ON DATABASE scopedb_meta TO datakit;
GRANT SELECT ON pg_stat_database TO datakit;
可选

配置数据采集

部署 DataKit

1)下载datakit.yaml

注意

注意:以上DataKit默认的配置中间件配置都已配置完毕,稍作修改即可使用。

2)修改 datakit.yaml DaemonSet 的模板文件

   - name: ENV_DATAWAY
     value: https://openway.guance.com?token=tkn_a624xxxxxxxxxxxxxxxxxxxxxxxx74 ## 此处填上 dataway 真实地址
   - name: ENV_GLOBAL_TAGS
     value: host=__datakit_hostname,host_ip=__datakit_ip,guance_site=guance,cluster_name_k8s=guance # 面板变量根据自己实际情况修改
   - name: ENV_GLOBAL_ELECTION_TAGS
     value: guance_site=guance,cluster_name_k8s=guance     # 根据自己面板变量实际情况修改
   image: pubrepo.guance.com/datakit/datakit:1.65.2     ## 修改成最新镜像版本

3)修改 datakit.yaml 中关于ConfigMap的相关配置

apiVersion: v1
kind: ConfigMap
metadata:
  name: datakit-conf
  namespace: datakit
data:
    mysql.conf: |-
        [[inputs.mysql]]
          host = "xxxxxxxxxxxxxxx"      ##修改对应MySQL连接地址
          user = "ste3"                 ##修改MySQL用户名
          pass = "Test1234"             ##修改MySQL密码
          ......

    redis.conf: |-
        [[inputs.redis]]
          host = "r-xxxxxxxxx.redis.rds.ops.ste3.com"            ## 修改Redis连接地址
          port = 6379                                                   
          # unix_socket_path = "/var/run/redis/redis.sock"
          # 配置多个db,配置了dbs,db也会放入采集列表。dbs=[]或者不配置则会采集redis中所有非空的db
          # dbs=[]
          # username = "<USERNAME>"
           password = "Test1234"                                        ## 修改Redis密码
          ......

    openes.conf: |-
        [[inputs.elasticsearch]]
          ## Elasticsearch服务器配置
          # 支持Basic认证:
          # servers = ["http://user:pass@localhost:9200"]
          servers = ["http://guance:123.com@opensearch-cluster-client.middleware:9200"]   ## 修改用户名、密码等
          ......

4)挂载操作

        - mountPath: /usr/local/datakit/conf.d/db/mysql.conf
          name: datakit-conf
          subPath: mysql.conf
          readOnly: false

注意:多个配置也是一样的。依次添加下去。

6)修改后开始部署DataKit

kubectl apply -f datakit.yaml

环境变量说明

变量名称 说明
ENV_DEFAULT_ENABLED_INPUTS 配置默认采集: self,cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,zipkin
ENV_ENABLE_ELECTION 启用选举机制后,Prometheus 采集(或其他组件)会以主节点或候选节点方式工作
ENV_GLOBAL_ELECTION_TAGS 在选举组件中添加额外的标签维度,对 Prometheus 采集时打标签使用(在选举开启时有效)
ENV_INPUT_DDTRACE_COMPATIBLE_OTEL 启用otel TraceDDTrace Trace 兼容
ENV_INPUT_DISK_USE_NSENTER nsenter 方式来采集磁盘用量信息,采集集群动态存储块信息,如果使用动态存储块存储,一定要设置
ENV_INPUT_HOSTOBJECT_USE_NSENTER nsenter 方式来采集磁盘用量信息,采集集群动态存储块信息,如果使用动态存储块存储,一定要设置
ENV_INPUT_CONTAINER_ENABLE_CONTAINER_METRIC 开启容器指标采集
ENV_INPUT_CONTAINER_ENABLE_POD_METRIC 开启 Pod 指标采集(CPU 和内存使用情况)
ENV_INPUT_CONTAINER_ENABLE_K8S_METRIC 开启 k8s 指标采集

导入视图、监控器模板及 Pipelines

注意

导入监控模板之后,需手动设置告警策略和告警通知对象。

导入视图、监控器模板

下载视图及监控器模板

「管理」-「空间设置」-「导入」

allin

注意

导入后监控要修改相应的跳转链接配置。要把 url 中的 dsbd_xxxx 换到对应的仪表板下,wksp_xxxx 换成要监测的空间下。

导入 Pipelines

解压 guance-self-observing-latest.zip 文件,路径:guance-self-observing-latest/pipeline

「管理」-「Pipelines」-「导入」

应用服务观测

配置服务 prom 采集

下载prom 配置文件

解压 guance-self-observing-prom-latest.zip ,并执行以下命令:

cd guance-self-observing-prom-latest
kubectl patch deploy kodo-x -n  forethought-kodo  --type merge --patch "$(cat kodo-x-prom.yaml)" 
kubectl patch deploy kodo -n  forethought-kodo  --type merge --patch "$(cat kodo-prom.yaml)" 
kubectl patch sts kodo-servicemap -n  forethought-kodo  --type merge --patch "$(cat kodo-servicemap-prom.yaml)" 
kubectl patch sts kodo-x-backuplog -n  forethought-kodo  --type merge --patch "$(cat kodo-x-backuplog-prom.yaml)" 
kubectl patch deploy inner -n  forethought-core  --type merge --patch "$(cat core-inner-prom.yaml)" 

配置应用性能监测

注入 forethought-core 配置

#!/bin/bash
set -euo pipefail

# 命名空间
NAMESPACE="${NAMESPACE:-forethought-core}"

# —— 每个 deployment 的专属 KV 写在这里(脚本里,不用外部文件)——
# 一行一个:"<deploy> KEY=VAL KEY=VAL ..."
DEPLOY_ENV_CONFIG=(

  'front-backend DD_PATCH_MODULES=redis:true,urllib3:true,httplib:true,sqlalchemy:true,httpx:true DD_AGENT_PORT=9529 DD_GEVENT_PATCH_ALL=true DD_SERVICE=front-backend DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'inner DD_PATCH_MODULES=redis:true,urllib3:true,httplib:true,sqlalchemy:true,httpx:true DD_AGENT_PORT=9529 DD_GEVENT_PATCH_ALL=true DD_SERVICE=inner DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'management-backend DD_PATCH_MODULES=redis:true,urllib3:true,httplib:true,sqlalchemy:true,httpx:true DD_AGENT_PORT=9529 DD_GEVENT_PATCH_ALL=true DD_SERVICE=management-backend DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'open-api DD_PATCH_MODULES=redis:true,urllib3:true,httplib:true,sqlalchemy:true,httpx:true DD_AGENT_PORT=9529 DD_GEVENT_PATCH_ALL=true DD_SERVICE=open-api DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'sse DD_PATCH_MODULES=redis:true,urllib3:true,httplib:true,sqlalchemy:true,httpx:true DD_AGENT_PORT=9529 DD_GEVENT_PATCH_ALL=true DD_SERVICE=sse DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'core-worker DD_TRACE_ENABLED=false'
  'core-worker-0 DD_TRACE_ENABLED=false'
  'core-worker-beat DD_TRACE_ENABLED=false'
  'core-worker-correlation DD_TRACE_ENABLED=false'
)

# —— 只在 args[0] 前置 ddtrace-run(不修改 command)——
prefix_ddtrace_run_args_only() { # $1 deploy
  local d="$1"

  # 若明确禁用 tracing,则不加
  local trace_enabled
  trace_enabled="$(kubectl get deploy "$d" -n "$NAMESPACE" \
     -o jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="DD_TRACE_ENABLED")].value}' 2>/dev/null || true)"
  if [[ "$trace_enabled" == "false" ]]; then
    echo "  • DD_TRACE_ENABLED=false,跳过 ddtrace-run。"
    return 0
  fi

  # 读取 args[0]
  local first_arg
  first_arg="$(kubectl get deploy "$d" -n "$NAMESPACE" \
     -o jsonpath='{.spec.template.spec.containers[0].args[0]}' 2>/dev/null || true)"

  # 已经是 ddtrace-run 就跳过
  if [[ "$first_arg" == "ddtrace-run" ]]; then
    echo "  • args 已以 ddtrace-run 开头,跳过。"
    return 0
  fi

  # 判断是否已有 args 数组
  local has_args
  has_args="$(kubectl get deploy "$d" -n "$NAMESPACE" \
     -o jsonpath='{.spec.template.spec.containers[0].args}' 2>/dev/null || true)"

  if [[ -n "$has_args" ]]; then
    # 在现有 args 开头插入 ddtrace-run
    kubectl patch deploy "$d" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/args/0","value":"ddtrace-run"}
    ]' >/dev/null
    echo "  • 已在 args[0] 插入 ddtrace-run"
  else
    # 若没有 args,创建 args 并将 ddtrace-run 作为第一个元素
    kubectl patch deploy "$d" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/args","value":["ddtrace-run"]}
    ]' >/dev/null
    echo "  • 无 args:已创建 args=[\"ddtrace-run\"]"
  fi
}


# —— 小工具函数 —— #
has_env() { # $1 deploy  $2 KEY
  kubectl get deploy "$1" -n "$NAMESPACE" \
    -o jsonpath="{.spec.template.spec.containers[0].env[?(@.name=='$2')].name}" 2>/dev/null | grep -qx "$2"
}
ensure_env_array() { # $1 deploy
  local has_array
  has_array="$(kubectl get deploy "$1" -n "$NAMESPACE" -o jsonpath="{.spec.template.spec.containers[0].env}" 2>/dev/null || true)"
  if [[ -z "${has_array}" ]]; then
    kubectl patch deploy "$1" -n "$NAMESPACE" --type='json' -p="[
      {\"op\":\"add\",\"path\":\"/spec/template/spec/containers/0/env\",\"value\":[]}
    ]" >/dev/null
  fi
}

for item in "${DEPLOY_ENV_CONFIG[@]}"; do
  deploy="${item%% *}"
  # 若该行只有部署名,跳过
  rest="${item#* }"; [[ "$rest" == "$deploy" ]] && rest=""

  echo "→ Processing: $deploy"

  # 是否存在
  if ! kubectl get deploy "$deploy" -n "$NAMESPACE" >/dev/null 2>&1; then
    echo "  - Not found, skip."
    continue
  fi

  # 确保有 env 数组(否则 /env/- 追加会失败)
  ensure_env_array "$deploy"

  # 追加 Downward API(缺则加):DD_AGENT_HOST=status.hostIP、POD_NAME=metadata.name
  if ! has_env "$deploy" "DD_AGENT_HOST"; then
    kubectl patch deploy "$deploy" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/env/-",
       "value":{"name":"DD_AGENT_HOST","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"status.hostIP"}}}}
    ]' >/dev/null
    echo "  • add DD_AGENT_HOST (status.hostIP)"
  else
    echo "  • DD_AGENT_HOST exists, skip."
  fi

  if ! has_env "$deploy" "POD_NAME"; then
    kubectl patch deploy "$deploy" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/env/-",
       "value":{"name":"POD_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.name"}}}}
    ]' >/dev/null
    echo "  • add POD_NAME (metadata.name)"
  else
    echo "  • POD_NAME exists, skip."
  fi

  # 逐个静态 KEY=VAL(缺则加;有则跳过)
  for kv in $rest; do
    key="${kv%%=*}"
    val="${kv#*=}"
    if has_env "$deploy" "$key"; then
      echo "  • $key exists, skip."
    else
      kubectl set env deploy/"$deploy" -n "$NAMESPACE" "$key=$val" >/dev/null
      echo "  • add $key=$val"
    fi
  done
  # 确保启动命令前置 ddtrace-run
  prefix_ddtrace_run_args_only "$deploy"
  echo "  -> Done: $deploy"
done

注入 forethought-kodo 配置

#!/bin/bash
set -euo pipefail

# 命名空间
NAMESPACE="${NAMESPACE:-forethought-kodo}"

# —— 每个 deployment 的专属 KV 写在这里(脚本里,不用外部文件)——
# 一行一个:"<deploy> KEY=VAL KEY=VAL ..."
DEPLOY_ENV_CONFIG=(
  'kodo DD_TRACE_ENABLED=true DD_TRACE_AGENT_PORT=9529 DD_TRACE_SAMPLE_RATE=0 DD_SERVICE=kodo DD_TAGS=pod_name:$(POD_NAME),project:dataflux'
  'kodo-inner DD_TRACE_ENABLED=true DD_TRACE_AGENT_PORT=9529 DD_SERVICE=kodo-inner DD_TAGS=pod_name:$(POD_NAME),project:dataflux'

)

# —— 小工具函数 —— #
has_env() { # $1 deploy  $2 KEY
  kubectl get deploy "$1" -n "$NAMESPACE" \
    -o jsonpath="{.spec.template.spec.containers[0].env[?(@.name=='$2')].name}" 2>/dev/null | grep -qx "$2"
}
ensure_env_array() { # $1 deploy
  local has_array
  has_array="$(kubectl get deploy "$1" -n "$NAMESPACE" -o jsonpath="{.spec.template.spec.containers[0].env}" 2>/dev/null || true)"
  if [[ -z "${has_array}" ]]; then
    kubectl patch deploy "$1" -n "$NAMESPACE" --type='json' -p="[
      {\"op\":\"add\",\"path\":\"/spec/template/spec/containers/0/env\",\"value\":[]}
    ]" >/dev/null
  fi
}

for item in "${DEPLOY_ENV_CONFIG[@]}"; do
  deploy="${item%% *}"
  # 若该行只有部署名,跳过
  rest="${item#* }"; [[ "$rest" == "$deploy" ]] && rest=""

  echo "→ Processing: $deploy"

  # 是否存在
  if ! kubectl get deploy "$deploy" -n "$NAMESPACE" >/dev/null 2>&1; then
    echo "  - Not found, skip."
    continue
  fi

  # 确保有 env 数组(否则 /env/- 追加会失败)
  ensure_env_array "$deploy"

  # 追加 Downward API(缺则加):DD_AGENT_HOST=status.hostIP、POD_NAME=metadata.name
  if ! has_env "$deploy" "DD_AGENT_HOST"; then
    kubectl patch deploy "$deploy" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/env/-",
       "value":{"name":"DD_AGENT_HOST","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"status.hostIP"}}}}
    ]' >/dev/null
    echo "  • add DD_AGENT_HOST (status.hostIP)"
  else
    echo "  • DD_AGENT_HOST exists, skip."
  fi

  if ! has_env "$deploy" "POD_NAME"; then
    kubectl patch deploy "$deploy" -n "$NAMESPACE" --type='json' -p='[
      {"op":"add","path":"/spec/template/spec/containers/0/env/-",
       "value":{"name":"POD_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.name"}}}}
    ]' >/dev/null
    echo "  • add POD_NAME (metadata.name)"
  else
    echo "  • POD_NAME exists, skip."
  fi

  # 逐个静态 KEY=VAL(缺则加;有则跳过)
  for kv in $rest; do
    key="${kv%%=*}"
    val="${kv#*=}"
    if has_env "$deploy" "$key"; then
      echo "  • $key exists, skip."
    else
      kubectl set env deploy/"$deploy" -n "$NAMESPACE" "$key=$val" >/dev/null
      echo "  • add $key=$val"
    fi
  done

  echo "  -> Done: $deploy"
done

配置可用性监测

1)新建一个要监测的网站

boce1

2)配置拨测任务

boce2

注意

根据实际设置的域名进行修改

名称 拨测地址 类型 任务状态 操作
xx-dataflux-api https://xx-console-api.guance.com HTTP 启动 img
xx-open-api https://xx-open-api.guance.com HTTP 启动 img
xx-dataway https://xx-dataway.guance.com HTTP 启动 img
xx-static-res https://xx-static-res.guance.com/dataflux-template/README.md HTTP 启动 img
xx-dataflux https://xx-dataflux.guance.com HTTP 启动 img
xx-management-api https://xx-management-api.guance.com HTTP 启动 img
xx-management https://xx-management.guance.com HTTP 启动 img

配置用户访问监测

注意

如果没有找到“使用公网 DataWay”,请修改 namespace「forethought-webclient」- configmap「front-web-config」,添加 rumDatawayUrl:<https://<Dataway 地址>,并重启 front-webclient 服务。

1)获取 RUM 配置

登录自观测空间创建 RUM app

  • App Name:观测云
  • App ID: xxx_guance_com
  • 获取 site
  • 获取 clientToken

2)修改 forethought-webclient namespace 下 front-web-config ConfigMap配置(参数没有就添加)

  • rumEnable: 1 (1 为开启)
  • rumOpenwayUrl 为 「获取的 site」
  • rumClientToken 为 「获取 clientToken」
  • rumApplicationId 为 「App ID」
  • rumAllowedDdtracingOrigins 为 ["https://xxx-console-api.guance.com", "https://xxx-console.guance.com",]
window.DEPLOYCONFIG = {
    cookieDomain: '.guance.com',
    apiUrl: 'https://cn4-console-api.guance.com',
    wsUrl: 'wss://.guance.com',
    innerAppDisabled: 0,
    innerAppLogin: 'https://cn4-auth.guance.com/redirectpage/login',
    innerAppRegister: 'https://cn4-auth.guance.com/redirectpage/register',
    innerAppProfile: 'https://cn4-auth.guance.com/redirectpage/profile',
    innerAppCreateworkspace: 'https://cn4-auth.guance.com/redirectpage/createworkspace',
    staticFileUrl: 'https://cn4-static-res.guance.com',
    staticDatakit: 'https://static.guance.com',
    cloudDatawayUrl: '',
    isSaas: '1',
    showHelp: 1,
    rumEnable: 1,                                                                              ## 0是关闭,1是开启,此处开启
    rumOpenwayUrl: "",                                                                         ## openway 地址
    rumApplicationId: "",                                                                      ## 修改成实际appid
    rumJsUrl: "https://static.guance.com/browser-sdk/v3/dataflux-rum.js",
    rumDataEnv: 'prod',
    shrineApiUrl: '',
    upgradeUrl: '',
    rechargeUrl: '',
    paasCustomLoginInfo: []
};

告警设置

告警策略说明

告警策略名称 告警级别 告警说明 备注
P0 告警 - 飞书群 & 电话通知 严重 该策略为最高级告警,事件发生后必须立即处理。
触发条件包括:
1. 站点页面不可访问;
2. 数据无法上报或写入失败,导致数据丢失;
3. 监控器停止运行,导致用户监控失效;
4. 自动触发任务终止或失败,造成数据丢失;
5. 中间件故障,导致系统不可用或数据丢失。
告警通知对象建议:电话
基础设施告警 - 飞书群通知 严重、重要 该策略级别低于 P0 告警,事件发生后需持续关注和排查。
触发条件包括:
1. 服务异常重启;
2. 节点内存异常;
3. 节点负载过高或其他系统资源异常。
告警通知对象建议:普通(邮件、飞书等)
业务告警 - 飞书群通知 严重、重要、警告 该策略为普通级告警,事件发生后建议持续关注。
触发条件包括:
1. 服务日志报错;
2. 业务逻辑相关异常。
告警通知对象建议:普通(邮件、飞书等)
ScopeDB 相关服务告警 全部 该策略为普通级告警,事件发生后建议持续关注。
触发条件包括:
1. ScopeDB 服务日志报错;
2. ScopeDB 性能告警
告警通知对象建议:普通(邮件、飞书等)

告警设置步骤

创建通知对象

  1. 登录自观测空间访问「监控」-「通知对象管理」

  2. 新建 3 个不同通知对象(通知对象类型不限,建议不同通知群)

  3. 业务告警
  4. 基础设施告警
  5. P0 告警

new-monitor

配置告警策略

「监控」- 「告警策略管理」设置通知配置

告警策略名称 通知配置-等级 通知配置-对象 重复告警周期
基础设施告警 -飞书群 严重、重要 基础设施告警 30 分钟
P0 告警 - 飞书群 & 电话通知 严重 P0 告警 6 小时
业务告警 - 飞书群通知 严重、重要、警告 业务告警 30 分钟
ScopeDB 相关服务告警 全部 业务告警 30 分钟

setting-checkrule

Func 自观测(可选)

Func 任务日志数据上报

DataFlux Func 的函数运行日志、自动触发配置等信息可以直接上报至观测云。步骤如下图

allin

在观测云数据上报中填写 DataWay / OpenWay 地址和 Token 信息即可,格式如下:

https://openway.guance.com?token=tkn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意:如果Func数据上报失败,可查看 DataFlux Func文档

业务监控采集(可选)

私有 Func 部署

注意,storageClass、MYSQL_HOST、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 等参数

helm install func func --repo https://pubrepo.guance.com/chartrepo/func -n datakit  --create-namespace  \
    --set storage.pvc.enabled=true,storage.pvc.storageClass="xxxxxxxx" \
    --set mysql.enabled=false,func.MYSQL_HOST='xxxxxx' \
    --set func.MYSQL_USER=private_func,func.MYSQL_PASSWORD=xxxxx,func.MYSQL_DATABASE=private_func

设置 ingress

提前设置证书

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: xxx-private-func
  namespace: datakit
spec:
  ingressClassName: nginx
  rules:
    - host: xxx-private-func.guance.com
      http:
        paths:
          - backend:
              service:
                name: func-server
                port:
                  number: 8088
            path: /
            pathType: ImplementationSpecific
  tls:
    - hosts:
        - xxx-private-func.guance.com
      secretName: guance.com

初始化

浏览器访问域名,下一步

导入脚本

下载脚本包

访问「脚本集导入」-「脚本导入」

修改数据库环境变量配置

填写 【业务数据采集账号】信息

验证方式

需切换 guance_site 参数

名称 验证方式 验证操作
MySQL DQL M::mysql:(avg(max_connections)) { guance_site = 'xxx' } BY host
Redis DQL M::redis_info:(avg(maxmemory)) { guance_site = 'xxx' } BY host
PostgreSQL DQL M::postgresql_connection:(max(percent_usage_connections)) { guance_site = 'xxx' }
NSQD DQL M::nsq_topics:(max(message_count)) { guance_site = 'xxx' } BY topic
DataWay DQL M::dw:(max(dataway_cpu_cores)) { guance_site = 'xxx' } BY guance_site
Studio 链路 DQL T::front-backend:(count(*)) { guance_site = 'xxx' } BY guance_site
Kodo-inner 链路 DQL T::kodo-inner:(count(*)) { guance_site = 'xxx' } BY guance_site
Kodo 指标 DQL M::kodo_workers:(count(job_point_bytes_total), count(write_byte_total)) BY guance_site

文档评价

文档内容是否对您有帮助? ×