New-ItemProperty ` -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" ` -Name "LocalAccountTokenFilterPolicy" ` -Value 1 ` -PropertyType DWord ` -Force Set-NetConnectionProfile -InterfaceIndex 17 -NetworkCategory Private New-NetFirewallRule ` -DisplayName "Allow WinRM 5985 From 192.168.1.0-24" ` -Direction Inbound ` -Protocol TCP ` -LocalPort 5985 ` -RemoteAddress 192.168.173.0/24 ` -Action Allow ` -Profile Any New-NetFirewallRule ` -DisplayName "Allow Agent 19100 From 192.168.1.0-24" ` -Direction Inbound ` -Protocol TCP ` -LocalPort 19100 ` -RemoteAddress 192.168.1.0/24 ` -Action Allow ` -Profile Any Enable-PSRemoting -Force Set-Item -Path WSMan:\localhost\Service\Auth\Basic -Value $true Set-Item -Path WSMan:\localhost\Service\Auth\Negotiate -Value $true Set-Item -Path WSMan:\localhost\Service\AllowUnencrypted -Value $true Restart-Service WinRM
一、架构GitLab Repo ├─ .gitlab-ci.yml # GitLab Runner 执行 │ ├─ test │ ├─ build image │ └─ push image / update GitOps repo │ └─ k8s manifests / Helm values ↓ Argo CD └─ sync 到 Kubernetes GitLab Runner 负责 CI：构建、测试、打镜像、推镜像。 Argo CD 负责 CD：监听 Git 仓库，把 Kubernetes 配置同步到集群。二、Kubernetes 中创建 Runner Secret kubectl -n gitlab-runner create secret generic gitlab-runner-secret \ --from-literal=runner-token='glrt-xxxxxxxxxxxxxxxx' \ --from-literal=runner-registration-token=''2.1 用 Argo CD 部署 GitLab Runner Helm ChartapiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: gitlab-runner namespace: argocd spec: project: default source: repoURL: https://charts.gitlab.io chart: gitlab-runner targetRevision: <指定一个 chart 版本> helm: releaseName: gitlab-runner valuesObject: gitlabUrl: https://gitlab.example.com rbac: create: true serviceAccount: create: true concurrent: 10 checkInterval: 3 runners: secret: gitlab-runner-secret executor: kubernetes config: | runners executor = "kubernetes" [runners.kubernetes] namespace = "{{.Release.Namespace}}" image = "ubuntu:22.04" privileged = false poll_timeout = 180 securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: false runAsNonRoot: true privileged: false capabilities: drop: ["ALL"] destination: server: https://kubernetes.default.svc namespace: gitlab-runner syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=trueArgo CD 的 Application 可以直接引用 Helm chart repo，并通过 chart、targetRevision、helm.valuesObject 配置 Helm 参数。 targetRevision 建议固定版本，不要长期用 latest。你可以先查可用版本：helm repo add gitlab https://charts.gitlab.io helm repo update helm search repo -l gitlab/gitlab-runnerroot@k8s-01:~# helm search repo -l gitlab/gitlab-runner NAME CHART VERSION APP VERSION DESCRIPTION gitlab/gitlab-runner 0.89.0 19.0.0 GitLab Runner gitlab/gitlab-runner 0.88.3 18.11.3 GitLab Runner gitlab/gitlab-runner 0.88.2 18.11.2 GitLab Runner gitlab/gitlab-runner 0.88.1 18.11.1 GitLab Runner gitlab/gitlab-runner 0.88.0 18.11.0 GitLab Runner gitlab/gitlab-runner 0.87.1 18.10.1 GitLab Runner gitlab/gitlab-runner 0.87.0 18.10.0 GitLab Runner gitlab/gitlab-runner 0.86.0 18.9.0 GitLab Runner gitlab/gitlab-runner 0.85.0 18.8.0 GitLab Runner gitlab/gitlab-runner 0.84.2 18.7.2 GitLab Runner gitlab/gitlab-runner 0.84.1 18.7.1 GitLab Runner gitlab/gitlab-runner 0.84.0 18.7.0 GitLab Runner gitlab/gitlab-runner 0.83.3 18.6.3 GitLab Runner gitlab/gitlab-runner 0.83.2 18.6.2 GitLab Runner gitlab/gitlab-runner 0.83.1 18.6.1 GitLab Runner gitlab/gitlab-runner 0.83.0 18.6.0 GitLab Runner gitlab/gitlab-runner 0.82.0 18.5.0 GitLab Runner gitlab/gitlab-runner 0.81.0 18.4.0 GitLab Runner gitlab/gitlab-runner 0.80.1 18.3.1 GitLab Runner gitlab/gitlab-runner 0.80.0 18.3.0 GitLab Runner gitlab/gitlab-runner 0.79.2 18.2.2 GitLab Runner gitlab/gitlab-runner 0.79.1 18.2.1 GitLab Runner gitlab/gitlab-runner 0.79.0 18.2.0 GitLab Runner gitlab/gitlab-runner 0.78.3 18.1.3 GitLab Runner gitlab/gitlab-runner 0.78.2 18.1.2 GitLab Runner gitlab/gitlab-runner 0.78.1 18.1.1 GitLab Runner gitlab/gitlab-runner 0.78.0 18.1.0 GitLab Runner gitlab/gitlab-runner 0.77.5 18.0.5 GitLab Runner gitlab/gitlab-runner 0.77.4 18.0.4 GitLab Runner gitlab/gitlab-runner 0.77.3 18.0.3 GitLab Runner gitlab/gitlab-runner 0.77.2 18.0.2 GitLab Runner gitlab/gitlab-runner 0.77.1 18.0.1 GitLab Runner gitlab/gitlab-runner 0.77.0 18.0.0 GitLab Runner gitlab/gitlab-runner 0.76.3 17.11.3 GitLab Runner gitlab/gitlab-runner 0.76.2 17.11.2 GitLab Runner gitlab/gitlab-runner 0.76.1 17.11.1 GitLab Runner gitlab/gitlab-runner 0.76.0 17.11.0 GitLab Runner gitlab/gitlab-runner 0.75.2 17.10.2 GitLab Runner gitlab/gitlab-runner 0.75.1 17.10.1 GitLab Runner gitlab/gitlab-runner 0.75.0 17.10.0 GitLab Runner gitlab/gitlab-runner 0.74.3 17.9.3 GitLab Runner gitlab/gitlab-runner 0.74.2 17.9.2 GitLab Runner gitlab/gitlab-runner 0.74.1 17.9.1 GitLab Runner gitlab/gitlab-runner 0.74.0 17.9.0 GitLab Runner gitlab/gitlab-runner 0.73.5 17.8.5 GitLab Runner gitlab/gitlab-runner 0.73.4 17.8.4 GitLab Runner gitlab/gitlab-runner 0.73.3 17.8.3 GitLab Runner gitlab/gitlab-runner 0.73.2 17.8.2 GitLab Runner gitlab/gitlab-runner 0.73.1 17.8.1 GitLab Runner gitlab/gitlab-runner 0.73.0 17.8.0 GitLab Runner gitlab/gitlab-runner 0.72.1 17.7.1 GitLab Runner gitlab/gitlab-runner 0.72.0 17.7.0 GitLab Runner gitlab/gitlab-runner 0.71.0 17.6.0 GitLab Runner gitlab/gitlab-runner 0.70.5 17.5.5 GitLab Runner gitlab/gitlab-runner 0.70.4 17.5.4 GitLab Runner gitlab/gitlab-runner 0.70.3 17.5.3 GitLab Runner gitlab/gitlab-runner 0.70.2 17.5.2 GitLab Runner gitlab/gitlab-runner 0.70.1 17.5.1 GitLab Runner gitlab/gitlab-runner 0.70.0 17.5.0 GitLab Runner gitlab/gitlab-runner 0.69.2 17.4.2 GitLab Runner gitlab/gitlab-runner 0.69.1 17.4.1 GitLab Runner gitlab/gitlab-runner 0.69.0 17.4.0 GitLab Runner gitlab/gitlab-runner 0.68.3 17.3.3 GitLab Runner gitlab/gitlab-runner 0.68.2 17.3.2 GitLab Runner gitlab/gitlab-runner 0.68.1 17.3.1 GitLab Runner gitlab/gitlab-runner 0.68.0 17.3.0 GitLab Runner gitlab/gitlab-runner 0.67.3 17.2.3 GitLab Runner gitlab/gitlab-runner 0.67.2 17.2.2 GitLab Runner gitlab/gitlab-runner 0.67.1 17.2.1 GitLab Runner gitlab/gitlab-runner 0.67.0 17.2.0 GitLab Runner gitlab/gitlab-runner 0.66.2 17.1.2 GitLab Runner gitlab/gitlab-runner 0.66.1 17.1.1 GitLab Runner gitlab/gitlab-runner 0.66.0 17.1.0 GitLab Runner gitlab/gitlab-runner 0.65.3 17.0.3 GitLab Runner gitlab/gitlab-runner 0.65.2 17.0.2 GitLab Runner gitlab/gitlab-runner 0.65.1 17.0.1 GitLab Runner gitlab/gitlab-runner 0.65.0 17.0.0 GitLab Runner gitlab/gitlab-runner 0.64.4 16.11.4 GitLab Runner gitlab/gitlab-runner 0.64.3 16.11.3 GitLab Runner gitlab/gitlab-runner 0.64.2 16.11.2 GitLab Runner gitlab/gitlab-runner 0.64.1 16.11.1 GitLab Runner gitlab/gitlab-runner 0.64.0 16.11.0 GitLab Runner gitlab/gitlab-runner 0.63.1 16.10.1 GitLab Runner gitlab/gitlab-runner 0.63.0 16.10.0 GitLab Runner gitlab/gitlab-runner 0.62.2 16.9.2 GitLab Runner gitlab/gitlab-runner 0.62.1 16.9.1 GitLab Runner gitlab/gitlab-runner 0.62.0 16.9.0 GitLab Runner gitlab/gitlab-runner 0.61.3 16.8.1 GitLab Runner gitlab/gitlab-runner 0.61.2 16.8.0 GitLab Runner gitlab/gitlab-runner 0.61.1 16.8.0 GitLab Runner gitlab/gitlab-runner 0.61.0 16.8.0 GitLab Runner gitlab/gitlab-runner 0.60.1 16.7.1 GitLab Runner gitlab/gitlab-runner 0.60.0 16.7.0 GitLab Runner gitlab/gitlab-runner 0.59.3 16.6.2 GitLab Runner gitlab/gitlab-runner 0.59.2 16.6.1 GitLab Runner gitlab/gitlab-runner 0.59.1 16.6.0 GitLab Runner gitlab/gitlab-runner 0.59.0 16.6.0 GitLab Runner gitlab/gitlab-runner 0.58.2 16.5.0 GitLab Runner gitlab/gitlab-runner 0.58.1 16.5.0 GitLab Runner gitlab/gitlab-runner 0.58.0 16.5.0 GitLab Runner gitlab/gitlab-runner 0.57.2 16.4.2 GitLab Runner gitlab/gitlab-runner 0.57.1 16.4.1 GitLab Runner gitlab/gitlab-runner 0.57.0 16.4.0 GitLab Runner gitlab/gitlab-runner 0.56.3 16.3.3 GitLab Runner gitlab/gitlab-runner 0.56.2 16.3.2 GitLab Runner gitlab/gitlab-runner 0.56.1 16.3.1 GitLab Runner gitlab/gitlab-runner 0.56.0 16.3.0 GitLab Runner gitlab/gitlab-runner 0.55.3 16.2.3 GitLab Runner gitlab/gitlab-runner 0.55.2 16.2.2 GitLab Runner gitlab/gitlab-runner 0.55.1 16.2.1 GitLab Runner gitlab/gitlab-runner 0.55.0 16.2.0 GitLab Runner gitlab/gitlab-runner 0.54.1 16.1.1 GitLab Runner gitlab/gitlab-runner 0.54.0 16.1.0 GitLab Runner gitlab/gitlab-runner 0.53.3 16.0.3 GitLab Runner gitlab/gitlab-runner 0.53.2 16.0.2 GitLab Runner gitlab/gitlab-runner 0.53.1 16.0.1 GitLab Runner gitlab/gitlab-runner 0.53.0 16.0.0 GitLab Runner gitlab/gitlab-runner 0.52.1 15.11.1 GitLab Runner gitlab/gitlab-runner 0.52.0 15.11.0 GitLab Runner gitlab/gitlab-runner 0.51.1 15.10.1 GitLab Runner gitlab/gitlab-runner 0.51.0 15.10.0 GitLab Runner gitlab/gitlab-runner 0.50.1 15.9.1 GitLab Runner gitlab/gitlab-runner 0.50.0 15.9.0 GitLab Runner gitlab/gitlab-runner 0.49.3 15.8.3 GitLab Runner gitlab/gitlab-runner 0.49.2 15.8.2 GitLab Runner gitlab/gitlab-runner 0.49.1 15.8.1 GitLab Runner gitlab/gitlab-runner 0.49.0 15.8.0 GitLab Runner gitlab/gitlab-runner 0.48.3 15.7.4 GitLab Runner gitlab/gitlab-runner 0.48.2 15.7.3 GitLab Runner gitlab/gitlab-runner 0.48.1 15.7.2 GitLab Runner gitlab/gitlab-runner 0.48.0 15.7.0 GitLab Runner gitlab/gitlab-runner 0.47.3 15.6.3 GitLab Runner gitlab/gitlab-runner 0.47.2 15.6.2 GitLab Runner gitlab/gitlab-runner 0.47.1 15.6.1 GitLab Runner gitlab/gitlab-runner 0.47.0 15.6.0 GitLab Runner gitlab/gitlab-runner 0.46.1 15.5.1 GitLab Runner gitlab/gitlab-runner 0.46.0 15.5.0 GitLab Runner gitlab/gitlab-runner 0.45.2 15.4.2 GitLab Runner gitlab/gitlab-runner 0.45.1 15.4.1 GitLab Runner gitlab/gitlab-runner 0.45.0 15.4.0 GitLab Runner gitlab/gitlab-runner 0.44.3 15.3.3 GitLab Runner gitlab/gitlab-runner 0.44.2 15.3.2 GitLab Runner gitlab/gitlab-runner 0.44.1 15.3.1 GitLab Runner gitlab/gitlab-runner 0.44.0 15.3.0 GitLab Runner gitlab/gitlab-runner 0.43.2 15.2.2 GitLab Runner gitlab/gitlab-runner 0.43.1 15.2.1 GitLab Runner gitlab/gitlab-runner 0.43.0 15.2.0 GitLab Runner gitlab/gitlab-runner 0.42.0 15.1.0 GitLab Runner gitlab/gitlab-runner 0.41.1 15.0.1 GitLab Runner gitlab/gitlab-runner 0.41.0 15.0.0 GitLab Runner gitlab/gitlab-runner 0.40.1 14.10.1 GitLab Runner gitlab/gitlab-runner 0.40.0 14.10.0 GitLab Runner gitlab/gitlab-runner 0.39.1 14.9.2 GitLab Runner gitlab/gitlab-runner 0.39.0 14.9.0 GitLab Runner gitlab/gitlab-runner 0.38.2 14.8.3 GitLab Runner gitlab/gitlab-runner 0.38.1 14.8.2 GitLab Runner gitlab/gitlab-runner 0.38.0 14.8.0 GitLab Runner gitlab/gitlab-runner 0.37.3 14.7.1 GitLab Runner gitlab/gitlab-runner 0.37.2 14.7.0 GitLab Runner gitlab/gitlab-runner 0.37.1 bleeding GitLab Runner gitlab/gitlab-runner 0.37.0 14.7.0 GitLab Runner gitlab/gitlab-runner 0.36.1 14.6.1 GitLab Runner gitlab/gitlab-runner 0.36.0 14.6.0 GitLab Runner gitlab/gitlab-runner 0.35.3 14.5.2 GitLab Runner gitlab/gitlab-runner 0.35.2 14.5.2 GitLab Runner gitlab/gitlab-runner 0.35.0 14.5.0 GitLab Runner gitlab/gitlab-runner 0.34.2 14.4.2 GitLab Runner gitlab/gitlab-runner 0.34.1 14.4.1 GitLab Runner gitlab/gitlab-runner 0.34.0 14.4.0 GitLab Runner gitlab/gitlab-runner 0.33.3 14.3.4 GitLab Runner gitlab/gitlab-runner 0.33.2 14.3.3 GitLab Runner gitlab/gitlab-runner 0.33.1 14.3.2 GitLab Runner gitlab/gitlab-runner 0.33.0 14.3.0 GitLab Runner gitlab/gitlab-runner 0.32.0 14.2.0 GitLab Runner gitlab/gitlab-runner 0.31.0 14.1.0 GitLab Runner gitlab/gitlab-runner 0.30.0 14.0.0 GitLab Runner gitlab/gitlab-runner 0.29.0 13.12.0 GitLab Runner gitlab/gitlab-runner 0.28.0 13.11.0 GitLab Runner gitlab/gitlab-runner 0.27.0 13.10.0 GitLab Runner gitlab/gitlab-runner 0.26.0 13.9.0 GitLab Runner gitlab/gitlab-runner 0.25.0 13.8.0 GitLab Runner gitlab/gitlab-runner 0.24.0 13.7.0 GitLab Runner gitlab/gitlab-runner 0.23.0 13.6.0 GitLab Runner gitlab/gitlab-runner 0.22.0 13.5.0 GitLab Runner gitlab/gitlab-runner 0.21.1 13.4.1 GitLab Runner gitlab/gitlab-runner 0.21.0 13.4.0 GitLab Runner gitlab/gitlab-runner 0.20.2 13.3.2 GitLab Runner gitlab/gitlab-runner 0.20.1 13.3.1 GitLab Runner gitlab/gitlab-runner 0.20.0 13.3.0 GitLab Runner gitlab/gitlab-runner 0.19.4 13.2.4 GitLab Runner gitlab/gitlab-runner 0.19.3 13.2.3 GitLab Runner gitlab/gitlab-runner 0.19.2 13.2.2 GitLab Runner gitlab/gitlab-runner 0.19.1 13.2.1 GitLab Runner gitlab/gitlab-runner 0.19.0 13.2.0 GitLab Runner gitlab/gitlab-runner 0.18.3 13.1.3 GitLab Runner gitlab/gitlab-runner 0.18.2 13.1.2 GitLab Runner gitlab/gitlab-runner 0.18.1 13.1.1 GitLab Runner gitlab/gitlab-runner 0.18.0 13.1.0 GitLab Runner gitlab/gitlab-runner 0.17.2 13.0.2 GitLab Runner gitlab/gitlab-runner 0.17.1 13.0.1 GitLab Runner gitlab/gitlab-runner 0.17.0 13.0.0 GitLab Runner gitlab/gitlab-runner 0.16.2 12.10.3 GitLab Runner gitlab/gitlab-runner 0.16.1 12.10.2 GitLab Runner gitlab/gitlab-runner 0.16.0 12.10.1 GitLab Runner gitlab/gitlab-runner 0.15.1 12.9.1 GitLab Runner gitlab/gitlab-runner 0.15.0 12.9.0 GitLab Runner gitlab/gitlab-runner 0.14.0 12.8.0 GitLab Runner gitlab/gitlab-runner 0.13.1 12.7.1 GitLab Runner gitlab/gitlab-runner 0.13.0 12.7.0 GitLab Runner gitlab/gitlab-runner 0.12.0 12.6.0 GitLab Runner gitlab/gitlab-runner 0.11.0 12.5.0 GitLab Runner gitlab/gitlab-runner 0.10.1 12.4.1 GitLab Runner gitlab/gitlab-runner 0.10.0 12.4.0 GitLab Runner gitlab/gitlab-runner 0.9.1 12.3.0 GitLab Runner gitlab/gitlab-runner 0.9.0 12.3.0 GitLab Runner gitlab/gitlab-runner 0.8.0 12.2.0 GitLab Runner gitlab/gitlab-runner 0.7.0 12.1.0 GitLab Runner gitlab/gitlab-runner 0.6.1 12.0.1 GitLab Runner gitlab/gitlab-runner 0.6.0 12.0.0 GitLab Runner gitlab/gitlab-runner 0.5.2 11.11.2 GitLab Runner gitlab/gitlab-runner 0.5.1 11.11.1 GitLab Runner gitlab/gitlab-runner 0.5.0 11.11.0 GitLab Runner gitlab/gitlab-runner 0.4.1 11.10.1 GitLab Runner gitlab/gitlab-runner 0.4.0 11.10.0 GitLab Runner gitlab/gitlab-runner 0.3.0 11.9.0 GitLab Runner gitlab/gitlab-runner 0.2.0 11.8.0 GitLab Runner gitlab/gitlab-runner 0.1.45 11.7.0 GitLab Runner gitlab/gitlab-runner 0.1.44 GitLab Runner gitlab/gitlab-runner 0.1.43 GitLab Runner gitlab/gitlab-runner 0.1.42 GitLab Runner gitlab/gitlab-runner 0.1.41 GitLab Runner gitlab/gitlab-runner 0.1.40 GitLab Runner gitlab/gitlab-runner 0.1.39 GitLab Runner gitlab/gitlab-runner 0.1.38 GitLab Runner gitlab/gitlab-runner 0.1.37 GitLab Runner gitlab/gitlab-runner 0.1.36 GitLab Runner gitlab/gitlab-runner 0.1.35 GitLab Runner gitlab/gitlab-runner 0.1.34 GitLab Runner gitlab/gitlab-runner 0.1.33 GitLab Runner gitlab/gitlab-runner 0.1.32 GitLab Runner gitlab/gitlab-runner 0.1.31 GitLab Runner gitlab/gitlab-runner 0.1.30 GitLab Runner gitlab/gitlab-runner 0.1.29 GitLab Runner gitlab/gitlab-runner 0.1.28 GitLab Runner gitlab/gitlab-runner 0.1.27 GitLab Runner gitlab/gitlab-runner 0.1.26 GitLab Runner gitlab/gitlab-runner 0.1.25 GitLab Runner gitlab/gitlab-runner 0.1.24 GitLab Runner gitlab/gitlab-runner 0.1.23 GitLab Runner gitlab/gitlab-runner 0.1.22 GitLab Runner gitlab/gitlab-runner 0.1.21 GitLab Runner gitlab/gitlab-runner 0.1.20 GitLab Runner gitlab/gitlab-runner 0.1.19 GitLab Runner gitlab/gitlab-runner 0.1.18 GitLab Runner gitlab/gitlab-runner 0.1.17 GitLab Runner gitlab/gitlab-runner 0.1.16 GitLab Runner gitlab/gitlab-runner 0.1.15 GitLab Runner gitlab/gitlab-runner 0.1.14 GitLab Runner gitlab/gitlab-runner 0.1.13 GitLab Runner 2.2 如果 GitLab 是自建的，要确认网络Runner Pod 必须能访问 GitLab API。 例如你的 GitLab 地址是： gitlabUrl: https://gitlab.example.com 那在 Runner Pod 里应该能访问： curl -I https://gitlab.example.com 如果 GitLab 用的是自签证书，需要额外配置 CA Secret，然后在 values 里加： certsSecretName: gitlab-ca-cert
一、前提条件准备一台 Linux 服务器，先把 Docker Engine 和 Docker Compose 装好二、部署sentrygit clone https://github.com/getsentry/self-hosted.git cd self-hosted git checkout 26.3.0 ./install.sh #./install.sh 需要很久需要拉取很多镜像和初始化准备，提前给docker配置镜像加速 docker compose up --waitvi sentry/config.yml 添加下面内容 把网址改成你自己的 system.url-prefix: 'http://192.168.169.18:9000'#报错 ▶ Ensuring proper PostgreSQL version ... ▶ Ensuring correct permissions on profiles directory ... Container sentry-self-hosted-vroom-run-15b4504ed5f7 Creating Container sentry-self-hosted-vroom-run-15b4504ed5f7 Created ▶ Bootstrapping seaweedfs (profiles)... Container sentry-self-hosted-seaweedfs-1 Running Container sentry-self-hosted-seaweedfs-1 Waiting Container sentry-self-hosted-seaweedfs-1 Healthy OK: 64.1 MiB in 55 packages Bucket 's3://profiles/' created Container sentry-self-hosted-kafka-1 Running Container sentry-self-hosted-vroom-1 Creating Container sentry-self-hosted-vroom-1 Created Container sentry-self-hosted-kafka-1 Waiting Container sentry-self-hosted-kafka-1 Healthy Container sentry-self-hosted-vroom-1 Starting Container sentry-self-hosted-vroom-1 Started Container sentry-self-hosted-vroom-1 Waiting Container sentry-self-hosted-kafka-1 Waiting Container sentry-self-hosted-kafka-1 Healthy Container sentry-self-hosted-vroom-1 Healthy No files found in 'sentry-vroom' volume. Skipping files migration. s3://profiles/: Lifecycle Policy updated Making sure the bucket lifecycle policy is all set up correctly... <?xml version="1.0" ?> <LifecycleConfiguration> <Rule> <Status>Enabled</Status> <Prefix/> <Expiration> <Days>90</Days> </Expiration> </Rule> </LifecycleConfiguration> ▶ Setting up / migrating database ... Container sentry-self-hosted-postgres-1 Running Container sentry-self-hosted-postgres-1 Waiting Container sentry-self-hosted-postgres-1 Healthy Container sentry-self-hosted-postgres-1 Running Container sentry-self-hosted-pgbouncer-1 Creating Container sentry-self-hosted-pgbouncer-1 Created Container sentry-self-hosted-postgres-1 Waiting Container sentry-self-hosted-postgres-1 Healthy Container sentry-self-hosted-pgbouncer-1 Starting Container sentry-self-hosted-pgbouncer-1 Started Container sentry-self-hosted-pgbouncer-1 Waiting Container sentry-self-hosted-postgres-1 Waiting Container sentry-self-hosted-postgres-1 Healthy Container sentry-self-hosted-pgbouncer-1 Healthy Container sentry-self-hosted-memcached-1 Creating Container sentry-self-hosted-smtp-1 Creating Container sentry-self-hosted-seaweedfs-1 Running Container sentry-self-hosted-symbolicator-1 Creating Container sentry-self-hosted-redis-1 Running Container sentry-self-hosted-clickhouse-1 Running Container sentry-self-hosted-kafka-1 Running Container sentry-self-hosted-postgres-1 Running Container sentry-self-hosted-pgbouncer-1 Running Container sentry-self-hosted-snuba-api-1 Creating Container sentry-self-hosted-smtp-1 Created Container sentry-self-hosted-memcached-1 Created Container sentry-self-hosted-snuba-api-1 Created Container sentry-self-hosted-symbolicator-1 Created Container sentry-self-hosted-symbolicator-1 Starting Container sentry-self-hosted-memcached-1 Starting Container sentry-self-hosted-clickhouse-1 Waiting Container sentry-self-hosted-kafka-1 Waiting Container sentry-self-hosted-redis-1 Waiting Container sentry-self-hosted-smtp-1 Starting Container sentry-self-hosted-postgres-1 Waiting Container sentry-self-hosted-clickhouse-1 Healthy Container sentry-self-hosted-postgres-1 Healthy Container sentry-self-hosted-redis-1 Healthy Container sentry-self-hosted-kafka-1 Healthy Container sentry-self-hosted-snuba-api-1 Starting Container sentry-self-hosted-symbolicator-1 Started Container sentry-self-hosted-smtp-1 Started Container sentry-self-hosted-memcached-1 Started Container sentry-self-hosted-snuba-api-1 Started Container sentry-self-hosted-redis-1 Waiting Container sentry-self-hosted-kafka-1 Waiting Container sentry-self-hosted-pgbouncer-1 Waiting Container sentry-self-hosted-pgbouncer-1 Healthy Container sentry-self-hosted-redis-1 Healthy Container sentry-self-hosted-kafka-1 Healthy Container sentry-self-hosted-web-run-fd8a6ea88424 Creating Container sentry-self-hosted-web-run-fd8a6ea88424 Created Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Error opening GeoIP database: /geoip/GeoLite2-City.mmdb Error opening GeoIP database in Rust: /geoip/GeoLite2-City.mmdb Traceback (most recent call last): File "/.venv/bin/sentry", line 4, in <module> raise SystemExit(main()) ~~~~^^ File "/usr/src/sentry/src/sentry/runner/main.py", line 143, in main func(**kwargs) ~~~~^^^^^^^^^^ File "/.venv/lib/python3.13/site-packages/click/core.py", line 1442, in __call__ return self.main(*args, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/.venv/lib/python3.13/site-packages/click/core.py", line 1363, in main rv = self.invoke(ctx) File "/.venv/lib/python3.13/site-packages/click/core.py", line 1830, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/.venv/lib/python3.13/site-packages/click/core.py", line 1226, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/.venv/lib/python3.13/site-packages/click/core.py", line 794, in invoke return callback(*args, **kwargs) File "/.venv/lib/python3.13/site-packages/click/decorators.py", line 34, in new_func return f(get_current_context(), *args, **kwargs) File "/usr/src/sentry/src/sentry/runner/decorators.py", line 33, in inner configure() ~~~~~~~~~^^ File "/usr/src/sentry/src/sentry/runner/__init__.py", line 33, in configure _configure(ctx, py, yaml, skip_service_validation) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/sentry/src/sentry/runner/settings.py", line 118, in configure initialize_app( ~~~~~~~~~~~~~~^ {"config_path": py, "settings": settings, "options": yaml}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ skip_service_validation=skip_service_validation, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/usr/src/sentry/src/sentry/runner/initializer.py", line 366, in initialize_app setup_services(validate=not skip_service_validation) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/sentry/src/sentry/runner/initializer.py", line 418, in setup_services service.validate() ~~~~~~~~~~~~~~~~^^ File "/usr/src/sentry/src/sentry/utils/lazy_service_wrapper.py", line 118, in <lambda> context[key] = (lambda f: lambda *a, **k: getattr(self, f)(*a, **k))(key) ~~~~~~~^^^^^^^^^ File "/usr/src/sentry/src/sentry/utils/lazy_service_wrapper.py", line 88, in __getattr__ self._setup() ~~~~~~~~~~~^^ File "/usr/src/sentry/src/sentry/utils/lazy_service_wrapper.py", line 72, in _setup backend = import_string(self._backend) File "/usr/src/sentry/src/sentry/utils/imports.py", line 29, in import_string result = _cache[path] ~~~~~~^^^^^^ File "/usr/src/sentry/src/sentry/utils/imports.py", line 11, in __missing__ module = __import__(module_name, {}, {}, [class_name]) ModuleNotFoundError: No module named 'sentry_nodestore_s3' Error in install/set-up-and-migrate-database.sh:23. '$dcr web upgrade --create-kafka-topics' exited with status 1 -> ./install.sh:main:44 --> install/set-up-and-migrate-database.sh:source:23 install/error-handling.sh: line 81: /usr/bin/docker: Argument list too long root@ubuntu:/woke/self-hosted# vi /woke/self-hosted/sentry/sentry.conf.py 把下面内容注释或者删除 SENTRY_NODESTORE = "sentry_nodestore_s3.S3PassthroughDjangoNodeStorage" SENTRY_NODESTORE_OPTIONS = { ... }root@ubuntu:/woke/self-hosted# docker compose up --wait [+] up 64/67 [+] up 68/68ntry-self-hosted_sentry-taskbroker Created [+] up 68/68ntry-self-hosted_sentry-taskbroker Created [+] up 73/73ntry-self-hosted_sentry-taskbroker Created ✔ Volume sentry-self-hosted_sentry-taskbroker Created ✔ Volume sentry-self-hosted_sentry-nginx-www Created ✔ Volume sentry-self-hosted_sentry-nginx-cache Created ✔ Container sentry-self-hosted-symbolicator-cleanup-1 Healthy ✔ Container sentry-self-hosted-vroom-cleanup-1 Healthy ✔ Container sentry-self-hosted-taskbroker-1 Healthy ✔ Container sentry-self-hosted-snuba-profiling-profiles-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-generic-metrics-distributions-1 Healthy ✔ Container sentry-self-hosted-snuba-eap-items-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-profiling-profile-chunks-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-generic-metrics-gauges-1 Healthy ✔ Container sentry-self-hosted-snuba-generic-metrics-gauges-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-events-1 Healthy ✔ Container sentry-self-hosted-snuba-generic-metrics-counters-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-issue-occurrence-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-replays-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-errors-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-eap-items-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-transactions-1 Healthy ✔ Container sentry-self-hosted-snuba-generic-metrics-sets-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-transactions-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-profiling-functions-consumer-1 Healthy ✔ Container sentry-self-hosted-taskworker-1 Healthy ✔ Container sentry-self-hosted-snuba-subscription-consumer-generic-metrics-counters-1 Healthy ✔ Container sentry-self-hosted-snuba-group-attributes-consumer-1 Healthy ✔ Container sentry-self-hosted-vroom-1 Healthy ✔ Container sentry-self-hosted-snuba-outcomes-consumer-1 Healthy ✔ Container sentry-self-hosted-snuba-metrics-consumer-1 Healthy ✔ Container sentry-self-hosted-ingest-occurrences-1 Healthy ✔ Container sentry-self-hosted-process-segments-1 Healthy ✔ Container sentry-self-hosted-subscription-consumer-events-1 Healthy ✔ Container sentry-self-hosted-snuba-replacer-1 Healthy ✔ Container sentry-self-hosted-subscription-consumer-eap-items-1 Healthy ✔ Container sentry-self-hosted-post-process-forwarder-issue-platform-1 Healthy ✔ Container sentry-self-hosted-snuba-outcomes-billing-consumer-1 Healthy ... 38 more 三、测试pip install sentry-sdkimport os import sentry_sdk print("当前 Python:", os.sys.executable) print("当前读取到的 SENTRY_DSN:", os.getenv("SENTRY_DSN")) dsn = os.getenv("SENTRY_DSN") if not dsn: raise RuntimeError("请先设置环境变量 SENTRY_DSN") sentry_sdk.init( dsn=dsn, debug=True, environment="dev", release="python-test@1.0.0", ) print("Sentry 已初始化，马上制造一个测试异常...") division_by_zero = 1 / 0(.venv) PS C:\Users\xing\PycharmProjects\PythonProject2\.venv> python .\sentry_test.py 当前 Python: C:\Users\xing\PycharmProjects\PythonProject2\.venv\Scripts\python.exe 当前读取到的 SENTRY_DSN: http://fbd6b96105352bfd6a0142dd7f118b01@192.168.169.18:9000/1 [sentry] DEBUG: Setting up integrations (with default = True) [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.aiohttp.AioHttpIntegration: AIOHTTP not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.anthropic.AnthropicIntegration: Anthropic not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.ariadne.AriadneIntegration: ariadne is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.arq.ArqIntegration: Arq is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.asyncpg.AsyncPGIntegration: asyncpg not installed. [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.boto3.Boto3Integration: botocore is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.bottle.BottleIntegration: Bottle not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.celery.CeleryIntegration: Celery not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.chalice.ChaliceIntegration: Chalice is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.clickhouse_driver.ClickhouseDriverIntegration: clickhouse-driver not installed. [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.cohere.CohereIntegration: Cohere not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.django.DjangoIntegration: Django not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.falcon.FalconIntegration: Falcon not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.fastapi.FastApiIntegration: Starlette is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.flask.FlaskIntegration: Flask is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.gql.GQLIntegration: gql is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.google_genai.GoogleGenAIIntegration: google-genai not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.graphene.GrapheneIntegration: graphene is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.httpx.HttpxIntegration: httpx is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.huey.HueyIntegration: Huey is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.huggingface_hub.HuggingfaceHubIntegration: Huggingface not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.langchain.LangchainIntegration: langchain not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.langgraph.LanggraphIntegration: langgraph not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.litestar.LitestarIntegration: Litestar is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.loguru.LoguruIntegration: LOGURU is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.mcp.MCPIntegration: MCP SDK not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.openai.OpenAIIntegration: OpenAI not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.openai_agents.OpenAIAgentsIntegration: OpenAI Agents not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.pydantic_ai.PydanticAIIntegration: pydantic-ai not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.pymongo.PyMongoIntegration: Pymongo not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.pyramid.PyramidIntegration: Pyramid not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.quart.QuartIntegration: Quart is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.rq.RqIntegration: RQ not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.sanic.SanicIntegration: Sanic not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.sqlalchemy.SqlalchemyIntegration: SQLAlchemy not installed. [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.starlette.StarletteIntegration: Starlette is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.starlite.StarliteIntegration: Starlite is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.strawberry.StrawberryIntegration: strawberry-graphql is not installed [sentry] DEBUG: Did not import default integration sentry_sdk.integrations.tornado.TornadoIntegration: Tornado not installed [sentry] DEBUG: Setting up previously not enabled integration argv [sentry] DEBUG: Setting up previously not enabled integration atexit [sentry] DEBUG: Setting up previously not enabled integration dedupe [sentry] DEBUG: Setting up previously not enabled integration excepthook [sentry] DEBUG: Setting up previously not enabled integration logging [sentry] DEBUG: Setting up previously not enabled integration modules [sentry] DEBUG: Setting up previously not enabled integration stdlib [sentry] DEBUG: Setting up previously not enabled integration threading [sentry] DEBUG: Setting up previously not enabled integration redis [sentry] DEBUG: Did not enable default integration redis: Redis client not installed [sentry] DEBUG: Enabling integration argv [sentry] DEBUG: Enabling integration atexit [sentry] DEBUG: Enabling integration dedupe [sentry] DEBUG: Enabling integration excepthook [sentry] DEBUG: Enabling integration logging [sentry] DEBUG: Enabling integration modules [sentry] DEBUG: Enabling integration stdlib [sentry] DEBUG: Enabling integration threading [sentry] DEBUG: Setting SDK name to 'sentry.python' [sentry] DEBUG: [Profiling] Setting up continuous profiler in thread mode Sentry 已初始化，马上制造一个测试异常... Traceback (most recent call last): File "C:\Users\xing\PycharmProjects\PythonProject2\.venv\sentry_test.py", line 20, in <module> [sentry] DEBUG: Sending envelope [envelope with 1 items (error)] project:1 host:192.168.169.18 division_by_zero = 1 / 0 ZeroDivisionError: division by zero [sentry] DEBUG: atexit: got shutdown signal [sentry] DEBUG: atexit: shutting down client [sentry] DEBUG: Flushing HTTP transport [sentry] DEBUG: background worker got flush request [sentry] DEBUG: background worker flushed [sentry] DEBUG: Killing HTTP transport [sentry] DEBUG: background worker got kill request (.venv) PS C:\Users\xing\PycharmProjects\PythonProject2\.venv>
一、环境情况我现在这环境他有两个grafana，是因为自建机房服务器都是用的机械硬盘读写很慢。所以他是一个grafana看日志一个granfana看图。 这个环境其实已经有 Loki 了，访问的不是那套带 Loki 的 Grafana，或者说当前这个 Grafana 没把 Loki 数据源加进去。在看图这个granfana中加上Loki的数据即可。[root@k8s-node-35 ~]# kubectl get pod -n logs -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES loki-stack-0 1/1 Running 0 89d 172.20.185.120 192.168.169.36 <none> <none> loki-stack-grafana-6467d7c65b-27f9k 2/2 Running 3 129d 172.20.209.169 192.168.169.34 <none> <none> loki-stack-grafana-6467d7c65b-87p7g 2/2 Running 1 90d 172.20.166.108 192.168.169.38 <none> <none> loki-stack-promtail-2dsqv 1/1 Running 0 362d 172.20.166.98 192.168.169.38 <none> <none> loki-stack-promtail-2zdcz 1/1 Running 0 362d 172.20.209.147 192.168.169.34 <none> <none> loki-stack-promtail-4lpvj 1/1 Running 8 (40d ago) 362d 172.20.68.202 192.168.169.16 <none> <none> loki-stack-promtail-595dl 1/1 Running 0 362d 172.20.185.77 192.168.169.36 <none> <none> loki-stack-promtail-5dv2m 1/1 Running 0 362d 172.20.133.244 192.168.169.37 <none> <none> loki-stack-promtail-682l6 1/1 Running 0 362d 172.20.183.205 192.168.169.32 <none> <none> loki-stack-promtail-776jg 1/1 Running 0 362d 172.20.254.34 192.168.169.27 <none> <none> loki-stack-promtail-7pqgv 1/1 Running 21 (20d ago) 362d 172.20.71.125 192.168.169.28 <none> <none> loki-stack-promtail-8656v 1/1 Running 0 362d 172.20.246.213 192.168.169.33 <none> <none> loki-stack-promtail-nhczz 1/1 Running 8 (40d ago) 362d 172.20.161.235 192.168.169.26 <none> <none> loki-stack-promtail-nxs9p 1/1 Running 0 35s 172.20.104.100 192.168.169.35 <none> <none> loki-stack-promtail-rjxnc 1/1 Running 0 362d 172.20.215.145 192.168.169.31 <none> <none> loki-stack-promtail-rmd7s 1/1 Running 0 362d 172.20.170.155 192.168.169.14 <none> <none> loki-stack-promtail-tdqlp 1/1 Running 0 362d 172.20.13.175 192.168.169.30 <none> <none> loki-stack-promtail-wvmm5 1/1 Running 8 (40d ago) 362d 172.20.169.88 192.168.169.25 <none> <none> loki-stack-promtail-wzbv8 1/1 Running 8 (40d ago) 362d 172.20.95.247 192.168.169.29 <none> <none> [root@k8s-node-35 ~]# kubectl get -n monitoring pod NAME READY STATUS RESTARTS AGE dingtalk-hook-869f4cd9d8-w2qbc 1/1 Running 0 286d grafana-6df5c7857b-qhqjb 1/1 Running 1 88d prometheus-alert-778f6866f5-pj76x 1/1 Running 0 92d prometheus-alertmanager-0 1/1 Running 0 89d prometheus-blackbox-exporter-6d9c9b4d8-rbf8n 1/1 Running 0 286d prometheus-kube-state-metrics-777f85f5f6-pzn6z 1/1 Running 0 90d prometheus-server-6cdb87f85f-dsmz8 2/2 Running 8 (30d ago) 30d You have mail in /var/spool/mail/root [root@k8s-node-35 ~]# kubectl get pod -n logs -o wide -w NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES loki-stack-0 1/1 Running 0 89d 172.20.185.120 192.168.169.36 <none> <none> loki-stack-grafana-6467d7c65b-27f9k 2/2 Running 3 129d 172.20.209.169 192.168.169.34 <none> <none> loki-stack-grafana-6467d7c65b-87p7g 2/2 Running 1 90d 172.20.166.108 192.168.169.38 <none> <none> loki-stack-promtail-2dsqv 1/1 Running 0 362d 172.20.166.98 192.168.169.38 <none> <none> loki-stack-promtail-2zdcz 1/1 Running 0 362d 172.20.209.147 192.168.169.34 <none> <none> loki-stack-promtail-4lpvj 1/1 Running 8 (40d ago) 362d 172.20.68.202 192.168.169.16 <none> <none> loki-stack-promtail-595dl 1/1 Running 0 362d 172.20.185.77 192.168.169.36 <none> <none> loki-stack-promtail-5dv2m 1/1 Running 0 362d 172.20.133.244 192.168.169.37 <none> <none> loki-stack-promtail-682l6 1/1 Running 0 362d 172.20.183.205 192.168.169.32 <none> <none> loki-stack-promtail-776jg 1/1 Running 0 362d 172.20.254.34 192.168.169.27 <none> <none> loki-stack-promtail-7pqgv 1/1 Running 21 (20d ago) 362d 172.20.71.125 192.168.169.28 <none> <none> loki-stack-promtail-8656v 1/1 Running 0 362d 172.20.246.213 192.168.169.33 <none> <none> loki-stack-promtail-nhczz 1/1 Running 8 (40d ago) 362d 172.20.161.235 192.168.169.26 <none> <none> loki-stack-promtail-nxs9p 1/1 Running 0 96s 172.20.104.100 192.168.169.35 <none> <none> loki-stack-promtail-rjxnc 1/1 Running 0 362d 172.20.215.145 192.168.169.31 <none> <none> loki-stack-promtail-rmd7s 1/1 Running 0 362d 172.20.170.155 192.168.169.14 <none> <none> loki-stack-promtail-tdqlp 1/1 Running 0 362d 172.20.13.175 192.168.169.30 <none> <none> loki-stack-promtail-wvmm5 1/1 Running 8 (40d ago) 362d 172.20.169.88 192.168.169.25 <none> <none> loki-stack-promtail-wzbv8 1/1 Running 8 (40d ago) 362d 172.20.95.247 192.168.169.29 <none> <none> ^C[root@k8s-node-35 ~]# kubectl get -n monitoring all NAME READY STATUS RESTARTS AGE pod/dingtalk-hook-869f4cd9d8-w2qbc 1/1 Running 0 286d pod/grafana-6df5c7857b-qhqjb 1/1 Running 1 88d pod/prometheus-alert-778f6866f5-pj76x 1/1 Running 0 92d pod/prometheus-alertmanager-0 1/1 Running 0 89d pod/prometheus-blackbox-exporter-6d9c9b4d8-rbf8n 1/1 Running 0 286d pod/prometheus-kube-state-metrics-777f85f5f6-pzn6z 1/1 Running 0 90d pod/prometheus-server-6cdb87f85f-dsmz8 2/2 Running 8 (30d ago) 30d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/dingtalk-hook ClusterIP 10.68.209.173 <none> 5000/TCP 2y296d service/grafana ClusterIP 10.68.61.176 <none> 80/TCP 2y296d service/prometheus-alert ClusterIP 10.68.168.221 <none> 8080/TCP 136d service/prometheus-alertmanager ClusterIP 10.68.226.233 <none> 9093/TCP 2y296d service/prometheus-alertmanager-headless ClusterIP None <none> 9093/TCP 2y296d service/prometheus-blackbox-exporter ClusterIP 10.68.89.122 <none> 9115/TCP 2y295d service/prometheus-kube-state-metrics ClusterIP 10.68.0.15 <none> 8080/TCP 2y296d service/prometheus-prometheus-node-exporter ClusterIP 10.68.106.135 <none> 9100/TCP 2y296d service/prometheus-server ClusterIP 10.68.233.242 <none> 80/TCP 2y296d NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/prometheus-prometheus-node-exporter 0 0 0 0 0 never-schedule=true 2y185d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/dingtalk-hook 1/1 1 1 2y296d deployment.apps/grafana 1/1 1 1 2y296d deployment.apps/prometheus-alert 1/1 1 1 136d deployment.apps/prometheus-blackbox-exporter 1/1 1 1 2y295d deployment.apps/prometheus-kube-state-metrics 1/1 1 1 2y296d deployment.apps/prometheus-server 1/1 1 1 2y296d NAME DESIRED CURRENT READY AGE replicaset.apps/dingtalk-hook-57f9854468 0 0 0 2y296d replicaset.apps/dingtalk-hook-869f4cd9d8 1 1 1 636d replicaset.apps/dingtalk-hook-fc597d99d 0 0 0 636d replicaset.apps/grafana-5b94cbf46f 0 0 0 2y296d replicaset.apps/grafana-6df5c7857b 1 1 1 636d replicaset.apps/prometheus-alert-58c5d4bc69 0 0 0 136d replicaset.apps/prometheus-alert-778f6866f5 1 1 1 136d replicaset.apps/prometheus-blackbox-exporter-6d9c9b4d8 1 1 1 2y282d replicaset.apps/prometheus-blackbox-exporter-865546f7c6 0 0 0 2y295d replicaset.apps/prometheus-kube-state-metrics-6dc44cc4d9 0 0 0 2y296d replicaset.apps/prometheus-kube-state-metrics-777f85f5f6 1 1 1 2y296d replicaset.apps/prometheus-server-54d74bcf44 0 0 0 129d replicaset.apps/prometheus-server-55f646d6dc 0 0 0 129d replicaset.apps/prometheus-server-6bf7d76745 0 0 0 2y235d replicaset.apps/prometheus-server-6cdb87f85f 1 1 1 47d replicaset.apps/prometheus-server-758c489655 0 0 0 129d replicaset.apps/prometheus-server-7667445855 0 0 0 129d replicaset.apps/prometheus-server-7749c4c4c4 0 0 0 2y202d replicaset.apps/prometheus-server-866fdcddf5 0 0 0 636d replicaset.apps/prometheus-server-f6885b6fc 0 0 0 129d replicaset.apps/prometheus-server-fb6797484 0 0 0 636d replicaset.apps/prometheus-server-fc98c9bc6 0 0 0 2y234d NAME READY AGE statefulset.apps/prometheus-alertmanager 1/1 2y296d [root@k8s-node-35 ~]# [root@k8s-node-35 ~]# kubectl get ing -n monitoring NAME CLASS HOSTS ADDRESS PORTS AGE grafana nginx grafana.telewave.tech 192.168.169.27,192.168.169.32,192.168.169.33,192.168.169.37,192.168.169.38 80 2y296d prometheus-server nginx prometheus-dev.telewave.tech 192.168.169.27,192.168.169.32,192.168.169.33,192.168.169.37,192.168.169.38 80 2y296d [root@k8s-node-35 ~]# [root@k8s-node-35 ~]# kubectl get svc -n logs NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE loki-stack ClusterIP 10.68.107.19 <none> 3100/TCP 3y92d loki-stack-grafana ClusterIP 10.68.203.99 <none> 80/TCP 3y92d loki-stack-headless ClusterIP None <none> 3100/TCP 3y92d loki-stack-memberlist ClusterIP None <none> 7946/TCP 3y92d#地址 http://loki-stack.logs.svc.cluster.local:3100二、配置OpenTelemetry + Tempo 2.1 部署Tempohelm repo add grafana https://grafana.github.io/helm-charts helm repo update kubectl create namespace tracing helm upgrade --install tempo grafana/tempo -n tracingkubectl get svc -n tracing kubectl get pod -n tracingTempo 文档里的典型端口是： 查询 HTTP：3200 OTLP/gRPC：4317 OTLP/HTTP：4318helm upgrade --install tempo grafana/tempo \ -n tracing \ --reuse-values \ --set tempo.repository=harbor.telewave.tech/monitoring/grafana/tempo \ --set tempo.tag=2.9.02.2 部署 OpenTelemetry Collectorhelm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts helm repo update kubectl create namespace observability# otel-values.yaml mode: deployment image: repository: otel/opentelemetry-collector-k8s config: receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 processors: memory_limiter: check_interval: 5s limit_percentage: 80 spike_limit_percentage: 25 batch: {} exporters: otlp/tempo: endpoint: tempo.tracing.svc.cluster.local:4317 tls: insecure: true service: pipelines: traces: receivers: [otlp] processors: [memory_limiter, batch] exporters: [otlp/tempo]helm upgrade --install otel-collector \ open-telemetry/opentelemetry-collector \ -n observability \ -f otel-values.yaml[root@k8s-node-35 ~]# kubectl get pod -n observability -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES otel-collector-opentelemetry-collector-7b45dbb5c5-hmcmj 1/1 Running 0 3h5m 172.20.161.252 192.168.169.26 <none> <none> You have new mail in /var/spool/mail/root [root@k8s-node-35 ~]# kubectl get svc -n observability NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE otel-collector-opentelemetry-collector ClusterIP 10.68.248.222 <none> 6831/UDP,14250/TCP,14268/TCP,4317/TCP,4318/TCP,9411/TCP 5h12m [root@k8s-node-35 ~]# 三、pod加入可观行测因为是测试没有加入到jenkins流水线镜像里面 单纯测试[root@k8s-master-14 ~]# kubectl get -n efp-service-test pod NAME READY STATUS RESTARTS AGE efp-alarm-transfer-client-578d5487b-4n787 1/1 Running 0 287d efp-app-web-568fd9879f-cvxph 1/1 Running 0 287d efp-cti-client-5cd4fc7b79-lvkvf 1/1 Running 13 (286d ago) 286d efp-enterprise-web-67c885d5dc-rxcsr 1/1 Running 0 34d efp-event-bridge-client-69c7999bdb-42bps 1/1 Running 11 (132d ago) 133d efp-event-client-c6fb7977-bf8sz 1/1 Running 0 144d efp-external-gateway-client-7c9848664f-wtxrv 1/1 Running 1 (4d11h ago) 4d11h efp-fas-client-5bcd98b498-6gwqd 1/1 Running 0 306d efp-file-client-6cf59cd4c7-nj2xm 1/1 Running 94 (90d ago) 90d efp-frm-web-696f4987fd-6k7gt 1/1 Running 0 4d11h efp-handheld-web-64774f78-9hpcl 1/1 Running 0 286d efp-knowledge-client-5d57f9696d-z2cfv 1/1 Running 12 (287d ago) 287d efp-message-client-78594b6546-csxjw 1/1 Running 0 34d efp-nocoding-web-65846f8b87-kkf6z 1/1 Running 0 136d efp-system-client-5b5d44c55d-pz5r6 1/1 Running 0 30d efp-tenant-web-554df94f8d-xb6n2 1/1 Running 0 129d efp-training-client-6f88764b78-97z8q 1/1 Running 61 (136d ago) 136d efp-uac-client-54b46df589-fpbmt 1/1 Running 0 132d efp-workspace-client-797878974d-dbmcz 1/1 Running 0 4d11h efp-xxljob-web-service-d7676b9bb-7b7tj 1/1 Running 0 144d fireproof-linkage-web-579767c6d5-l2tgx 1/1 Running 0 90d ifpco-enterprise-web-65598d9868-b44dq 1/1 Running 0 90d ifpco-system-client-55d57856d-2lwpp 1/1 Running 60 (136d ago) 136d ifpco-xxj-web-75696cd97-qd8rh 1/1 Running 0 90d ipcc-cting-web-954569f84-cphls 1/1 Running 0 92d keycloak2-0 1/1 Running 0 90d#下载地址 需要加载进pod里面 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar我选择固定要一个节点上，然后挂载。apiVersion: apps/v1 kind: Deployment metadata: annotations: meta.helm.sh/release-name: efp-message-client meta.helm.sh/release-namespace: efp-service-test labels: app: efp-message-client app.kubernetes.io/managed-by: Helm chart: efp-message-client-0.0.1 version: run name: efp-message-client namespace: efp-service-test spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 5 selector: matchLabels: app: efp-message-client version: run strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubesphere.io/restartedAt: '2025-11-05T02:53:55.251Z' prometheus.io/path: /metrics/prometheus prometheus.io/port: '80' prometheus.io/scrape: 'true' labels: app: efp-message-client version: run spec: nodeName: 192.168.169.26 volumes: - name: otel-agent hostPath: path: /root/opentelemetry-javaagent.jar type: File containers: - name: efp-message-client command: - java args: - '-jar' - /opt/app.jar - '--spring.profiles.active=k8s' - $(JAVA_OPTS) env: - name: SPRING_PROFIES_ACTIVE value: k8s - name: JAVA_OPTS value: '-Xms2G -Xmx2G -Xmn1512m -Xss512k' - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: JAVA_TOOL_OPTIONS value: "-javaagent:/otel/opentelemetry-javaagent.jar" - name: OTEL_SERVICE_NAME value: "efp-message-client" - name: OTEL_TRACES_EXPORTER value: "otlp" - name: OTEL_METRICS_EXPORTER value: "none" - name: OTEL_LOGS_EXPORTER value: "none" - name: OTEL_EXPORTER_OTLP_PROTOCOL value: "http/protobuf" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: "http://otel-collector.observability.svc.cluster.local:4318" - name: OTEL_JAVAAGENT_DEBUG value: "true" envFrom: - configMapRef: name: configmap-efp-message-client-env image: harbor.telewave.tech/efp-service-test/efp-message-client:20251024154807-test-22 imagePullPolicy: IfNotPresent volumeMounts: - name: otel-agent mountPath: /otel/opentelemetry-javaagent.jar readOnly: true livenessProbe: failureThreshold: 10 httpGet: path: / port: 80 scheme: HTTP initialDelaySeconds: 200 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 ports: - containerPort: 80 name: server protocol: TCP readinessProbe: failureThreshold: 10 httpGet: path: / port: 80 scheme: HTTP initialDelaySeconds: 50 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 resources: requests: cpu: 200m memory: 1Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst imagePullSecrets: - name: harbor-registry-secret restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: efp-message-client serviceAccountName: efp-message-client terminationGracePeriodSeconds: 20 --- apiVersion: v1 kind: Service metadata: annotations: meta.helm.sh/release-name: efp-message-client meta.helm.sh/release-namespace: efp-service-test labels: app: efp-message-client app.kubernetes.io/managed-by: Helm chart: efp-message-client-0.0.1 name: efp-message-client namespace: efp-service-test spec: clusterIP: 10.68.247.210 clusterIPs: - 10.68.247.210 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: http nodePort: 31003 port: 80 protocol: TCP targetPort: 80 selector: app: efp-message-client sessionAffinity: None type: NodePort[root@k8s-master-14 ~]# kubectl get pod -n efp-service-test -l app=efp-message-client -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES efp-message-client-78594b6546-csxjw 1/1 Running 0 34d 172.20.161.206 192.168.169.26 <none> <none> efp-message-client-86cc56867d-q4thn 0/1 Running 0 19s 172.20.161.215 192.168.169.26 <none> <none> [root@k8s-master-14 ~]# kubectl get pod -n efp-service-test -l app=efp-message-client -o wide -w NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES efp-message-client-78594b6546-csxjw 1/1 Running 0 34d 172.20.161.206 192.168.169.26 <none> <none> efp-message-client-86cc56867d-q4thn 0/1 Running 0 25s 172.20.161.215 192.168.169.26 <none> <none> efp-message-client-86cc56867d-q4thn 1/1 Running 0 61s 172.20.161.215 192.168.169.26 <none> <none> efp-message-client-78594b6546-csxjw 1/1 Terminating 0 34d 172.20.161.206 192.168.169.26 <none> <none> efp-message-client-78594b6546-csxjw 0/1 Terminating 0 34d 172.20.161.206 192.168.169.26 <none> <none> efp-message-client-78594b6546-csxjw 0/1 Terminating 0 34d 172.20.161.206 192.168.169.26 <none> <none> efp-message-client-78594b6546-csxjw 0/1 Terminating 0 34d 172.20.161.206 192.168.169.26 <none> <none> ^CYou have mail in /var/spool/mail/root [root@k8s-master-14 ~]# ^C [root@k8s-master-14 ~]# kubectl get pod -n efp-service-test -l app=efp-message-client -o wide -w NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES efp-message-client-86cc56867d-q4thn 1/1 Running 0 14m 172.20.161.215 192.168.169.26 <none> <none> ^C[root@k8s-master-14 ~]# ^C [root@k8s-master-14 ~]# kubectl describe pod -n efp-service-test -l app=efp-message-client Name: efp-message-client-86cc56867d-q4thn Namespace: efp-service-test Priority: 0 Node: 192.168.169.26/192.168.169.26 Start Time: Tue, 17 Mar 2026 16:59:36 +0800 Labels: app=efp-message-client pod-template-hash=86cc56867d version=run Annotations: kubesphere.io/restartedAt: 2025-11-05T02:53:55.251Z prometheus.io/path: /metrics/prometheus prometheus.io/port: 80 prometheus.io/scrape: true Status: Running IP: 172.20.161.215 IPs: IP: 172.20.161.215 Controlled By: ReplicaSet/efp-message-client-86cc56867d Containers: efp-message-client: Container ID: docker://92d27de3a4f43c54453dd9f29212ea308722359da7583405a23b2093600bcb78 Image: harbor.telewave.tech/efp-service-test/efp-message-client:20251024154807-test-22 Image ID: docker-pullable://harbor.telewave.tech/efp-service-test/efp-message-client@sha256:0d7aa4f85045b58b67da623cc24ae2b3c7c0be7fca1a47ac36acc9f37c6f28b9 Port: 80/TCP Host Port: 0/TCP Command: java Args: -jar /opt/app.jar --spring.profiles.active=k8s $(JAVA_OPTS) State: Running Started: Tue, 17 Mar 2026 16:59:37 +0800 Ready: True Restart Count: 0 Requests: cpu: 200m memory: 1Gi Liveness: http-get http://:80/ delay=200s timeout=5s period=10s #success=1 #failure=10 Readiness: http-get http://:80/ delay=50s timeout=5s period=10s #success=1 #failure=10 Environment Variables from: configmap-efp-message-client-env ConfigMap Optional: false Environment: SPRING_PROFIES_ACTIVE: k8s JAVA_OPTS: -Xms2G -Xmx2G -Xmn1512m -Xss512k POD_NAMESPACE: efp-service-test (v1:metadata.namespace) JAVA_TOOL_OPTIONS: -javaagent:/otel/opentelemetry-javaagent.jar OTEL_SERVICE_NAME: efp-message-client OTEL_TRACES_EXPORTER: otlp OTEL_METRICS_EXPORTER: none OTEL_LOGS_EXPORTER: none OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector.observability.svc.cluster.local:4318 OTEL_JAVAAGENT_DEBUG: true Mounts: /otel/opentelemetry-javaagent.jar from otel-agent (ro) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mz6sq (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: otel-agent: Type: HostPath (bare host directory volume) Path: /root/opentelemetry-javaagent.jar HostPathType: File kube-api-access-mz6sq: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: Burstable Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Pulled 15m kubelet Container image "harbor.telewave.tech/efp-service-test/efp-message-client:20251024154807-test-22" already present on machine Normal Created 15m kubelet Created container efp-message-client Normal Started 15m kubelet Started container efp-message-client [root@k8s-master-14 ~]# [root@k8s-master-14 ~]# [root@k8s-master-14 ~]# kubectl logs -n efp-service-test deploy/efp-message-client --tail=200 at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:85) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:74) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:226) at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:574) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [otel.javaagent 2026-03-17 17:14:47:143 +0800] [BatchSpanProcessor_WorkerThread-1] DEBUG io.opentelemetry.sdk.trace.export.BatchSpanProcessor - Exporter failed [otel.javaagent 2026-03-17 17:14:49:592 +0800] [redisson-netty-2-26] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 46af0f1ba654c16fc0fd52dc5b9c32b0 3cce2c99c1955fde CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-9, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=37}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:51:356 +0800] [http-nio-80-exec-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'OnCommittedResponseWrapper.sendError' : 1270fa2a3df14fe897f25f19be07fa59 66ded01d450914f9 INTERNAL [tracer: io.opentelemetry.servlet-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-1, code.function=sendError, code.namespace=org.springframework.security.web.util.OnCommittedResponseWrapper, thread.id=232}, capacity=128, totalAddedValues=4} [otel.javaagent 2026-03-17 17:14:51:359 +0800] [http-nio-80-exec-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /error' : 1270fa2a3df14fe897f25f19be07fa59 3ef1cd2a59102cde SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-1, server.port=80, network.protocol.version=1.1, user_agent.original=Prometheus/2.44.0, http.response.status_code=401, thread.id=232, http.request.method=GET, network.peer.port=50478, http.route=/error, server.address=172.20.161.215, client.address=172.20.161.251, network.peer.address=172.20.161.251, url.path=/metrics/prometheus}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:14:54:597 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 335f5fa96c540a03bf3be7f6303dd265 9c029c117177f749 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-10, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=38}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:54:880 +0800] [redisson-netty-2-178] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : a45d076ac7f917cef89a1a22e14522dd 409180087bbaaa53 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-4, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=235}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:54:882 +0800] [redisson-netty-2-93] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : befd439e4291801962be29b30ce4db41 2d671b37217527b4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-4, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=235}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:54:883 +0800] [redisson-netty-2-176] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : 3bddf66cd43b649a07deb5ea077b17b9 d17089c0072e60a7 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-4, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=235}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:748 +0800] [redisson-netty-2-12] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f800a78e31d31e50e4c8228ed3b392a4 1f7fd7f5b53bf076 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:748 +0800] [redisson-netty-2-26] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 740d5945d96e5a25706d8c13e347e36b 285b374f7601abe4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:748 +0800] [redisson-netty-2-25] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 80a1d26e1ddbf414920db0fb8b640d69 6d54f053d8906f77 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:847 +0800] [redisson-netty-2-14] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c7e893183edb48dff3ade949a9ad46cf e1a1bf8947ba9d88 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:847 +0800] [redisson-netty-2-16] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 398d26c9caadf9229f7a58025bbc2834 ff501a2b403d005f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:847 +0800] [redisson-netty-2-7] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 0ec09af58fe468a89da54d0d4512866e 22c2ec6172ce5d61 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:847 +0800] [redisson-netty-2-17] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 546fa3714339838a35043b6d95062259 dba38e80c815b363 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:848 +0800] [redisson-netty-2-61] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 25ae4af31c5eae259d404a900a5ff172 34f98a3f1f613a16 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:848 +0800] [redisson-netty-2-33] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 04c00ad94d650679c31db02ed17e1fa3 290a5d83c3ffe647 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:848 +0800] [redisson-netty-2-57] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b06548c732d45f917e8b94aab5a4ec2e 04193bf33be3f56b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-20] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7822ed98018effbdfdd6ebaa024b195c 1df2daa943a3eaad CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-52] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3a77b170d4d388fe60465075581731d0 4b6e42dd8885bc29 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-11] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 41b590bcd24d0d7764e7ef1e6198e1f9 0d86c0a7a0357a87 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-38] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 82e9141805af35ea395d484db29d31fc 761d0249e26b2cab CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-37] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3150873c5ea57d9e1fd2457153a472c4 17dd6894892ff8a0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-44] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 01bffd833c2789177812a26dade5c108 2373599189057840 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-60] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d1e5368915fa618ea74c5386cc495e3b 845e70cb5354098d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-46] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 854ab91a8a817cad5571edc5f36ea042 2821be2346907f64 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-48] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 91555325eae2e0877468f610799dde53 9c986d04c17f7525 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-43] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : e1f832a99d9dbe107853659dab9fec56 7a1803e1775c31c0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:849 +0800] [redisson-netty-2-47] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a5432564c9d20664972857ec3ddc18fc 957340323ec2e8d9 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-45] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f75ddee1f517d10d44d45f21ec816b53 c01da4ae3a61a3e6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-42] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 0aca3eaaf3eb13ef80a0bd5058630baa 5fcd32173b485a29 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-49] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 84a7180ef98e8f1551c8aa8fef4672bf ab3ba33e92cc4f4f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-40] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 644cbf1f46123969002c529b1ed53ba7 a144325b3d9cb59f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-50] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b53a56ab3f4c0d1ea523890a4b17abd3 88ab899b4a074dfa CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-41] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 817baf6744aa38cb46f0a4291422d84a ff99115ae0d4fb69 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-54] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 139c343339b9a82ed42342c1801858c2 be21165e7ae0169e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:850 +0800] [redisson-netty-2-51] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 1b52c59bc40508f0c2a35e6500b63991 917ab77d37fa440a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:947 +0800] [redisson-netty-2-92] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : aeeea0756a9637a626e280e8b21c3331 74e69160031b17d4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:947 +0800] [redisson-netty-2-96] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 953de29b3c649ac4ecec284d4748f053 7f6ceb9e2a2cab42 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:947 +0800] [redisson-netty-2-94] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c7495430313563bbcd6c9b3e4f86ccf9 1d03d94ff8df54a0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:947 +0800] [redisson-netty-2-93] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7b69dffbb57d06dc9318760053bc94e0 16e207e4ea8e9fec CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:947 +0800] [redisson-netty-2-95] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 04eaa83d0aa9bd5da547839cde7ea0fa 2c87023137a692ee CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-120] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 62416233753f846691d1a964daa1aa0a b041df8b21dc5aef CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-105] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3042acf49c0e123797d4b3cfc755f5c5 75b332790ed9fae6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-110] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 63c7d864bf15f9c1879d9585947beb84 ce75e32800bedad8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-126] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 306da9969d8ad1c72d33805b9e2c2c76 7c5c01203071cb77 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-130] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f07ac9f71bce6f762f4c3f51505c8d50 bdae3c98fe79d369 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:948 +0800] [redisson-netty-2-112] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fbe47f1c281000902bc708eb1c29fbf5 19b955f83fe14357 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-117] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b6573f7e6033acc008c9918fd831423d 6ad2f35e7ad07b7e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-119] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6c5cb9e01c400a5170e0343dca08708f c01666589acfb9f6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-116] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 61af22c752dd67f1a6d51c7b216680f0 5463731bce89af15 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-148] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fadbe193a8ad24b6e58571e4450d6744 f436e13e6e85abc0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-134] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a183e66a1dbde5a3eac6546c2020362a 2ac495ad7a56950f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-141] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7d00128ddfa29b011e00d335efceaf5b 4a371ad7d241e997 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-122] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fbd2896aa40a19082478f8a1f27a308a 2cb27ccba363a534 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-132] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 71f08cd211f86cfb8c378141bc6f7c6c 82d480e746badff8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:949 +0800] [redisson-netty-2-118] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 1a19f6708e5d9d707bd8e73014f96485 62ebc86b9c15622e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:950 +0800] [redisson-netty-2-161] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6b35e0cce348fee4a81b8aa4c2f82c5d b330fe5092d57ef3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:55:950 +0800] [redisson-netty-2-111] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ab616525e91dce42b87c7d93e12b42e5 4fb2a489c210d9b2 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:047 +0800] [redisson-netty-2-174] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6b03236d03f51c324d8257079d20a49f 1e9f8548ef4bae99 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:047 +0800] [redisson-netty-2-177] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c8ea177d2871dfd4e4e42120dc5cfab6 1c1bdfb6de5720fa CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:047 +0800] [redisson-netty-2-152] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : bde55818e8043cc251d6c0179c2dc9e0 d345aec9a51e404b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:048 +0800] [redisson-netty-2-162] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : aaf798baaa10765fbb6e9fd0e5fd8a12 7cf040efe0a3abe0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:048 +0800] [redisson-netty-2-160] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3f695cdc6e7ee668230cb663eefbedfc 274cabb8e6b76210 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:048 +0800] [redisson-netty-2-159] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f35718e54be5447b1c4528fb84ed4a25 f151c0523f05e141 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:048 +0800] [redisson-netty-2-188] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 29623d937cfbc6ef48ff975a4e1a260c db3871971e52413c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:049 +0800] [redisson-netty-2-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c4f9c86a4575b57ce0dc52a00b558c9d a450b794f4fc093f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:049 +0800] [redisson-netty-2-138] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 388e20b57e90f4e43725e24725fcb522 ea9e6e9887e6e408 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:049 +0800] [redisson-netty-2-178] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 005616858a5e03dc9ea836df295eb9b1 96ea980dd3a08599 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:56:049 +0800] [redisson-netty-2-173] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7eb254dac7d9cf015b7773b8ff06ec8b 4e0963bb65402a27 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=28}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:14:59:603 +0800] [redisson-netty-2-26] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : b83aa31eb45ce7980f6305371f03ed60 8c6cd987b2fa686d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-11, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=39}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:15:00:139 +0800] [OkHttp http://otel-collector.observability.svc.cluster.local:4318/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: otel-collector.observability.svc.cluster.local java.net.UnknownHostException: otel-collector.observability.svc.cluster.local at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:796) at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1504) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1363) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1297) at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:50) at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:170) at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:132) at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:70) at okhttp3.internal.connection.RealRoutePlanner.planConnect$okhttp(RealRoutePlanner.kt:164) at okhttp3.internal.connection.RealRoutePlanner.plan(RealRoutePlanner.kt:75) at okhttp3.internal.connection.FastFallbackExchangeFinder.launchTcpConnect(FastFallbackExchangeFinder.kt:119) at okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:62) at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:298) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:101) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:85) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:74) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:226) at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:574) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [otel.javaagent 2026-03-17 17:15:00:140 +0800] [BatchSpanProcessor_WorkerThread-1] DEBUG io.opentelemetry.sdk.trace.export.BatchSpanProcessor - Exporter failed [otel.javaagent 2026-03-17 17:15:04:610 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : ed583f36ea55ee7122444cad80435ac4 f58211348583b775 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-12, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=40}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:15:06:750 +0800] [http-nio-80-exec-6] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : c1669486f3de68151736a9a46aa7db12 dbc8171a974bacca SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-6, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=237, http.request.method=GET, network.peer.port=50684, http.route=/, server.address=172.20.161.215, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:15:06:752 +0800] [http-nio-80-exec-3] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 4919beca73980fc69ce3742e2159be19 fbfd99c1642f5902 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-3, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=234, http.request.method=GET, network.peer.port=50690, http.route=/, server.address=172.20.161.215, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:15:09:620 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 94b131a09698af470317b486de6c091e 5b060bcb6680553f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-13, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=41}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:15:13:514 +0800] [OkHttp http://otel-collector.observability.svc.cluster.local:4318/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: otel-collector.observability.svc.cluster.local java.net.UnknownHostException: otel-collector.observability.svc.cluster.local at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:796) at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1504) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1363) at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1297) at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:50) at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:170) at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:132) at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:70) at okhttp3.internal.connection.RealRoutePlanner.planConnect$okhttp(RealRoutePlanner.kt:164) at okhttp3.internal.connection.RealRoutePlanner.plan(RealRoutePlanner.kt:75) at okhttp3.internal.connection.FastFallbackExchangeFinder.launchTcpConnect(FastFallbackExchangeFinder.kt:119) at okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:62) at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:298) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:101) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:85) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:74) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:226) at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:574) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [otel.javaagent 2026-03-17 17:15:13:515 +0800] [BatchSpanProcessor_WorkerThread-1] DEBUG io.opentelemetry.sdk.trace.export.BatchSpanProcessor - Exporter failed [otel.javaagent 2026-03-17 17:15:14:625 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : afe4da9f86298af4600422431dcf9b3c a3ed9adab3b4eceb CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-14, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=42}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:15:16:751 +0800] [http-nio-80-exec-7] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 51b6e82863601f50d4589847fc76a880 ea4a39adc558fd2b SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-7, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=238, http.request.method=GET, network.peer.port=37890, http.route=/, server.address=172.20.161.215, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:15:16:751 +0800] [http-nio-80-exec-9] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 3c620b76752b30d61f70aac06fb4079d 0071e9214be378f8 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-9, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=240, http.request.method=GET, network.peer.port=37892, http.route=/, server.address=172.20.161.215, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:15:19:634 +0800] [redisson-netty-2-26] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : fb4d5f037414baaf3213080c2fdd7337 da468e02145e1ea4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-15, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=43}, capacity=128, totalAddedValues=8} [root@k8s-master-14 ~]# 1.上面日志表明java Agent已经挂上 有大量的内容 otel.javaagent LoggingSpanExporter SERVER [tracer: io.opentelemetry.tomcat-7.0...] CLIENT [tracer: io.opentelemetry.redisson-3.0...] 这说明： 应用已经被 OTel Java Agent 接管 trace/span 已经在生成 Tomcat 入站请求、Redis 调用都已经被抓到了 2.报错关键导出地址：UnknownHostException: otel-collector.observability.svc.cluster.local 应用想把 trace 发到 otel-collector.observability.svc.cluster.local 但这个名字解析不到 所以 exporter 发不出去#解决 #Collector 的默认资源名大概率不是 otel-collector，而是 http://otel-collector.observability.svc.cluster.local:4318 kubectl set env deployment/efp-message-client -n efp-service-test \ OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector-opentelemetry-collector.observability.svc.cluster.local:4318[root@k8s-node-26 ~]# kubectl set env deployment/efp-message-client -n efp-service-test \ > OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector-opentelemetry-collector.observability.svc.cluster.local:4318 deployment.apps/efp-message-client env updated You have new mail in /var/spool/mail/root [root@k8s-node-26 ~]# kubectl rollout status deployment/efp-message-client -n efp-service-test Waiting for deployment "efp-message-client" rollout to finish: 1 old replicas are pending termination... Waiting for deployment "efp-message-client" rollout to finish: 1 old replicas are pending termination... deployment "efp-message-client" successfully rolled out [root@k8s-node-26 ~]# kubectl logs -n efp-service-test deploy/efp-message-client --tail=200 [otel.javaagent 2026-03-17 17:24:19:459 +0800] [redisson-netty-2-44] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c008adcc355241a295cfecff485ff58d 5d4781b6c9493a92 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:459 +0800] [redisson-netty-2-54] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : df9c5664a6e88e6c7c9603b9ff1a132d 2accc7d03e7fd9f5 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:460 +0800] [redisson-netty-2-22] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 52f9faf30383d6914aff4511aa7cac5b 91de52970a97f3c0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:461 +0800] [redisson-netty-2-55] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : cacab1029fc438a40baaa30d290fe751 5dace87656801185 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:554 +0800] [redisson-netty-2-39] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : aeb6deca158f4b041d910439a0f891ef e9356055bf94bae4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:554 +0800] [redisson-netty-2-40] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7a7fbf9c1fb013433b2f97d3762bdaed 7c3349a12197f830 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:554 +0800] [redisson-netty-2-41] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 92d57fbf90fa314161088212ae79c2d1 bdf4210b8387fed1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:554 +0800] [redisson-netty-2-37] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c6071384e8bee086902717f6fe85ffad b3daf1bb36370db3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:555 +0800] [redisson-netty-2-93] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 15783906221eafce53616e4126a06281 d376b02ff3cc1e85 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:555 +0800] [redisson-netty-2-92] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 1df869dd5c6870a0cbb9eee7f8998aa1 97acebf4def6a137 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:654 +0800] [redisson-netty-2-98] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 32231f84e16fd77f74f8e1fcf23fd86c 5891e49f51bba0ac CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:654 +0800] [redisson-netty-2-101] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d6241a80f97d7dfd6a58c9f90a84526e c1fa6a515165b992 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:654 +0800] [redisson-netty-2-95] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 8fb9ac8b27e622402e7ffcbe2c6b4407 21372e82ae41607b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-104] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ed17425e986e51fd0c28ba6b0501ffb6 65856a1d0dbacb99 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-94] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : db5928ea05461dacf1a5f2f75960589f a45f804d7a663e2e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-113] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 8b22fb3ce37e8e9f70844687ced7b255 3ce7ef84e079c089 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-115] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 77b526fd20f034f9a6ca6a3e76f40356 19e595dbcd6e9df8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-114] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : e321b0de224108d7902bbe0ff9012f49 9cd8aa5aba25a61b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:655 +0800] [redisson-netty-2-110] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3f9c9d9426451cc90a247e4f7eabc97c 6c591f3122e5dd52 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-111] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 925f0753a5098cd3d9ef5f8ec953d550 fb16e64884ca52c6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-109] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c5f2679a1a85c7ad0c14340412367d7b 8a0b3d788cf65555 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-124] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3cbf3326e88248385d7c0f531c91fcec d7a8085885fc5bcc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-112] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c6f0696ccf494b58eb70ad7a2f72084d df32022b95e5f70a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-97] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 0316d16ab3dd4c4dba7c6b20ca3507ad 6895605aa0bd316c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:656 +0800] [redisson-netty-2-151] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : dd358a69cebbc645bfa2ed6431c1294e a51da43f779baec4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:657 +0800] [redisson-netty-2-158] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d03cf028a7dedf64a1af8b91e4eb7ee4 95cd17e54dc5d978 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:657 +0800] [redisson-netty-2-163] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 149eae3b024204179a10d4ceff25cdb8 b482bc1a01c56913 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:657 +0800] [redisson-netty-2-160] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 042bf1d48554449f8661a8699eacf754 77fc04cc3c4870ec CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:657 +0800] [redisson-netty-2-162] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5b22c271e25d0528437055fb74bdb5d9 f65893a1cdf26588 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:657 +0800] [redisson-netty-2-156] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 62354c02d7f023e09b0ffdf23aca6fa0 d083d42eb34ceb40 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-146] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 431942f4226f829fd7c3fa698d5d32cd fd9e2b85557f8309 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-100] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3f44337231eadb7e3e964ef2816df1b5 ce6bc301d7b1e93f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-96] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f9c2add276d9155a2a4a5d352868a6ed e0c87384be3951c0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-107] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ccaa01a74dac0863f65afcce0119b940 51a5e80878a2fac9 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-147] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 78babb3a65a10a52c8ba78f3621b64e8 23ab9402914ec165 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-106] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 80ddf0fd321146ec2e9776b8f00bd2c2 72c48a3c127687fb CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-103] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : cd311a2baa14935250cb80eb897f1b7e 22af9e6111ac08a8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-108] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d71c6872548f9d90686ba5c3353f6298 89abeacd54fd0735 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:658 +0800] [redisson-netty-2-155] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 07f0282ab294c33e4a4921f191fdc1ac 99724263abf971d9 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:659 +0800] [redisson-netty-2-149] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ee2709d8b00c90fc49c53c76e109a13d 95c67dbafb07e27e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:659 +0800] [redisson-netty-2-99] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 366c092b6593ce3d6f4ee0a617c44d12 05a56c90e2b1486a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:659 +0800] [redisson-netty-2-153] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 966ab1ea8cd91eee7721bcf023d6bf8e 4fba2ee68913d88c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:661 +0800] [redisson-netty-2-4] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : b2daa866a0b63a2fa0c07c6df4ea9871 1169fbb89bd56227 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-37, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=66}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:755 +0800] [redisson-netty-2-142] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3fc989afb9e2ceaeaaf266790d557236 75d355bd9f0dbb2f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:755 +0800] [redisson-netty-2-143] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a7022da55e9f9edafc4d1d94999bc89e f8acdd3df94825e2 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:755 +0800] [redisson-netty-2-138] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c0394125583a3fd6e4b8ee4ce7d4e8c8 7a8ded25e8e8dd98 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:755 +0800] [redisson-netty-2-152] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 00181b26734d2ecf17ea4569e2889dd0 4368e3cd21da482d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:755 +0800] [redisson-netty-2-116] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 156a2be0f7c70119dca238974a384762 9ab829f2a0c9357e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-177] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6cffc3419cac73ed77f11cc54f402a9b 5a81bf14486217fc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-176] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b1e4d9c42aad6be49186502d28504d8f 06e474cd1a0bcf5c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-175] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 4387ff6cdcef3446714b734d601004ad 70a7354a8674664e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-139] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 09a95ab2b76719b38665ecd4de2c0343 650c9d3cf5f92618 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-171] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 17dc8e7b3c1e67beb310d473403ab8d5 0515a7882cc6bbba CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-185] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b7d89143f21f0019690def74cd9c9c30 48bb4eefef1013ed CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:756 +0800] [redisson-netty-2-190] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : bef8995cf65ca5c4993a70f86fe8bc31 00c9131eecabc364 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-5] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 9cae5e5c35319c30fa33ab66a254ffc7 f9c901fde632a0e1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a3219be8904b29855688f48025004cc9 e4523279e7232a37 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-9] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 893b557e5e635b88040f6179c2381f0d 8858d246bcd0dc6b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-189] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 00980ba6c51fb60312ceb9564d96907b 0dca046990f514c5 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-191] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 9daca56294f0cffbda27052fb83f4f39 7fe44733ff0dd448 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-179] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 356f1ba102e2616a5dc777df015b5aab beae115c09f50bf6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-174] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5b82b29b26ecbd38fbe708c13c65ebe8 adffabaffc669a91 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-183] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 09ca676e86f13308f8733c3cff978b36 88e11eca662e4976 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-165] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 763e84d2e522c8159d4bfffd7e6aa294 5b7ecd1281e222eb CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-8] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 316ca30f2424b295084ebda3f5b83e0b 2e7d178e523d8610 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:19:757 +0800] [redisson-netty-2-181] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fb406c116813a8e3f6cfb048f9a4d790 47eb5d1fc6a82be3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:23:596 +0800] [http-nio-80-exec-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 25c637219bab98a2c740f703ae001df0 e9fb1a3f093524ff SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-1, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=233, http.request.method=GET, network.peer.port=42510, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:24:24:670 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 47e1d12ffd57ed35da4602ea22273a26 d7263a1a9bc5691e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-38, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=67}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:29:676 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 503c1fa543edf45c00b84cd13459b4e3 d62e34db8a487968 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-39, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=68}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:33:597 +0800] [http-nio-80-exec-3] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 1b3988b364a31163bb510c6d532605a9 97a17aa7c7b06e9c SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-3, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=235, http.request.method=GET, network.peer.port=58276, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:24:34:684 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : b5c59ae3c954dc17dc3a5b07d28ad699 fb761eef030bd425 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-40, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=69}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:35:890 +0800] [redisson-netty-2-155] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : 1974b4174826024bc7dc23f9af2cc181 74cdc94bef802147 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-4, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=236}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:35:891 +0800] [redisson-netty-2-42] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : 7e248f4930bd95077e40196a75994929 ad7f5b314d89cd7e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-4, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=236}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:36:707 +0800] [http-nio-80-exec-5] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'OnCommittedResponseWrapper.sendError' : 15737c498eeb47ea35ae4ff28322af17 90c706288aa1130a INTERNAL [tracer: io.opentelemetry.servlet-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-5, code.function=sendError, code.namespace=org.springframework.security.web.util.OnCommittedResponseWrapper, thread.id=237}, capacity=128, totalAddedValues=4} [otel.javaagent 2026-03-17 17:24:36:713 +0800] [http-nio-80-exec-5] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /error' : 15737c498eeb47ea35ae4ff28322af17 c301475ad3d69ef6 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-5, server.port=80, network.protocol.version=1.1, user_agent.original=Prometheus/2.44.0, http.response.status_code=401, thread.id=237, http.request.method=GET, network.peer.port=33010, http.route=/error, server.address=172.20.161.241, client.address=172.20.161.251, network.peer.address=172.20.161.251, url.path=/metrics/prometheus}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:24:39:689 +0800] [redisson-netty-2-4] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 57adc1ca891f501392d9fd7b8550aaf6 06407e675283b224 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-41, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=70}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:39:815 +0800] [redisson-netty-2-14] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'EVAL' : 3ea8889d2bbd3ad9181c6ba4eebb900e 24d757d3aa914102 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-35, network.type=ipv4, db.operation=EVAL, db.statement=EVAL if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;if #expiredKeys1 > 0 then redis.call('zrem', KEYS[5], unpack(expiredKeys1)); redis.call('zrem', KEYS[3], unpack(expiredKeys1)); redis.call('zrem', KEYS[2], unpack(expiredKeys1)); redis.call('hdel', KEYS[1], unpack(expiredKeys1)); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;if #expiredKeys2 > 0 then redis.call('zrem', KEYS[5], unpack(expiredKeys2)); redis.call('zrem', KEYS[3], unpack(expiredKeys2)); redis.call('zrem', KEYS[2], unpack(expiredKeys2)); redis.call('hdel', KEYS[1], unpack(expiredKeys2)); end; return #expiredKeys1 + #expiredKeys2; 6 redissonCacheMap redisson__timeout__set:{redissonCacheMap} redisson__idle__set:{redissonCacheMap} redisson_map_cache_expired:{redissonCacheMap} redisson__map_cache__last_access__set:{redissonCacheMap} redisson__execute_task_once_latch:{redissonCacheMap} ? ? ? ?, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=64}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:43:597 +0800] [http-nio-80-exec-6] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 24a30dce76dcaa6e10cdd729a70bbc1b af614426c0ed86a2 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-6, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=238, http.request.method=GET, network.peer.port=54048, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:24:44:698 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : cf01b97bd4a95d9633f2ac3d4383b069 4c904cfb49783d6b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-42, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=71}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:355 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 925e95d677af13c2b4ffaa5b1df98e0f 9835b319ed63e3a1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:355 +0800] [redisson-netty-2-4] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 67552896cdeb7cde42176dcaa09ff9c8 2ac28c88a0205f60 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:454 +0800] [redisson-netty-2-6] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 75d74e8824cfc01dbb224eb9e0879909 5d59de3f741b7cb1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:454 +0800] [redisson-netty-2-17] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 60a6912a911032d079f6ac1a7060b164 8c681bb8f38c74e9 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:454 +0800] [redisson-netty-2-20] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 84d2d36296fdc2465cf2cc5fc3a6bcf0 1a7c8cca4af78d4b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-11] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 4622276be28aeb9bbc8553badbc1816d d907f9cb0f37fd93 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-8] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c0dd1665b05afe19c6d1052c721db0bb a7d674e264ddb3a6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : dca2b0f8651cd752a924ff5c8cfc22dd 5fd5672668c77b5d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-7] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 0575c6151886cc509669abfeda4df453 d003845907b158a3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-10] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f37cbbe01393f3d52d5f28aeea37e23f e947d66fff5a3864 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:455 +0800] [redisson-netty-2-9] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c3e0615af0caa4717774739aaee3c748 34c70f6724f7d5d8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:555 +0800] [redisson-netty-2-25] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2788fadf2ef19b9601195145385e9402 4efcc5210a6d9586 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:555 +0800] [redisson-netty-2-21] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 37c38d83322f47f4c5e0d73d192160e6 f45c516d03e1567f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:555 +0800] [redisson-netty-2-19] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7b7c81248887df0aa6b213da7d7412a0 ea26533840a8530a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-13] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b8a1e2f74343d78bf2482d5085103322 9dbd717ea97fbdd4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-16] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b1c7ce35a0bea66440c212f44174aa48 f93474ab70806407 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-24] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 38e54a180f61b4435b1e5511adb136dd fa8b88fd907e6893 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-61] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 618de55bbcc293eb276bc34518fbc2f0 2de3742489fa5b2c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-23] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c9e7828f0302f140d8e41a68c6c142fd 8c0096d397677f8e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:556 +0800] [redisson-netty-2-50] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c7a97aa015a3d72987f94bd522e0fab8 063a3f6e6754cf5f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-59] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5dfdb335a03a52380b97ae9ecfabab3c 3af145ef52e1292f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-44] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 91fa1374f28ae0de17fadb55538fbf32 316b5ae0702884bc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-22] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : feef207ba245b7f7f653027d7d8faa34 cc99de597cd34434 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-35] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3921fa4fc0dbf463637470bacb4a4cab 805c2193560effbe CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-15] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 633a3fd9a1336c3b5d1e53df051578ab 689f8db1ebb665ec CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-43] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 072383b1b3b58b72bf5082123a038b97 f3255979ae4b3236 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-18] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : e869ba21ce3e5a873976ca8455551a60 eb427a21e2ae74ca CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-12] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 24a7c5ce568995f43780f8b06b545a45 a374c8c6cdaf402a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-42] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 98ae623d7b46fb99f8f2c574af3224fd d0e0f528e1136721 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-56] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b0508dc182b4962c026dc52ea168533a 28952773844e2582 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:557 +0800] [redisson-netty-2-38] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d5491f839b4ed2895619850b1b153c03 dae6db4e8ed1ef64 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-45] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6b22795f2a6db86253c97874770371aa 9ab322bf9ba71274 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-14] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3ea8b82bcf250407cb1ae53858d3940f c0cc1e9f178cc5ba CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-48] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b9b70e47fb37ecdf17b9a8eced6c6925 8113acb82a4e2f8d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-47] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 85843a91cd73426a83cf0fb25b6eed35 c9e686c14477137c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-54] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a1f39c57970be4ecc6a8f95e2379d48e c674e25fd7237c31 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-51] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : cbd3708d7e35e1cbf82bbc8019b8bb79 8a7892a409ce1135 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-55] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f1090ad2d8eac626b1ad2c4f75a7782f 590aca5f12f03264 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-46] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7053f2b176b00385330105218202b999 dbe3923d389dbae2 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:558 +0800] [redisson-netty-2-57] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3e18a026de384a5c692abe7cc900c8eb 28856b1974080615 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:559 +0800] [redisson-netty-2-52] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 158a7624041eff4c303c48d7088e0e3e 0cbe7b364a270835 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6002, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:654 +0800] [redisson-netty-2-41] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : e7c23ed1055c83de4baf38d7fabcb30f c08a04eae6219ed0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:654 +0800] [redisson-netty-2-40] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 36760b8d3b6caa88b53e7b451e63cb2d 29a453dd3e5a57d8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:655 +0800] [redisson-netty-2-37] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f02456f8d377b5d1b2ba219f24de29f6 f48682bf9f37f455 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:655 +0800] [redisson-netty-2-93] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 4d66777cf5855e023ae1530a7c8b749c 3770bcf965bce2f8 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:655 +0800] [redisson-netty-2-39] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ef71e92fd46e5d4cb77befec87ec2d2f a06600fa18c5ebc2 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:655 +0800] [redisson-netty-2-92] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a306be8401059f3c5fdb95d39c69ce88 94d5bd148b6614bc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:703 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 30cf1eeca5e6ce5adaed9ab78453ad7c f66cca7d9e5915fb CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-45, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=74}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:754 +0800] [redisson-netty-2-95] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 9d2b17f390bded336ca6681af39ef82e b481750418812e85 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-99] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3e9d86608335eac843343acca7b84a6f 62e258e17c62a1da CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-98] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : e2ecf7e0ad7b05ea5cec64b48aa90313 bcbc83c6e721e848 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-96] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 72995189c3de74972c7d570b48590195 fcd17b5a20cef320 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-94] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6e05bd1a52bcc89d3ec7a86177b769aa 00659a24bcdad9f5 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-104] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 42981c8e26549429299acf2910a431da ab93eb2e94f330d0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-101] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2fffc61cba9c2bd99f7d7412191d35a5 8cce8ddb084706e6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:755 +0800] [redisson-netty-2-100] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7dd5e9245fdb6b87c210e6a7fc89c89d 51b23bf188bc82a5 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:756 +0800] [redisson-netty-2-115] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f6979f546fda72507467c7ba7b7cbf76 51e49f38ac7c6351 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:756 +0800] [redisson-netty-2-110] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 046c23b0cb3d7f710fac9a660c91fe14 daaacb12f88d2f51 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:756 +0800] [redisson-netty-2-114] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 03d8e519ad7e9ef6bf0e0983fa848752 18e0bf1a20653216 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:756 +0800] [redisson-netty-2-103] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 1bd112120f4dfc78ea24d2617cf17fd6 ef99f45fdd96e549 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:756 +0800] [redisson-netty-2-109] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 984b3af1fb4574737fc4f0dc102d378b 8f399b04175878f1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-106] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2cff069e51095545411e695e00181d0f a17fb239860ff03e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-111] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 8448ca91b497d0745e84686c54efb638 3a494fdcdb36df4b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-112] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : bd7dbb2d6891d66f344ed750f31b43d4 a62c9337fdd7346c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-124] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b52251f3585f0421a3265d9bf48087a1 19856e0afeb94017 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-97] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 4bf4a7eba04a8e2d6f4cec93754524b2 84c8dd413d929229 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-158] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 8baeb638dc112b9c55a8ab62e3666c32 0a8cf2e5bb108f2f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:757 +0800] [redisson-netty-2-162] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5d7f1e1aa547ec3982f45c28b653cb43 76e2dadfb81dadb1 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-108] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 29160000a2aa4c3262bc6ef569b80eab 3343776e61854d12 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-156] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 0ad62a06b0b32fad2c09df885c62101c 506b9fb29089b736 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-160] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 6016969337ef8cfbc5f5b95b2903a695 2d7966f7efd07884 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-163] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a17e4155287dfa7e9d7c696655dd5ea9 f94bc8f95bb0dc6c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-147] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 50b0c038636e5062edd6fd0d503aa0c4 1eb73458c562cb3f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-146] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7305566e80afc3eac555c57375653f09 c63ce2f2bd71b2a3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:758 +0800] [redisson-netty-2-151] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5f9aa5e793010a2e98c6140d2dad32c5 0ea457d8f2231335 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:759 +0800] [redisson-netty-2-149] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f5c7eb511191988ed900b8eab018862f 738b4c38cccaf536 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:759 +0800] [redisson-netty-2-107] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fa38102c8f85fe6e3391dbe096390124 4ae4c39a3b6a9c68 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:759 +0800] [redisson-netty-2-155] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b00c8a3a882dc57224cb19d0ef39143b 2f91563e80151bfc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:759 +0800] [redisson-netty-2-153] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : fb7e6c6191f548c90e74299afff6c26e f73b824497a63e04 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:761 +0800] [redisson-netty-2-113] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 65739ffd9536154f2054a4e67cc15d1e 8991d2c7048211d2 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:854 +0800] [redisson-netty-2-152] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2cced5fe4eb37528f86372a19d5b5004 9e0b75657190d54d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:854 +0800] [redisson-netty-2-142] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : f6916f6235fd53af4f914db792a6cda7 be61271d7a5aad0e CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:854 +0800] [redisson-netty-2-116] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 3092ba8375986857e71ab8571ef797cc a44a4d8fa5c7b418 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-177] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2a45734edc73b6b0fe24d960a988c654 880ed701b1255eb0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-179] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 99841af6682ec151e166ae0810e8a23b d6588437c86deb95 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-175] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : b981d15b35a81649e4f7569598d15ae0 029b8f229b2bdd5a CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-174] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a27eea52d9a3e96f63db07351b6ec015 82463f525070b166 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-183] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 393f71c044f4f9627871c8ea81bc405f cf4b51a5844805bc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-171] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 998f14c0fc6213038a153a9865f2e66f 837abaa13a8821d6 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-176] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 4ff6b05a9a92be6001bc300576117a99 68a19fdcd915ff9f CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:855 +0800] [redisson-netty-2-185] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : d1da215b5eb2ae7bf7883b6f9abbe937 c37d9ca9dcec4cb3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-190] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 43cbc845e064dd448cb4af19895dc5e7 80c5afba58b92693 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-1] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 8a590b1650924256cced3f322c85db1b 047fce1fc20b54f4 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-5] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 23a53bbbad83c0b6bee4721ea4352834 f40210eeb596f3aa CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-143] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 5fee43dc37490f807102c64d09ba4736 46cdd0771365e883 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6004, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-8] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 093f3dc56c9954afd22818433738fa87 ab818fbf450d1038 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-165] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : c19b76723d98567b1443d566f57c68df 762c826a4d951833 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-138] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : a65d56d8e6cd68570bbbcc103289fd8a 4bd63c3dc415ec02 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-139] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 7c3a1809c031d745f06b88ae88ce0730 14f1e7c6fb28472b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-191] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 739ad9a4b0743832be3430aefe713185 a1b0ff82600558d5 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-9] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : db8f9f2b2a4926ef9d846b83cb99c401 5c1487be86f68ecc CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-181] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : 2c7b492aafc4dbdc42ecaa4c30ec65d0 32daff0d0db4cdd0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6005, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:49:856 +0800] [redisson-netty-2-189] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'PING' : ddb75945f705a8e0ecd01542414fe2ca f6a61ac9102dcd77 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-timer-4-1, network.type=ipv4, db.operation=PING, db.statement=PING, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=29}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:53:596 +0800] [http-nio-80-exec-7] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 24f092796426791cf8dcb8933d468c5a af560cfeb3adb5d2 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-7, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=239, http.request.method=GET, network.peer.port=34192, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:24:54:711 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 0df329ea8aacfe87dc1627b59d44eaa9 c398a222d1ecd958 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-44, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=73}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:853 +0800] [redisson-netty-2-165] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : f560463b86cf18ddc934181d072640a4 60c12f39abdc615d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:856 +0800] [redisson-netty-2-43] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : 6c3fd60176d94f1919ec7ce1910151b0 2ea6c9a79cb9719d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:857 +0800] [redisson-netty-2-171] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : 0a2632b16124e4bbf4f0068faed3439a 3b37c0d6e27ce9cb CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:859 +0800] [redisson-netty-2-35] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : 4f0419ef707d15e0a37d16f4cdb06053 347024f1091788f3 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:860 +0800] [redisson-netty-2-5] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : 3adbada5c04dbe8d095e67af1f365dc5 2878e16dcc01e18d CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:861 +0800] [redisson-netty-2-45] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : d5e58b956f997b4e34b1aad733375f0a f783afce2c49d49c CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:862 +0800] [redisson-netty-2-190] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : 86ec3c83d6fad91cc46765856146f32e 78e198218116cce0 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:54:863 +0800] [redisson-netty-2-92] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : 1e89df1d7efe3eb704814cf9adb4f9b8 ef1743d8cd55618b CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-8, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=240}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:24:59:720 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : c542d0d6506f7d94750a1703377d0714 5436a101d0dd0527 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-46, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=75}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:25:03:597 +0800] [http-nio-80-exec-10] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : d935acffe83fd1bd30ed026bd2d0fdde da8e52b62e549a92 SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-10, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=242, http.request.method=GET, network.peer.port=38916, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:25:04:728 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 5d24bbcf3c6877cebd879ab7920b44ec 83aa68668898f171 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-47, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=76}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:25:05:879 +0800] [redisson-netty-2-8] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET' : a604be0fa585b3581a4afd342963574e 1fdb2b2f8fb82270 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-1, network.type=ipv4, db.operation=GET, db.statement=GET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a, network.peer.port=6006, db.system=redis, network.peer.address=192.168.169.57, thread.id=233}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:25:05:880 +0800] [redisson-netty-2-93] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'SET' : 49088f9a65a54b1e197fc69b38305c74 275a6803ea40e337 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=http-nio-80-exec-1, network.type=ipv4, db.operation=SET, db.statement=SET ws:efp-enterprise-web:2a1cdc67-2b58-4cd5-a7b6-5eeddd46a58a ?, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=233}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:25:09:738 +0800] [redisson-netty-2-27] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 504c7bf6049183329155a56484023982 7fc95c0eb0483832 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-48, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6003, db.system=redis, network.peer.address=192.168.169.57, thread.id=77}, capacity=128, totalAddedValues=8} [otel.javaagent 2026-03-17 17:25:13:596 +0800] [http-nio-80-exec-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'GET /' : 4c3dbb707f2f3cea6b14d5594e9ca084 b4f810a9462cd48b SERVER [tracer: io.opentelemetry.tomcat-7.0:2.26.0-alpha] AttributesMap{data={url.scheme=http, thread.name=http-nio-80-exec-2, server.port=80, network.protocol.version=1.1, user_agent.original=kube-probe/1.22, http.response.status_code=200, thread.id=234, http.request.method=GET, network.peer.port=39784, http.route=/, server.address=172.20.161.241, client.address=192.168.169.26, network.peer.address=192.168.169.26, url.path=/}, capacity=128, totalAddedValues=14} [otel.javaagent 2026-03-17 17:25:14:746 +0800] [redisson-netty-2-2] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'CLUSTER' : 6a9795491a083f0aec9b2f8412556647 f6e680a13fa43526 CLIENT [tracer: io.opentelemetry.redisson-3.0:2.26.0-alpha] AttributesMap{data={thread.name=redisson-netty-2-49, network.type=ipv4, db.operation=CLUSTER, db.statement=CLUSTER NODES, network.peer.port=6001, db.system=redis, network.peer.address=192.168.169.57, thread.id=78}, capacity=128, totalAddedValues=8} You have mail in /var/spool/mail/root [root@k8s-node-26 ~]# SERVER [tracer: io.opentelemetry.tomcat-7.0...] CLIENT [tracer: io.opentelemetry.redisson-3.0...] GET / CLUSTER PING SET GET 这说明： 入站 HTTP 请求被抓到了 Redis 调用也被抓到了 efp-message-client 的自动埋点是生效的#链路 efp-message-client → OTel Java Agent → OTel Collector → Tempo → Grafana现在已经能看到： HTTP 入站请求 span Redis 相关 span 其他客户端调用 span 同一个服务的 trace 列表 这就是 OpenTelemetry + Tempo 的核心价值已经出来了。#上面的调试日志很多可以关掉 kubectl set env deployment/efp-message-client -n efp-service-test OTEL_JAVAAGENT_DEBUG=false四、配置granfana #指标 traces_spanmetrics_calls_total traces_spanmetrics_latency_bucket traces_service_graph_request_total这三个指标名能选到，但都返回 No data。 这说明现在 Service Graph 依赖的指标并没有真正写进 Prometheus[root@k8s-node-26 ~]# kubectl get all -n tracing NAME READY STATUS RESTARTS AGE pod/tempo-0 1/1 Running 0 104m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/tempo ClusterIP 10.68.99.114 <none> 6831/UDP,6832/UDP,3200/TCP,14268/TCP,14250/TCP,9411/TCP,55680/TCP,55681/TCP,4317/TCP,4318/TCP,55678/TCP 120m NAME READY AGE statefulset.apps/tempo 1/1 120m [root@k8s-node-26 ~]# kubectl get cm -n tracing NAME DATA AGE kube-root-ca.crt 1 127m tempo 2 120m [root@k8s-node-26 ~]# kubectl get secret -n tracing NAME TYPE DATA AGE default-token-g4wpb kubernetes.io/service-account-token 3 127m sh.helm.release.v1.tempo.v1 helm.sh/release.v1 1 120m sh.helm.release.v1.tempo.v2 helm.sh/release.v1 1 104m tempo-token-5vrk8 kubernetes.io/service-account-token 3 120m [root@k8s-node-26 ~]# kubectl exec -n tracing tempo-0 -- sh -c 'cat /conf/tempo.yaml | egrep -n "metrics_generator|remote_write|service-graphs|span-metrics|overrides" -A5 -B3' 40- {} 41-query_frontend: 42- {} 43:overrides: 44- defaults: {} 45: per_tenant_override_config: /conf/overrides.yaml [root@k8s-node-26 ~]# kubectl exec -n tracing tempo-0 -- sh -c 'find / -name "*tempo*.yaml" 2>/dev/null' /conf/..2026_03_17_08_02_47.597651194/tempo.yaml /conf/tempo.yaml command terminated with exit code 1 [root@k8s-node-26 ~]# You have mail in /var/spool/mail/root [root@k8s-node-26 ~]# [root@k8s-node-26 ~]# kubectl get deploy prometheus-server -n monitoring -o yaml | egrep -n "enable-remote-write-receiver|args:" -A5 -B3 46- helm.sh/chart: prometheus-22.6.2 47- spec: 48- containers: 49: - args: 50- - --watched-dir=/etc/config 51- - --reload-url=http://127.0.0.1:9090/-/reload 52- image: harbor.telewave.tech/monitoring/prometheus-config-reloader:v0.65.1 53- imagePullPolicy: IfNotPresent 54- name: prometheus-server-configmap-reload -- 59- - mountPath: /etc/config 60- name: config-volume 61- readOnly: true 62: - args: 63- - --storage.tsdb.retention.time=15d 64- - --config.file=/etc/config/prometheus.yml 65- - --storage.tsdb.path=/data 66- - --web.console.libraries=/etc/prometheus/console_libraries 67- - --web.console.templates=/etc/prometheus/consoles [root@k8s-node-26 ~]# Tempo 没开 metrics-generator overrides: defaults: {} 没有这些关键项： metrics_generator remote_write service-graphs span-metrics 所以目前 Tempo 只存 trace，没有生成 service graph / spanmetrics 指标。Prometheus 大概率也没开 remote write receiver grep 出来的 prometheus-server 参数里，没有看到：--web.enable-remote-write-receiver 所以即使 Tempo 后面开始往 Prometheus 写指标，Prometheus 这边也未必接得住。#tempo-cm-metrics.yaml apiVersion: v1 kind: ConfigMap metadata: name: tempo namespace: tracing data: overrides.yaml: | overrides: {} tempo.yaml: | memberlist: cluster_label: "tempo.tracing" multitenancy_enabled: false usage_report: reporting_enabled: true compactor: compaction: block_retention: 24h distributor: receivers: jaeger: protocols: grpc: endpoint: 0.0.0.0:14250 thrift_binary: endpoint: 0.0.0.0:6832 thrift_compact: endpoint: 0.0.0.0:6831 thrift_http: endpoint: 0.0.0.0:14268 opencensus: {} otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 zipkin: {} ingester: {} server: http_listen_port: 3200 storage: trace: backend: local local: path: /var/tempo/traces wal: path: /var/tempo/wal querier: {} query_frontend: {} overrides: defaults: metrics_generator: processors: - service-graphs - span-metrics per_tenant_override_config: /conf/overrides.yaml metrics_generator: registry: external_labels: source: tempo cluster: tracing storage: path: "/tmp/tempo" remote_write: - url: http://prometheus-server.monitoring.svc.cluster.local/api/v1/write send_exemplars: true traces_storage: path: "/tmp/traces"kubectl apply -f tempo-cm-metrics.yaml kubectl rollout restart sts/tempo -n tracing kubectl rollout status sts/tempo -n tracing[root@k8s-node-35 ~]# kubectl exec -n tracing tempo-0 -- sh -c 'cat /conf/tempo.yaml | egrep -n "metrics_generator|remote_write|service-graphs|span-metrics|overrides" -A5 -B3' 48- 49-query_frontend: {} 50- 51:overrides: 52- defaults: 53: metrics_generator: 54- processors: 55: - service-graphs 56: - span-metrics 57: per_tenant_override_config: /conf/overrides.yaml 58- 59:metrics_generator: 60- registry: 61- external_labels: 62- source: tempo 63- cluster: tracing 64- storage: 65- path: "/tmp/tempo" 66: remote_write: 67- - url: http://prometheus-server.monitoring.svc.cluster.local/api/v1/write 68- send_exemplars: true 69- traces_storage: 70- path: "/tmp/traces" [root@k8s-node-35 ~]# 在 主容器 prometheus-server 的 args 里新增：--web.enable-remote-write-receiverapiVersion: apps/v1 kind: Deployment metadata: annotations: meta.helm.sh/release-name: prometheus meta.helm.sh/release-namespace: monitoring labels: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: prometheus app.kubernetes.io/version: v2.44.0 helm.sh/chart: prometheus-22.6.2 name: prometheus-server namespace: monitoring spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/name: prometheus strategy: type: Recreate template: metadata: annotations: kubectl.kubernetes.io/restartedAt: '2026-01-28T17:30:30+08:00' kubesphere.io/restartedAt: '2023-08-28T03:11:18.623Z' labels: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: prometheus app.kubernetes.io/version: v2.44.0 helm.sh/chart: prometheus-22.6.2 spec: containers: - args: - '--watched-dir=/etc/config' - '--reload-url=http://127.0.0.1:9090/-/reload' image: 'harbor.telewave.tech/monitoring/prometheus-config-reloader:v0.65.1' imagePullPolicy: IfNotPresent name: prometheus-server-configmap-reload resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/config name: config-volume readOnly: true - args: - '--storage.tsdb.retention.time=15d' - '--config.file=/etc/config/prometheus.yml' - '--storage.tsdb.path=/data' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' - '--web.enable-remote-write-receiver' image: 'harbor.telewave.tech/monitoring/prometheus:v2.44.0' imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: /-/healthy port: 9090 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 15 successThreshold: 1 timeoutSeconds: 10 name: prometheus-server ports: - containerPort: 9090 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /-/ready port: 9090 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 4 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/config name: config-volume - mountPath: /data name: storage-volume dnsPolicy: ClusterFirst enableServiceLinks: true restartPolicy: Always schedulerName: default-scheduler securityContext: fsGroup: 65534 runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 serviceAccount: prometheus-server serviceAccountName: prometheus-server terminationGracePeriodSeconds: 300 volumes: - configMap: defaultMode: 420 name: prometheus-server name: config-volume - name: storage-volume persistentVolumeClaim: claimName: prometheus-server --- apiVersion: v1 kind: Service metadata: annotations: meta.helm.sh/release-name: prometheus meta.helm.sh/release-namespace: monitoring labels: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: prometheus app.kubernetes.io/version: v2.44.0 helm.sh/chart: prometheus-22.6.2 name: prometheus-server namespace: monitoring spec: clusterIP: 10.68.233.242 clusterIPs: - 10.68.233.242 internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: http port: 80 protocol: TCP targetPort: 9090 selector: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/name: prometheus sessionAffinity: None type: ClusterIP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: meta.helm.sh/release-name: prometheus meta.helm.sh/release-namespace: monitoring labels: app.kubernetes.io/component: server app.kubernetes.io/instance: prometheus app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: prometheus app.kubernetes.io/version: v2.44.0 helm.sh/chart: prometheus-22.6.2 name: prometheus-server namespace: monitoring spec: ingressClassName: nginx rules: - host: prometheus-dev.telewave.tech http: paths: - backend: service: name: prometheus-server port: number: 80 path: / pathType: Prefixkubectl apply -f prometheus-server-rw.yaml kubectl rollout status deploy/prometheus-server -n monitoring [root@k8s-node-35 ~]# kubectl get deploy prometheus-server -n monitoring -o yaml | grep enable-remote-write-receiver - --web.enable-remote-write-receiver 需要在数据源配置service graph 选中Prometheus
~/.config/systemd/user/openclaw-gateway.service ~/.config/systemd/user/openclaw-gateway.service.d/
#github里面没有添加该节点的公钥 root@harbor-ops:~/ax_pan# ssh -T git@github.com git@github.com: Permission denied (publickey). #解决办法添加公钥给github root@harbor-ops:~/ax_pan# ls -al ~/.ssh total 28 drwx------ 2 root root 4096 Feb 5 11:11 . drwx------ 20 root root 4096 Feb 12 17:04 .. -rw------- 1 root root 0 Nov 16 22:23 authorized_keys -rw-r--r-- 1 root root 115 Dec 13 17:16 config -rw------- 1 root root 399 Dec 13 17:06 id_ed25519 -rw-r--r-- 1 root root 88 Dec 13 17:06 id_ed25519.pub -rw------- 1 root root 4054 Feb 12 17:05 known_hosts -rw------- 1 root root 3076 Feb 5 11:11 known_hosts.old root@harbor-ops:~/ax_pan# cat /root/.ssh/id_ed25519.pub ssh-ed25519 XXXX/ gitlab #成功 root@harbor-ops:~/ax_pan# ssh -T git@github.com Hi axingzys! You've successfully authenticated, but GitHub does not provide shell access. root@harbor-ops:~/ax_pan# root@harbor-ops:~/ax_pan/ax_pan_server# git remote -v origin https://github.com/axingzys/fast_gin_v2.git (fetch) origin https://github.com/axingzys/fast_gin_v2.git (push) root@harbor-ops:~/ax_pan/ax_pan_server# git remote remove origin root@harbor-ops:~/ax_pan/ax_pan_server# git remote -v root@harbor-ops:~/ax_pan/ax_pan_server# #新创建项目root@harbor-ops:~/ax_pan/ax_pan_server# git branch * main #我们本来就是main就不用做git branch -M main #下面就会把代码到新的仓库 root@harbor-ops:~/ax_pan/ax_pan_server# git remote add origin https://github.com/axingzys/axpan_server.git git push -u origin main Enumerating objects: 348, done. Counting objects: 100% (348/348), done. Delta compression using up to 4 threads Compressing objects: 100% (181/181), done. Writing objects: 100% (348/348), 60.23 KiB | 60.23 MiB/s, done. Total 348 (delta 123), reused 348 (delta 123), pack-reused 0 (from 0) remote: Resolving deltas: 100% (123/123), done. To https://github.com/axingzys/axpan_server.git * [new branch] main -> main branch 'main' set up to track 'origin/main'.
一、prometheus-operatorroot@k8s-01:/woke/prometheus/feishu# kubectl get pod -n monitoring NAME READY STATUS RESTARTS AGE alertmanager-main-0 2/2 Running 0 7d23h alertmanager-main-1 2/2 Running 0 7d23h alertmanager-main-2 2/2 Running 0 7d23h blackbox-exporter-7fcbd888d-zv6z6 3/3 Running 0 16d feishu-forwarder-646d54f7cc-ks92j 1/1 Running 0 4m11s grafana-7ff454c477-l9x2k 1/1 Running 0 16d kube-state-metrics-78f95f79bb-wpcln 3/3 Running 0 16d node-exporter-622pm 2/2 Running 24 (36d ago) 40d node-exporter-mp2vg 2/2 Running 0 11h node-exporter-rl67z 2/2 Running 22 (36d ago) 40d prometheus-adapter-585d9c5dd5-bfsxw 1/1 Running 0 8d prometheus-adapter-585d9c5dd5-pcrnd 1/1 Running 0 8d prometheus-k8s-0 2/2 Running 0 7d23h prometheus-k8s-1 2/2 Running 0 7d23h prometheus-operator-78967669c9-5pk25 2/2 Running 0 7d23h prometheus-operator：控制器/管家 负责看你集群里的 CRD（ServiceMonitor/PodMonitor/PrometheusRule/Prometheus/Alertmanager/...），然后生成/维护真正跑起来的 Prometheus、Alertmanager 的 StatefulSet、配置 Secret 等。 prometheus-k8s-0/1：真正的 Prometheus 实例（采集+存储+算告警） prometheus-k8s-0/1：真正的 Prometheus 实例（采集+存储+算告警） 做三件事： 从各种 target 抓取 /metrics（scrape） 存到自己的 TSDB（本地时序库） 按规则（PrometheusRule）持续计算告警表达式，触发后发给 Alertmanager alertmanager-main-0/1/2：告警“中控”（聚合、路由、抑制、去重、静默） Prometheus 只负责“算出告警是否触发”，真正决定“发给谁、怎么合并、怎么抑制、多久发一次”是 Alertmanager。 grafana：出图/看板 Grafana 不采集数据，它是 去 Prometheus 查询（PromQL），然后画图。 node-exporter：采集 Node OS 指标（CPU/内存/磁盘/网卡） 暴露 /metrics 给 Prometheus 抓。 kube-state-metrics：采集 K8s 资源对象状态（Deployment 副本数、Pod 状态、Job 成功失败等） 也是暴露 /metrics 给 Prometheus 抓。 blackbox-exporter：探活（HTTP/TCP/ICMP 探测） Prometheus 调 blackbox-exporter 去探测目标，再把结果当指标存起来。 prometheus-adapter：把 Prometheus 指标转成 K8s HPA 可用的 custom/external metrics（与你问的告警链路不是一条线，但属于体系组件）1.1 Prometheus 怎么知道要抓哪些 target？这里就是 prometheus-operator 的关键：用 CRD 来描述“抓谁”。 常见 CRD： ServiceMonitor：按 label 选择某些 Service，然后抓它们的 endpoints PodMonitor：直接按 label 选择 Pod 抓 Probe：给 blackbox-exporter 用的探测对象（有些栈里会用） 简化理解就是： ServiceMonitor / PodMonitor = “抓取目标清单 + 抓取方式” Prometheus 会通过 Kubernetes API 做服务发现，然后按这些 CRD 去抓。1.2 阈值（告警规则）在哪里配置？怎么“算出来触发”？阈值本质是 PromQL 表达式 + 持续时间。 在 operator 体系里，告警规则通常放在 CRD：PrometheusRule 里。 PrometheusRule 里面一般长这样（示意）： expr: 告警表达式（PromQL） for: 持续多久才算真的触发（防抖） labels: 给告警打标签（比如 severity） annotations: summary/description InfoInhibitor 就是 kube-prometheus 里常见的一条规则：它本身是“用来抑制 info 告警”的辅助告警（触发时提示：现在有 info 告警在 firing）。1.3 Grafana 是怎么“出图”的？Grafana 的数据来源一般配置成一个 Prometheus DataSource（指向 http://prometheus-k8s.monitoring.svc:9090 之类）。 然后每个 Dashboard 的每个 Panel 都是一条或多条 PromQL 查询，例如： CPU 使用率图：rate(node_cpu_seconds_total{mode!="idle"}[5m]) Pod 重启次数：increase(kube_pod_container_status_restarts_total[1h]) 业务 QPS：sum(rate(http_requests_total[1m])) by (service) Grafana 不存数据、不采集数据，只负责向 Prometheus 查询并可视化。1.4 Alertmanager 是怎么收到 Prometheus 的告警？又怎么发给 feishu-forwarder？Prometheus → Alertmanager Prometheus 在运行时会做两件事： 每隔一小段时间计算 PrometheusRule 的 alert 规则 规则满足（pending/firing）后，把告警实例通过 HTTP 发给 Alertmanager（Prometheus 配置里有 alerting.alertmanagers 指向 alertmanager-main） 可以理解为：Prometheus 负责“算出告警”，然后把告警事件 POST 给 Alertmanager。Alertmanager 内部做什么？ 收到告警后，Alertmanager 会： group：按 group_by 合并同类告警（所以你会看到一次来 “(9)” 条） dedup：同一告警别重复刷 inhibit：抑制规则（比如有 warning/critical 时，把 info 抑制掉） route：按 matchers 决定走哪个 receiver（发给哪个渠道）Alertmanager → feishu-forwarder 当路由命中你的 webhook receiver 时，Alertmanager 会对你的 forwarder 发 HTTP POST（就是你代码里 /alertmanager 这个 handler 接收的 AMPayload）。 典型就是这样一个 receiver（示意）： receiver: feishu-forwarder webhook_configs: url: http://feishu-forwarder.monitoring.svc:8080/alertmanager 飞书通知里看到的 Receiver: monitoring/feishu-forwarder/feishu-forwarder 也是这个链路来的。feishu-forwarder → 飞书 forwarder 做的事就是： 解析 Alertmanager webhook 的 JSON（AMPayload） 根据 severity 路由到不同飞书群 webhook 构建飞书消息（text/card/你现在要的折叠面板 card v2） POST 到飞书机器人 webhook（带签名） 最终：飞书群里就收到消息。1.5 整条链路采集链路： Exporter(/metrics) → Prometheus scrape → TSDB 看板链路： Grafana → Prometheus PromQL 查询 → 图表 告警链路： PrometheusRule(阈值/表达式) → Prometheus 计算触发 → POST Alertmanager → Alertmanager(聚合/路由/抑制) → webhook POST feishu-forwarder → feishu-forwarder 转飞书卡片 → 飞书机器人 webhook → 群通知1.6 验证每一段链路Prometheus 抓取目标是否正常： kubectl -n monitoring port-forward pod/prometheus-k8s-0 9090:9090 # 浏览器打开 http://127.0.0.1:9090/targets告警规则是否存在、当前是否 firing： # Prometheus UI: # http://127.0.0.1:9090/rules # http://127.0.0.1:9090/alertsAlertmanager 是否收到告警、路由到哪个 receiver： kubectl -n monitoring port-forward pod/alertmanager-main-0 9093:9093 # 打开 http://127.0.0.1:9093feishu-forwarder 是否收到 webhook： kubectl logs -n monitoring deploy/feishu-forwarder -f二、监控指标详解#列出所有规则对象（所有命名空间） root@k8s-01:/woke/prometheus/feishu# kubectl get prometheusrules -A NAMESPACE NAME AGE monitoring alertmanager-main-rules 7d18h monitoring grafana-rules 7d18h monitoring kube-prometheus-rules 7d18h monitoring kube-state-metrics-rules 7d18h monitoring kubernetes-monitoring-rules 7d18h monitoring node-exporter-rules 7d18h monitoring prometheus-k8s-prometheus-rules 7d18h monitoring prometheus-operator-rules 7d18h node-exporter-rules 来源指标：job="node-exporter"（node_exporter 导出的主机/节点指标） 覆盖内容：CPU、内存、磁盘、inode、网络、系统负载、文件系统只读、时钟偏移等 常见指标前缀：node_cpu_*, node_memory_*, node_filesystem_*, node_network_*, node_load* kube-state-metrics-rules 来源指标：job="kube-state-metrics"（把 K8s 资源状态转成指标） 覆盖内容：Deployment/StatefulSet/DaemonSet 副本不一致、Pod CrashLoopBackOff、Job 失败、HPA 异常、Node 条件（NotReady/Pressure）等 常见指标前缀：kube_pod_*, kube_deployment_*, kube_statefulset_*, kube_daemonset_*, kube_node_*, kube_job_* kubernetes-monitoring-rules 来源指标：Kubernetes 控制面/节点组件（不同集群会略有差异） 典型 job：kube-apiserver、kubelet、coredns、kube-controller-manager、kube-scheduler 等 覆盖内容：API Server 错误率/延迟、kubelet/cadvisor 异常、CoreDNS 错误、控制面组件不可达等 常见指标：apiserver_*, kubelet_*, coredns_*, scheduler_*, workqueue_* 等 kube-prometheus-rules 这是 kube-prometheus 自带的“通用规则包”，通常偏 整套监控栈/集群通用： 一些通用 recording 规则（把原始指标聚合成更好用的序列） 一些跨组件的通用告警（规则名随版本会变） 来源可能混合：node-exporter、kube-state-metrics、apiserver、kubelet 等都会用到 你可以把它理解成“这套监控方案自带的公共配方”，不专属于某一个 exporter。 prometheus-k8s-prometheus-rules 来源指标：job="prometheus-k8s"（Prometheus 自己的 /metrics） 覆盖内容：抓取失败、规则评估失败、远端写入失败、TSDB 问题、磁盘即将满、样本摄入异常、告警发送到 Alertmanager 失败等 常见指标前缀：prometheus_*, prometheus_tsdb_*, prometheus_rule_* prometheus-operator-rules 来源指标：job="prometheus-operator" 覆盖内容：operator reconcile 失败/错误率、资源同步问题、配置 reload 问题等 常见指标前缀：prometheus_operator_* alertmanager-main-rules 来源指标：job="alertmanager-main"（Alertmanager 自己的 /metrics） 覆盖内容：通知发送失败、集群 peer 同步问题、silence/通知队列相关异常等 常见指标前缀：alertmanager_* grafana-rules 来源指标：job="grafana"（Grafana /metrics，若开启） 覆盖内容：Grafana 自身可用性/HTTP 错误、（有些环境也会加数据源连接类告警） 常见指标前缀：grafana_*#看详细监控数据 kubectl get prometheusrule node-exporter-rules -n monitoring -o yaml apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"monitoring.coreos.com/v1","kind":"PrometheusRule","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"exporter","app.kubernetes.io/name":"node-exporter","app.kubernetes.io/part-of":"kube-prometheus","app.kubernetes.io/version":"1.8.2","prometheus":"k8s","role":"alert-rules"},"name":"node-exporter-rules","namespace":"monitoring"},"spec":{"groups":[{"name":"node-exporter","rules":[{"alert":"NodeFilesystemSpaceFillingUp","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available space left and is filling up.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemspacefillingup","summary":"Filesystem is predicted to run out of space within the next 24 hours."},"expr":"(\n node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_size_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 15\nand\n predict_linear(node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"}[6h], 24*60*60) \u003c 0\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"warning"}},{"alert":"NodeFilesystemSpaceFillingUp","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available space left and is filling up fast.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemspacefillingup","summary":"Filesystem is predicted to run out of space within the next 4 hours."},"expr":"(\n node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_size_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 10\nand\n predict_linear(node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"}[6h], 4*60*60) \u003c 0\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"critical"}},{"alert":"NodeFilesystemAlmostOutOfSpace","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available space left.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace","summary":"Filesystem has less than 5% space left."},"expr":"(\n node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_size_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 5\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"30m","labels":{"severity":"warning"}},{"alert":"NodeFilesystemAlmostOutOfSpace","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available space left.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace","summary":"Filesystem has less than 3% space left."},"expr":"(\n node_filesystem_avail_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_size_bytes{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 3\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"30m","labels":{"severity":"critical"}},{"alert":"NodeFilesystemFilesFillingUp","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available inodes left and is filling up.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemfilesfillingup","summary":"Filesystem is predicted to run out of inodes within the next 24 hours."},"expr":"(\n node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_files{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 40\nand\n predict_linear(node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"}[6h], 24*60*60) \u003c 0\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"warning"}},{"alert":"NodeFilesystemFilesFillingUp","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available inodes left and is filling up fast.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemfilesfillingup","summary":"Filesystem is predicted to run out of inodes within the next 4 hours."},"expr":"(\n node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_files{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 20\nand\n predict_linear(node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"}[6h], 4*60*60) \u003c 0\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"critical"}},{"alert":"NodeFilesystemAlmostOutOfFiles","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available inodes left.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutoffiles","summary":"Filesystem has less than 5% inodes left."},"expr":"(\n node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_files{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 5\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"warning"}},{"alert":"NodeFilesystemAlmostOutOfFiles","annotations":{"description":"Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf \"%.2f\" $value }}% available inodes left.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutoffiles","summary":"Filesystem has less than 3% inodes left."},"expr":"(\n node_filesystem_files_free{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} / node_filesystem_files{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} * 100 \u003c 3\nand\n node_filesystem_readonly{job=\"node-exporter\",fstype!=\"\",mountpoint!=\"\"} == 0\n)\n","for":"1h","labels":{"severity":"critical"}},{"alert":"NodeNetworkReceiveErrs","annotations":{"description":"{{ $labels.instance }} interface {{ $labels.device }} has encountered {{ printf \"%.0f\" $value }} receive errors in the last two minutes.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodenetworkreceiveerrs","summary":"Network interface is reporting many receive errors."},"expr":"rate(node_network_receive_errs_total{job=\"node-exporter\"}[2m]) / rate(node_network_receive_packets_total{job=\"node-exporter\"}[2m]) \u003e 0.01\n","for":"1h","labels":{"severity":"warning"}},{"alert":"NodeNetworkTransmitErrs","annotations":{"description":"{{ $labels.instance }} interface {{ $labels.device }} has encountered {{ printf \"%.0f\" $value }} transmit errors in the last two minutes.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodenetworktransmiterrs","summary":"Network interface is reporting many transmit errors."},"expr":"rate(node_network_transmit_errs_total{job=\"node-exporter\"}[2m]) / rate(node_network_transmit_packets_total{job=\"node-exporter\"}[2m]) \u003e 0.01\n","for":"1h","labels":{"severity":"warning"}},{"alert":"NodeHighNumberConntrackEntriesUsed","annotations":{"description":"{{ $value | humanizePercentage }} of conntrack entries are used.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodehighnumberconntrackentriesused","summary":"Number of conntrack are getting close to the limit."},"expr":"(node_nf_conntrack_entries{job=\"node-exporter\"} / node_nf_conntrack_entries_limit) \u003e 0.75\n","labels":{"severity":"warning"}},{"alert":"NodeTextFileCollectorScrapeError","annotations":{"description":"Node Exporter text file collector on {{ $labels.instance }} failed to scrape.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodetextfilecollectorscrapeerror","summary":"Node Exporter text file collector failed to scrape."},"expr":"node_textfile_scrape_error{job=\"node-exporter\"} == 1\n","labels":{"severity":"warning"}},{"alert":"NodeClockSkewDetected","annotations":{"description":"Clock at {{ $labels.instance }} is out of sync by more than 0.05s. Ensure NTP is configured correctly on this host.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodeclockskewdetected","summary":"Clock skew detected."},"expr":"(\n node_timex_offset_seconds{job=\"node-exporter\"} \u003e 0.05\nand\n deriv(node_timex_offset_seconds{job=\"node-exporter\"}[5m]) \u003e= 0\n)\nor\n(\n node_timex_offset_seconds{job=\"node-exporter\"} \u003c -0.05\nand\n deriv(node_timex_offset_seconds{job=\"node-exporter\"}[5m]) \u003c= 0\n)\n","for":"10m","labels":{"severity":"warning"}},{"alert":"NodeClockNotSynchronising","annotations":{"description":"Clock at {{ $labels.instance }} is not synchronising. Ensure NTP is configured on this host.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodeclocknotsynchronising","summary":"Clock not synchronising."},"expr":"min_over_time(node_timex_sync_status{job=\"node-exporter\"}[5m]) == 0\nand\nnode_timex_maxerror_seconds{job=\"node-exporter\"} \u003e= 16\n","for":"10m","labels":{"severity":"warning"}},{"alert":"NodeRAIDDegraded","annotations":{"description":"RAID array '{{ $labels.device }}' at {{ $labels.instance }} is in degraded state due to one or more disks failures. Number of spare drives is insufficient to fix issue automatically.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/noderaiddegraded","summary":"RAID Array is degraded."},"expr":"node_md_disks_required{job=\"node-exporter\",device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"} - ignoring (state) (node_md_disks{state=\"active\",job=\"node-exporter\",device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"}) \u003e 0\n","for":"15m","labels":{"severity":"critical"}},{"alert":"NodeRAIDDiskFailure","annotations":{"description":"At least one device in RAID array at {{ $labels.instance }} failed. Array '{{ $labels.device }}' needs attention and possibly a disk swap.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/noderaiddiskfailure","summary":"Failed device in RAID array."},"expr":"node_md_disks{state=\"failed\",job=\"node-exporter\",device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"} \u003e 0\n","labels":{"severity":"warning"}},{"alert":"NodeFileDescriptorLimit","annotations":{"description":"File descriptors limit at {{ $labels.instance }} is currently at {{ printf \"%.2f\" $value }}%.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefiledescriptorlimit","summary":"Kernel is predicted to exhaust file descriptors limit soon."},"expr":"(\n node_filefd_allocated{job=\"node-exporter\"} * 100 / node_filefd_maximum{job=\"node-exporter\"} \u003e 70\n)\n","for":"15m","labels":{"severity":"warning"}},{"alert":"NodeFileDescriptorLimit","annotations":{"description":"File descriptors limit at {{ $labels.instance }} is currently at {{ printf \"%.2f\" $value }}%.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodefiledescriptorlimit","summary":"Kernel is predicted to exhaust file descriptors limit soon."},"expr":"(\n node_filefd_allocated{job=\"node-exporter\"} * 100 / node_filefd_maximum{job=\"node-exporter\"} \u003e 90\n)\n","for":"15m","labels":{"severity":"critical"}},{"alert":"NodeCPUHighUsage","annotations":{"description":"CPU usage at {{ $labels.instance }} has been above 90% for the last 15 minutes, is currently at {{ printf \"%.2f\" $value }}%.\n","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodecpuhighusage","summary":"High CPU usage."},"expr":"sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job=\"node-exporter\", mode!=\"idle\"}[2m]))) * 100 \u003e 90\n","for":"15m","labels":{"severity":"info"}},{"alert":"NodeSystemSaturation","annotations":{"description":"System load per core at {{ $labels.instance }} has been above 2 for the last 15 minutes, is currently at {{ printf \"%.2f\" $value }}.\nThis might indicate this instance resources saturation and can cause it becoming unresponsive.\n","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemsaturation","summary":"System saturated, load per core is very high."},"expr":"node_load1{job=\"node-exporter\"}\n/ count without (cpu, mode) (node_cpu_seconds_total{job=\"node-exporter\", mode=\"idle\"}) \u003e 2\n","for":"15m","labels":{"severity":"warning"}},{"alert":"NodeMemoryMajorPagesFaults","annotations":{"description":"Memory major pages are occurring at very high rate at {{ $labels.instance }}, 500 major page faults per second for the last 15 minutes, is currently at {{ printf \"%.2f\" $value }}.\nPlease check that there is enough memory available at this instance.\n","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodememorymajorpagesfaults","summary":"Memory major page faults are occurring at very high rate."},"expr":"rate(node_vmstat_pgmajfault{job=\"node-exporter\"}[5m]) \u003e 500\n","for":"15m","labels":{"severity":"warning"}},{"alert":"NodeMemoryHighUtilization","annotations":{"description":"Memory is filling up at {{ $labels.instance }}, has been above 90% for the last 15 minutes, is currently at {{ printf \"%.2f\" $value }}%.\n","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodememoryhighutilization","summary":"Host is running out of memory."},"expr":"100 - (node_memory_MemAvailable_bytes{job=\"node-exporter\"} / node_memory_MemTotal_bytes{job=\"node-exporter\"} * 100) \u003e 90\n","for":"15m","labels":{"severity":"warning"}},{"alert":"NodeDiskIOSaturation","annotations":{"description":"Disk IO queue (aqu-sq) is high on {{ $labels.device }} at {{ $labels.instance }}, has been above 10 for the last 30 minutes, is currently at {{ printf \"%.2f\" $value }}.\nThis symptom might indicate disk saturation.\n","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodediskiosaturation","summary":"Disk IO queue is high."},"expr":"rate(node_disk_io_time_weighted_seconds_total{job=\"node-exporter\", device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"}[5m]) \u003e 10\n","for":"30m","labels":{"severity":"warning"}},{"alert":"NodeSystemdServiceFailed","annotations":{"description":"Systemd service {{ $labels.name }} has entered failed state at {{ $labels.instance }}","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemdservicefailed","summary":"Systemd service has entered failed state."},"expr":"node_systemd_unit_state{job=\"node-exporter\", state=\"failed\"} == 1\n","for":"5m","labels":{"severity":"warning"}},{"alert":"NodeBondingDegraded","annotations":{"description":"Bonding interface {{ $labels.master }} on {{ $labels.instance }} is in degraded state due to one or more slave failures.","runbook_url":"https://runbooks.prometheus-operator.dev/runbooks/node/nodebondingdegraded","summary":"Bonding interface is degraded"},"expr":"(node_bonding_slaves - node_bonding_active) != 0\n","for":"5m","labels":{"severity":"warning"}}]},{"name":"node-exporter.rules","rules":[{"expr":"count without (cpu, mode) (\n node_cpu_seconds_total{job=\"node-exporter\",mode=\"idle\"}\n)\n","record":"instance:node_num_cpu:sum"},{"expr":"1 - avg without (cpu) (\n sum without (mode) (rate(node_cpu_seconds_total{job=\"node-exporter\", mode=~\"idle|iowait|steal\"}[5m]))\n)\n","record":"instance:node_cpu_utilisation:rate5m"},{"expr":"(\n node_load1{job=\"node-exporter\"}\n/\n instance:node_num_cpu:sum{job=\"node-exporter\"}\n)\n","record":"instance:node_load1_per_cpu:ratio"},{"expr":"1 - (\n (\n node_memory_MemAvailable_bytes{job=\"node-exporter\"}\n or\n (\n node_memory_Buffers_bytes{job=\"node-exporter\"}\n +\n node_memory_Cached_bytes{job=\"node-exporter\"}\n +\n node_memory_MemFree_bytes{job=\"node-exporter\"}\n +\n node_memory_Slab_bytes{job=\"node-exporter\"}\n )\n )\n/\n node_memory_MemTotal_bytes{job=\"node-exporter\"}\n)\n","record":"instance:node_memory_utilisation:ratio"},{"expr":"rate(node_vmstat_pgmajfault{job=\"node-exporter\"}[5m])\n","record":"instance:node_vmstat_pgmajfault:rate5m"},{"expr":"rate(node_disk_io_time_seconds_total{job=\"node-exporter\", device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"}[5m])\n","record":"instance_device:node_disk_io_time_seconds:rate5m"},{"expr":"rate(node_disk_io_time_weighted_seconds_total{job=\"node-exporter\", device=~\"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)\"}[5m])\n","record":"instance_device:node_disk_io_time_weighted_seconds:rate5m"},{"expr":"sum without (device) (\n rate(node_network_receive_bytes_total{job=\"node-exporter\", device!=\"lo\"}[5m])\n)\n","record":"instance:node_network_receive_bytes_excluding_lo:rate5m"},{"expr":"sum without (device) (\n rate(node_network_transmit_bytes_total{job=\"node-exporter\", device!=\"lo\"}[5m])\n)\n","record":"instance:node_network_transmit_bytes_excluding_lo:rate5m"},{"expr":"sum without (device) (\n rate(node_network_receive_drop_total{job=\"node-exporter\", device!=\"lo\"}[5m])\n)\n","record":"instance:node_network_receive_drop_excluding_lo:rate5m"},{"expr":"sum without (device) (\n rate(node_network_transmit_drop_total{job=\"node-exporter\", device!=\"lo\"}[5m])\n)\n","record":"instance:node_network_transmit_drop_excluding_lo:rate5m"}]}]}} creationTimestamp: "2026-01-29T13:10:34Z" generation: 1 labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: node-exporter app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/version: 1.8.2 prometheus: k8s role: alert-rules name: node-exporter-rules namespace: monitoring resourceVersion: "17509681" uid: 8f17f249-40fd-4bef-839b-d9389947b19d spec: groups: - name: node-exporter rules: - alert: NodeFilesystemSpaceFillingUp annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available space left and is filling up. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemspacefillingup summary: Filesystem is predicted to run out of space within the next 24 hours. expr: | ( node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 15 and predict_linear(node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""}[6h], 24*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: warning - alert: NodeFilesystemSpaceFillingUp annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available space left and is filling up fast. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemspacefillingup summary: Filesystem is predicted to run out of space within the next 4 hours. expr: | ( node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 10 and predict_linear(node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""}[6h], 4*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: critical - alert: NodeFilesystemAlmostOutOfSpace annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available space left. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace summary: Filesystem has less than 5% space left. expr: | ( node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 5 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 30m labels: severity: warning - alert: NodeFilesystemAlmostOutOfSpace annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available space left. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace summary: Filesystem has less than 3% space left. expr: | ( node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 3 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 30m labels: severity: critical - alert: NodeFilesystemFilesFillingUp annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available inodes left and is filling up. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemfilesfillingup summary: Filesystem is predicted to run out of inodes within the next 24 hours. expr: | ( node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_files{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 40 and predict_linear(node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""}[6h], 24*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: warning - alert: NodeFilesystemFilesFillingUp annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available inodes left and is filling up fast. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemfilesfillingup summary: Filesystem is predicted to run out of inodes within the next 4 hours. expr: | ( node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_files{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 20 and predict_linear(node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""}[6h], 4*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: critical - alert: NodeFilesystemAlmostOutOfFiles annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available inodes left. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutoffiles summary: Filesystem has less than 5% inodes left. expr: | ( node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_files{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 5 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: warning - alert: NodeFilesystemAlmostOutOfFiles annotations: description: Filesystem on {{ $labels.device }}, mounted on {{ $labels.mountpoint }}, at {{ $labels.instance }} has only {{ printf "%.2f" $value }}% available inodes left. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutoffiles summary: Filesystem has less than 3% inodes left. expr: | ( node_filesystem_files_free{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_files{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 3 and node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0 ) for: 1h labels: severity: critical - alert: NodeNetworkReceiveErrs annotations: description: '{{ $labels.instance }} interface {{ $labels.device }} has encountered {{ printf "%.0f" $value }} receive errors in the last two minutes.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodenetworkreceiveerrs summary: Network interface is reporting many receive errors. expr: | rate(node_network_receive_errs_total{job="node-exporter"}[2m]) / rate(node_network_receive_packets_total{job="node-exporter"}[2m]) > 0.01 for: 1h labels: severity: warning - alert: NodeNetworkTransmitErrs annotations: description: '{{ $labels.instance }} interface {{ $labels.device }} has encountered {{ printf "%.0f" $value }} transmit errors in the last two minutes.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodenetworktransmiterrs summary: Network interface is reporting many transmit errors. expr: | rate(node_network_transmit_errs_total{job="node-exporter"}[2m]) / rate(node_network_transmit_packets_total{job="node-exporter"}[2m]) > 0.01 for: 1h labels: severity: warning - alert: NodeHighNumberConntrackEntriesUsed annotations: description: '{{ $value | humanizePercentage }} of conntrack entries are used.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodehighnumberconntrackentriesused summary: Number of conntrack are getting close to the limit. expr: | (node_nf_conntrack_entries{job="node-exporter"} / node_nf_conntrack_entries_limit) > 0.75 labels: severity: warning - alert: NodeTextFileCollectorScrapeError annotations: description: Node Exporter text file collector on {{ $labels.instance }} failed to scrape. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodetextfilecollectorscrapeerror summary: Node Exporter text file collector failed to scrape. expr: | node_textfile_scrape_error{job="node-exporter"} == 1 labels: severity: warning - alert: NodeClockSkewDetected annotations: description: Clock at {{ $labels.instance }} is out of sync by more than 0.05s. Ensure NTP is configured correctly on this host. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodeclockskewdetected summary: Clock skew detected. expr: | ( node_timex_offset_seconds{job="node-exporter"} > 0.05 and deriv(node_timex_offset_seconds{job="node-exporter"}[5m]) >= 0 ) or ( node_timex_offset_seconds{job="node-exporter"} < -0.05 and deriv(node_timex_offset_seconds{job="node-exporter"}[5m]) <= 0 ) for: 10m labels: severity: warning - alert: NodeClockNotSynchronising annotations: description: Clock at {{ $labels.instance }} is not synchronising. Ensure NTP is configured on this host. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodeclocknotsynchronising summary: Clock not synchronising. expr: | min_over_time(node_timex_sync_status{job="node-exporter"}[5m]) == 0 and node_timex_maxerror_seconds{job="node-exporter"} >= 16 for: 10m labels: severity: warning - alert: NodeRAIDDegraded annotations: description: RAID array '{{ $labels.device }}' at {{ $labels.instance }} is in degraded state due to one or more disks failures. Number of spare drives is insufficient to fix issue automatically. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/noderaiddegraded summary: RAID Array is degraded. expr: | node_md_disks_required{job="node-exporter",device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"} - ignoring (state) (node_md_disks{state="active",job="node-exporter",device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"}) > 0 for: 15m labels: severity: critical - alert: NodeRAIDDiskFailure annotations: description: At least one device in RAID array at {{ $labels.instance }} failed. Array '{{ $labels.device }}' needs attention and possibly a disk swap. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/noderaiddiskfailure summary: Failed device in RAID array. expr: | node_md_disks{state="failed",job="node-exporter",device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"} > 0 labels: severity: warning - alert: NodeFileDescriptorLimit annotations: description: File descriptors limit at {{ $labels.instance }} is currently at {{ printf "%.2f" $value }}%. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefiledescriptorlimit summary: Kernel is predicted to exhaust file descriptors limit soon. expr: | ( node_filefd_allocated{job="node-exporter"} * 100 / node_filefd_maximum{job="node-exporter"} > 70 ) for: 15m labels: severity: warning - alert: NodeFileDescriptorLimit annotations: description: File descriptors limit at {{ $labels.instance }} is currently at {{ printf "%.2f" $value }}%. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefiledescriptorlimit summary: Kernel is predicted to exhaust file descriptors limit soon. expr: | ( node_filefd_allocated{job="node-exporter"} * 100 / node_filefd_maximum{job="node-exporter"} > 90 ) for: 15m labels: severity: critical - alert: NodeCPUHighUsage annotations: description: | CPU usage at {{ $labels.instance }} has been above 90% for the last 15 minutes, is currently at {{ printf "%.2f" $value }}%. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodecpuhighusage summary: High CPU usage. expr: | sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job="node-exporter", mode!="idle"}[2m]))) * 100 > 90 for: 15m labels: severity: info - alert: NodeSystemSaturation annotations: description: | System load per core at {{ $labels.instance }} has been above 2 for the last 15 minutes, is currently at {{ printf "%.2f" $value }}. This might indicate this instance resources saturation and can cause it becoming unresponsive. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemsaturation summary: System saturated, load per core is very high. expr: | node_load1{job="node-exporter"} / count without (cpu, mode) (node_cpu_seconds_total{job="node-exporter", mode="idle"}) > 2 for: 15m labels: severity: warning - alert: NodeMemoryMajorPagesFaults annotations: description: | Memory major pages are occurring at very high rate at {{ $labels.instance }}, 500 major page faults per second for the last 15 minutes, is currently at {{ printf "%.2f" $value }}. Please check that there is enough memory available at this instance. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodememorymajorpagesfaults summary: Memory major page faults are occurring at very high rate. expr: | rate(node_vmstat_pgmajfault{job="node-exporter"}[5m]) > 500 for: 15m labels: severity: warning - alert: NodeMemoryHighUtilization annotations: description: | Memory is filling up at {{ $labels.instance }}, has been above 90% for the last 15 minutes, is currently at {{ printf "%.2f" $value }}%. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodememoryhighutilization summary: Host is running out of memory. expr: | 100 - (node_memory_MemAvailable_bytes{job="node-exporter"} / node_memory_MemTotal_bytes{job="node-exporter"} * 100) > 90 for: 15m labels: severity: warning - alert: NodeDiskIOSaturation annotations: description: | Disk IO queue (aqu-sq) is high on {{ $labels.device }} at {{ $labels.instance }}, has been above 10 for the last 30 minutes, is currently at {{ printf "%.2f" $value }}. This symptom might indicate disk saturation. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodediskiosaturation summary: Disk IO queue is high. expr: | rate(node_disk_io_time_weighted_seconds_total{job="node-exporter", device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"}[5m]) > 10 for: 30m labels: severity: warning - alert: NodeSystemdServiceFailed annotations: description: Systemd service {{ $labels.name }} has entered failed state at {{ $labels.instance }} runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemdservicefailed summary: Systemd service has entered failed state. expr: | node_systemd_unit_state{job="node-exporter", state="failed"} == 1 for: 5m labels: severity: warning - alert: NodeBondingDegraded annotations: description: Bonding interface {{ $labels.master }} on {{ $labels.instance }} is in degraded state due to one or more slave failures. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodebondingdegraded summary: Bonding interface is degraded expr: | (node_bonding_slaves - node_bonding_active) != 0 for: 5m labels: severity: warning - name: node-exporter.rules rules: - expr: | count without (cpu, mode) ( node_cpu_seconds_total{job="node-exporter",mode="idle"} ) record: instance:node_num_cpu:sum - expr: | 1 - avg without (cpu) ( sum without (mode) (rate(node_cpu_seconds_total{job="node-exporter", mode=~"idle|iowait|steal"}[5m])) ) record: instance:node_cpu_utilisation:rate5m - expr: | ( node_load1{job="node-exporter"} / instance:node_num_cpu:sum{job="node-exporter"} ) record: instance:node_load1_per_cpu:ratio - expr: | 1 - ( ( node_memory_MemAvailable_bytes{job="node-exporter"} or ( node_memory_Buffers_bytes{job="node-exporter"} + node_memory_Cached_bytes{job="node-exporter"} + node_memory_MemFree_bytes{job="node-exporter"} + node_memory_Slab_bytes{job="node-exporter"} ) ) / node_memory_MemTotal_bytes{job="node-exporter"} ) record: instance:node_memory_utilisation:ratio - expr: | rate(node_vmstat_pgmajfault{job="node-exporter"}[5m]) record: instance:node_vmstat_pgmajfault:rate5m - expr: | rate(node_disk_io_time_seconds_total{job="node-exporter", device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"}[5m]) record: instance_device:node_disk_io_time_seconds:rate5m - expr: | rate(node_disk_io_time_weighted_seconds_total{job="node-exporter", device=~"(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)"}[5m]) record: instance_device:node_disk_io_time_weighted_seconds:rate5m - expr: | sum without (device) ( rate(node_network_receive_bytes_total{job="node-exporter", device!="lo"}[5m]) ) record: instance:node_network_receive_bytes_excluding_lo:rate5m - expr: | sum without (device) ( rate(node_network_transmit_bytes_total{job="node-exporter", device!="lo"}[5m]) ) record: instance:node_network_transmit_bytes_excluding_lo:rate5m - expr: | sum without (device) ( rate(node_network_receive_drop_total{job="node-exporter", device!="lo"}[5m]) ) record: instance:node_network_receive_drop_excluding_lo:rate5m - expr: | sum without (device) ( rate(node_network_transmit_drop_total{job="node-exporter", device!="lo"}[5m]) ) record: instance:node_network_transmit_drop_excluding_lo:rate5m#kubectl edit prometheusrule node-exporter-rules -n monitoring 可以直接修改 - alert: NodeMemoryHighUtilization annotations: description: | Memory is filling up at {{ $labels.instance }}, has been above 90% for the last 15 minutes, is currently at {{ printf "%.2f" $value }}%. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodememoryhighutilization summary: Host is running out of memory. expr: | 100 - (node_memory_MemAvailable_bytes{job="node-exporter"} / node_memory_MemTotal_bytes{job="node-exporter"} * 100) > 90 for: 15m labels: severity: warning annotations: 是注释信息/展示信息，不会参与告警匹配逻辑，但会出现在告警详情、通知内容里。常见用来放：描述、摘要、排障链接、负责人等。 alert: NodeMemoryHighUtilization 含义：告警规则的名字（Alert name）。在告警列表里显示的名称； Alertmanager 路由/分组/抑制（silence）时经常用它做匹配条件；下游通知（钉钉/飞书/Slack/邮件）里也会带这个名字。 description: | | 表示 多行字符串（保留换行）。 内容： Memory is filling up at {{ $labels.instance }}, has been above 90% for the last 15 minutes, is currently at {{ printf "%.2f" $value }}%. 这里用的是 Alertmanager 的模板变量（Go template 风格）： {{ $labels.instance }} 会被替换成该时间序列的 label 值，比如 10.0.0.12:9100。 这个 label 来自 metrics 本身（node-exporter 指标通常会带 instance）。 {{ $value }} 触发告警时表达式的计算值（这里是“内存使用率百分比”）。 printf "%.2f" 把数值格式化为 保留 2 位小数（比如 91.23%）。 注意：模板渲染发生在 告警发送/展示阶段，不影响 expr 的计算。 runbook_url: ... 含义：Runbook（排障手册）链接。 用途：当值班同学收到告警，点进去能看到： 常见原因； 排查步骤； 缓解/修复方法； 需要升级到谁。 这里链接指向 prometheus-operator 官方 runbook：nodememoryhighutilization。 summary: Host is running out of memory. 含义：一句话摘要。 用途：很多通知渠道会优先展示 summary，适合“短、明确”。 expr: | expr 是 PromQL 表达式，决定“什么时候触发告警”。 表达式： 100 - (node_memory_MemAvailable_bytes{job="node-exporter"} / node_memory_MemTotal_bytes{job="node-exporter"} node_memory_MemAvailable_bytes 来自：node-exporter（Linux 主机）。 含义：系统“可用内存”字节数（大致等于在不严重影响性能前提下可立即分配的内存，包括可回收 page cache 等）。 比 MemFree 更实用：MemFree 只算完全空闲，不算 cache/buffer 的可回收部分，容易误判。 node_memory_MemTotal_bytes 含义：总内存字节数。 node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100计算：可用内存占比（%）。 100 - (...)计算：已使用内存占比（%）。 使用率 = 100% - 可用率 > 90 阈值：使用率超过 90% 才算触发条件成立。 {job="node-exporter"} label 过滤器：只选 job label 为 node-exporter 的时间序列。 为什么需要：如果同名指标来自多个采集 job，用它避免混杂；也能减少误匹配。 可调整：如果你在 Prometheus 里 job 名不是 node-exporter，就得改这里，否则永远算不出来/不触发。 for: 15m 含义：表达式条件需要 连续成立 15 分钟 才“真正触发”（从 Pending 变成 Firing）。 用途： 抑制抖动（比如短时间内存尖峰、瞬时 load）。 避免频繁通知。 与你的文案对应：description 写了 “above 90% for the last 15 minutes”，就是呼应 for: 15m。 注意： 如果指标中断、抓取失败、或者值掉下阈值又上来，计时会重置。 labels: labels 是告警标签，会参与 Alertmanager 路由、分组、去重。 severity: warning 含义：告警级别。 用途： Alertmanager 根据 severity 把告警发到不同渠道（warning 走群通知，critical 走电话/短信）。 也可用于抑制策略（warning 被 critical 覆盖等）。 常见约定：info / warning / critical（团队可自定义，但要统一）。 #或者直接改yaml文件 然后apply 我是没有helm部署的 直接apply https://axzys.cn/index.php/archives/423/ root@k8s-01:/woke/prometheus/kube-prometheus/manifests# grep -R "NodeMemoryHighUtilization" nodeExporter-prometheusRule.yaml: - alert: NodeMemoryHighUtilization root@k8s-01:/woke/prometheus/kube-prometheus/manifests# 改了 直接apply 也可以
一、代码#初始化目录 cd ~ mkdir feishu-forwarder cd feishu-forwarder go mod init feishu-forwarder #Dockerfile FROM golang:1.24.2-alpine AS build WORKDIR /src COPY go.mod ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o /out/feishu-forwarder . FROM gcr.io/distroless/static:nonroot COPY --from=build /out/feishu-forwarder /feishu-forwarder EXPOSE 8080 USER nonroot:nonroot ENTRYPOINT ["/feishu-forwarder"] #main.go package main import ( "bytes" "context" "crypto/hmac" "crypto/sha256" "encoding/base64" "encoding/hex" "encoding/json" "io" "log" "math/rand" "net/http" "os" "sort" "strings" "sync" "time" ) type Alert struct { Status string `json:"status"` Labels map[string]string `json:"labels"` Annotations map[string]string `json:"annotations"` StartsAt string `json:"startsAt"` EndsAt string `json:"endsAt"` GeneratorURL string `json:"generatorURL"` Fingerprint string `json:"fingerprint"` // Alertmanager webhook 通常会带；没有也没关系 } type AMPayload struct { Status string `json:"status"` Receiver string `json:"receiver"` ExternalURL string `json:"externalURL"` GroupKey string `json:"groupKey"` CommonLabels map[string]string `json:"commonLabels"` Alerts []Alert `json:"alerts"` } // webhook body：text 用 content；card 用 card type FeishuBody struct { Timestamp string `json:"timestamp,omitempty"` Sign string `json:"sign,omitempty"` MsgType string `json:"msg_type"` Content map[string]interface{} `json:"content,omitempty"` Card map[string]interface{} `json:"card,omitempty"` } type Target struct { Webhook string Secret string Name string // 用于日志 } type Config struct { // 路由：按 severity 选择目标群 WebhooksCritical string WebhooksWarning string WebhooksDefault string SecretCritical string SecretWarning string SecretDefault string // 消息类型：card / text MsgType string // 去重窗口 DedupTTL time.Duration // 重试 RetryMax int RetryBase time.Duration // 限流（全局） RateQPS float64 RateBurst int // HTTP SendTimeout time.Duration } func loadConfig() Config { cfg := Config{ WebhooksCritical: strings.TrimSpace(os.Getenv("FEISHU_WEBHOOKS_CRITICAL")), WebhooksWarning: strings.TrimSpace(os.Getenv("FEISHU_WEBHOOKS_WARNING")), WebhooksDefault: strings.TrimSpace(os.Getenv("FEISHU_WEBHOOKS_DEFAULT")), SecretCritical: strings.TrimSpace(os.Getenv("FEISHU_SECRET_CRITICAL")), SecretWarning: strings.TrimSpace(os.Getenv("FEISHU_SECRET_WARNING")), SecretDefault: strings.TrimSpace(os.Getenv("FEISHU_SECRET_DEFAULT")), MsgType: strings.ToLower(strings.TrimSpace(os.Getenv("FEISHU_MSG_TYPE"))), DedupTTL: mustParseDuration(getEnvDefault("DEDUP_TTL", "10m")), RetryMax: mustParseInt(getEnvDefault("RETRY_MAX", "3")), RetryBase: mustParseDuration(getEnvDefault("RETRY_BASE", "300ms")), RateQPS: mustParseFloat(getEnvDefault("RATE_QPS", "2")), // 每秒2条 RateBurst: mustParseInt(getEnvDefault("RATE_BURST", "5")), // 突发5条 SendTimeout: mustParseDuration(getEnvDefault("SEND_TIMEOUT", "6s")), } if cfg.MsgType != "text" && cfg.MsgType != "card" { cfg.MsgType = "card" } // 兼容：如果你只设置了旧的 FEISHU_WEBHOOKS/FEISHU_SECRET if cfg.WebhooksDefault == "" { cfg.WebhooksDefault = strings.TrimSpace(os.Getenv("FEISHU_WEBHOOKS")) } if cfg.SecretDefault == "" { cfg.SecretDefault = strings.TrimSpace(os.Getenv("FEISHU_SECRET")) } return cfg } /* ============ 去重（内存 TTL） ============ */ type Deduper struct { mu sync.Mutex ttl time.Duration data map[string]time.Time } func NewDeduper(ttl time.Duration) *Deduper { d := &Deduper{ ttl: ttl, data: make(map[string]time.Time), } go d.gcLoop() return d } func (d *Deduper) Allow(key string) bool { if d.ttl <= 0 { return true } now := time.Now() d.mu.Lock() defer d.mu.Unlock() if t, ok := d.data[key]; ok { if now.Sub(t) < d.ttl { return false } } d.data[key] = now return true } func (d *Deduper) gcLoop() { t := time.NewTicker(1 * time.Minute) defer t.Stop() for range t.C { now := time.Now() d.mu.Lock() for k, v := range d.data { if now.Sub(v) > d.ttl*2 { delete(d.data, k) } } d.mu.Unlock() } } /* ============ 简单全局限流（token bucket） ============ */ type RateLimiter struct { ch chan struct{} stop chan struct{} } func NewRateLimiter(qps float64, burst int) *RateLimiter { if qps <= 0 { return nil } if burst < 1 { burst = 1 } rl := &RateLimiter{ ch: make(chan struct{}, burst), stop: make(chan struct{}), } // 初始塞满 burst for i := 0; i < burst; i++ { rl.ch <- struct{}{} } interval := time.Duration(float64(time.Second) / qps) if interval < 10*time.Millisecond { interval = 10 * time.Millisecond } go func() { t := time.NewTicker(interval) defer t.Stop() for { select { case <-t.C: select { case rl.ch <- struct{}{}: default: } case <-rl.stop: return } } }() return rl } func (rl *RateLimiter) Acquire(ctx context.Context) error { if rl == nil { return nil } select { case <-ctx.Done(): return ctx.Err() case <-rl.ch: return nil } } /* ============ 飞书签名 ============ */ func genFeishuSign(secret, timestamp string) string { stringToSign := timestamp + "\n" + secret mac := hmac.New(sha256.New, []byte(stringToSign)) sum := mac.Sum(nil) return base64.StdEncoding.EncodeToString(sum) } /* ============ severity 路由 ============ */ func getSeverity(p AMPayload) string { s := strings.ToLower(strings.TrimSpace(p.CommonLabels["severity"])) if s == "" && len(p.Alerts) > 0 { s = strings.ToLower(strings.TrimSpace(p.Alerts[0].Labels["severity"])) } switch s { case "critical", "fatal", "sev0", "sev1": return "critical" case "warning", "warn", "sev2": return "warning" default: return "default" } } func splitWebhooks(s string) []string { s = strings.TrimSpace(s) if s == "" { return nil } parts := strings.Split(s, ",") var out []string for _, x := range parts { x = strings.TrimSpace(x) if x != "" { out = append(out, x) } } return out } func selectTargets(cfg Config, sev string) []Target { var whs []string var secret string var name string switch sev { case "critical": whs = splitWebhooks(cfg.WebhooksCritical) secret = cfg.SecretCritical name = "critical" case "warning": whs = splitWebhooks(cfg.WebhooksWarning) secret = cfg.SecretWarning name = "warning" default: whs = splitWebhooks(cfg.WebhooksDefault) secret = cfg.SecretDefault name = "default" } // fallback：如果 critical/warning 没配，则退回 default if len(whs) == 0 { whs = splitWebhooks(cfg.WebhooksDefault) secret = cfg.SecretDefault name = "default(fallback)" } var out []Target for _, w := range whs { out = append(out, Target{Webhook: w, Secret: secret, Name: name}) } return out } /* ============ 去重 key ============ */ func alertKey(a Alert) string { if a.Fingerprint != "" { return a.Fingerprint } // 没 fingerprint 就用 labels 自己算一个稳定 hash keys := make([]string, 0, len(a.Labels)) for k := range a.Labels { keys = append(keys, k) } sort.Strings(keys) var b strings.Builder for _, k := range keys { b.WriteString(k) b.WriteString("=") b.WriteString(a.Labels[k]) b.WriteString(";") } sum := sha256.Sum256([]byte(b.String())) return hex.EncodeToString(sum[:]) } /* ============ 消息构建 ============ */ func formatText(p AMPayload, alerts []Alert) string { var b strings.Builder b.WriteString("【Alertmanager】" + strings.ToUpper(p.Status) + "\n") if v := p.CommonLabels["alertname"]; v != "" { b.WriteString("alertname: " + v + "\n") } if v := p.CommonLabels["severity"]; v != "" { b.WriteString("severity: " + v + "\n") } b.WriteString("alerts: ") b.WriteString(intToString(len(alerts))) b.WriteString("\n\n") for i, a := range alerts { b.WriteString("#") b.WriteString(intToString(i + 1)) b.WriteString(" ") if an := a.Labels["alertname"]; an != "" { b.WriteString(an) } if inst := a.Labels["instance"]; inst != "" { b.WriteString(" @ " + inst) } b.WriteString("\n") if s := a.Annotations["summary"]; s != "" { b.WriteString("summary: " + s + "\n") } if d := a.Annotations["description"]; d != "" { b.WriteString("desc: " + d + "\n") } if a.GeneratorURL != "" { b.WriteString("url: " + a.GeneratorURL + "\n") } b.WriteString("\n") } return b.String() } func buildCard(p AMPayload, sev string, alerts []Alert) map[string]interface{} { alertname := p.CommonLabels["alertname"] if alertname == "" && len(alerts) > 0 { alertname = alerts[0].Labels["alertname"] } // 颜色：FIRING + critical 用 red；warning 用 orange；resolved 用 green template := "blue" if strings.ToLower(p.Status) == "firing" { if sev == "critical" { template = "red" } else if sev == "warning" { template = "orange" } else { template = "blue" } } else { template = "green" } title := "[" + strings.ToUpper(p.Status) + "][" + sev + "] " + alertname + " (" + intToString(len(alerts)) + ")" // 内容用 markdown，最多展示前 5 条（避免卡片过长） maxShow := 5 show := alerts more := 0 if len(alerts) > maxShow { show = alerts[:maxShow] more = len(alerts) - maxShow } var md strings.Builder md.WriteString("**Receiver:** " + p.Receiver + "\n") if p.ExternalURL != "" { md.WriteString("**Alertmanager:** " + p.ExternalURL + "\n") } md.WriteString("\n") for i, a := range show { an := a.Labels["alertname"] inst := a.Labels["instance"] md.WriteString("**#" + intToString(i+1) + "** " + an) if inst != "" { md.WriteString(" @ `" + inst + "`") } md.WriteString("\n") if s := a.Annotations["summary"]; s != "" { md.WriteString("- **summary:** " + s + "\n") } if d := a.Annotations["description"]; d != "" { md.WriteString("- **desc:** " + d + "\n") } if a.StartsAt != "" { md.WriteString("- **startsAt:** " + a.StartsAt + "\n") } if a.GeneratorURL != "" { md.WriteString("- **url:** " + a.GeneratorURL + "\n") } md.WriteString("\n") } if more > 0 { md.WriteString("…还有 **" + intToString(more) + "** 条未展开\n") } // 如果有 generatorURL，就加一个按钮（取第一条有 url 的） btnURL := "" for _, a := range alerts { if a.GeneratorURL != "" { btnURL = a.GeneratorURL break } } elements := []interface{}{ map[string]interface{}{"tag": "markdown", "content": md.String()}, } if btnURL != "" { elements = append(elements, map[string]interface{}{"tag": "hr"}, map[string]interface{}{ "tag": "action", "actions": []interface{}{ map[string]interface{}{ "tag": "button", "text": map[string]interface{}{"tag": "plain_text", "content": "打开规则/图表"}, "type": "primary", "url": btnURL, }, }, }, ) } card := map[string]interface{}{ "config": map[string]interface{}{ "wide_screen_mode": true, }, "header": map[string]interface{}{ "title": map[string]interface{}{"tag": "plain_text", "content": title}, "template": template, }, "elements": elements, } return card } /* ============ 发送：重试 + 限流 ============ */ type httpError struct { code int body string } func (e *httpError) Error() string { if e.body != "" { return "http status " + intToString(e.code) + " body=" + e.body } return "http status " + intToString(e.code) } func isRetryableStatus(code int) bool { return code == 429 || code >= 500 } func doPost(ctx context.Context, client *http.Client, url string, payload []byte) error { req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewReader(payload)) req.Header.Set("Content-Type", "application/json") resp, err := client.Do(req) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode/100 == 2 { return nil } // 读一点返回体，方便排查（最多 2KB） b, _ := io.ReadAll(io.LimitReader(resp.Body, 2048)) return &httpError{code: resp.StatusCode, body: strings.TrimSpace(string(b))} } func sendWithRetry(ctx context.Context, rl *RateLimiter, cfg Config, t Target, body FeishuBody) error { client := &http.Client{Timeout: cfg.SendTimeout} payload, _ := json.Marshal(body) r := rand.New(rand.NewSource(time.Now().UnixNano())) var lastErr error for i := 0; i < cfg.RetryMax; i++ { // 限流：每次尝试都要拿 token（避免重试时把飞书打爆） if err := rl.Acquire(ctx); err != nil { return err } err := doPost(ctx, client, t.Webhook, payload) if err == nil { return nil } lastErr = err // 只有可重试错误才重试 retry := false if he, ok := err.(*httpError); ok { retry = isRetryableStatus(he.code) } else { retry = true // 网络错误等 } if !retry || i == cfg.RetryMax-1 { break } // 退避：base * 2^i + jitter(0~100ms) sleep := cfg.RetryBase * time.Duration(1<<i) sleep += time.Duration(r.Intn(100)) * time.Millisecond select { case <-ctx.Done(): return ctx.Err() case <-time.After(sleep): } } return lastErr } func buildFeishuBody(cfg Config, sev string, p AMPayload, alerts []Alert, webhookSecret string) FeishuBody { ts := "" sign := "" if webhookSecret != "" { ts = int64ToString(time.Now().Unix()) sign = genFeishuSign(webhookSecret, ts) } if cfg.MsgType == "text" { return FeishuBody{ Timestamp: ts, Sign: sign, MsgType: "text", Content: map[string]interface{}{ "text": formatText(p, alerts), }, } } // card return FeishuBody{ Timestamp: ts, Sign: sign, MsgType: "interactive", Card: buildCard(p, sev, alerts), } } /* ============ helpers ============ */ func getEnvDefault(k, def string) string { v := strings.TrimSpace(os.Getenv(k)) if v == "" { return def } return v } func mustParseDuration(s string) time.Duration { d, err := time.ParseDuration(s) if err != nil { return 0 } return d } func mustParseInt(s string) int { n := 0 for _, ch := range s { if ch >= '0' && ch <= '9' { n = n*10 + int(ch-'0') } } if n == 0 { return 0 } return n } func mustParseFloat(s string) float64 { // 简易 parse：支持 "2" "2.5" var n, frac, div float64 div = 1 seenDot := false for _, ch := range s { if ch == '.' { seenDot = true continue } if ch < '0' || ch > '9' { continue } if !seenDot { n = n*10 + float64(ch-'0') } else { frac = frac*10 + float64(ch-'0') div *= 10 } } return n + frac/div } func intToString(x int) string { return int64ToString(int64(x)) } func int64ToString(x int64) string { if x == 0 { return "0" } neg := x < 0 if neg { x = -x } var buf [32]byte i := len(buf) for x > 0 { i-- buf[i] = byte('0' + x%10) x /= 10 } if neg { i-- buf[i] = '-' } return string(buf[i:]) } /* ============ main ============ */ func main() { log.SetFlags(log.LstdFlags | log.Lmicroseconds) cfg := loadConfig() deduper := NewDeduper(cfg.DedupTTL) rl := NewRateLimiter(cfg.RateQPS, cfg.RateBurst) http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write([]byte("ok")) }) http.HandleFunc("/alertmanager", func(w http.ResponseWriter, r *http.Request) { if r.Method != "POST" { w.WriteHeader(405) return } var p AMPayload if err := json.NewDecoder(r.Body).Decode(&p); err != nil { log.Printf("decode failed: remote=%s err=%v", r.RemoteAddr, err) w.WriteHeader(400) w.Write([]byte(err.Error())) return } sev := getSeverity(p) log.Printf("recv webhook: remote=%s status=%s receiver=%s alerts=%d severity=%s alertname=%s", r.RemoteAddr, p.Status, p.Receiver, len(p.Alerts), sev, p.CommonLabels["alertname"]) // 去重（只对 firing 做，resolved 不去重，避免“恢复消息被吞”） alertsToSend := make([]Alert, 0, len(p.Alerts)) suppressed := 0 for _, a := range p.Alerts { if strings.ToLower(p.Status) == "firing" && cfg.DedupTTL > 0 { key := "firing:" + alertKey(a) if !deduper.Allow(key) { suppressed++ continue } } alertsToSend = append(alertsToSend, a) } if len(alertsToSend) == 0 { log.Printf("dedup suppressed all alerts: suppressed=%d total=%d", suppressed, len(p.Alerts)) w.WriteHeader(200) w.Write([]byte("ok")) return } targets := selectTargets(cfg, sev) if len(targets) == 0 { log.Printf("no targets configured for severity=%s", sev) w.WriteHeader(500) w.Write([]byte("no targets configured")) return } okCount := 0 failCount := 0 // 给本次请求一个总体 deadline（避免 handler 卡太久） ctx, cancel := context.WithTimeout(r.Context(), cfg.SendTimeout*time.Duration(cfg.RetryMax+1)) defer cancel() for _, t := range targets { body := buildFeishuBody(cfg, sev, p, alertsToSend, t.Secret) err := sendWithRetry(ctx, rl, cfg, t, body) if err != nil { log.Printf("send failed: group=%s target=%s err=%v", t.Name, t.Webhook, err) failCount++ continue } log.Printf("send ok: group=%s target=%s", t.Name, t.Webhook) okCount++ } log.Printf("send summary: ok=%d fail=%d targets=%d suppressed=%d severity=%s", okCount, failCount, len(targets), suppressed, sev) if okCount == 0 { w.WriteHeader(502) w.Write([]byte("failed")) return } w.WriteHeader(200) w.Write([]byte("ok")) }) addr := ":8080" log.Printf("listening on %s msgType=%s dedup=%s retryMax=%d rateQps=%.2f burst=%d", addr, cfg.MsgType, cfg.DedupTTL, cfg.RetryMax, cfg.RateQPS, cfg.RateBurst) log.Fatal(http.ListenAndServe(addr, nil)) } 二、构建部署docker build -t harbor.axzys.cn/monitoring/feishu-forwarder:0.1.0 . docker push harbor.axzys.cn/monitoring/feishu-forwarder:0.1.0 .cat feishu.yaml apiVersion: apps/v1 kind: Deployment metadata: name: feishu-forwarder namespace: monitoring spec: replicas: 1 selector: matchLabels: { app: feishu-forwarder } template: metadata: labels: { app: feishu-forwarder } spec: containers: - name: app image: harbor.axzys.cn/monitoring/feishu-forwarder:0.1.2 imagePullPolicy: Always ports: - containerPort: 8080 env: - name: FEISHU_WEBHOOKS_CRITICAL valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_WEBHOOKS_CRITICAL } } - name: FEISHU_WEBHOOKS_WARNING valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_WEBHOOKS_WARNING } } - name: FEISHU_WEBHOOKS_DEFAULT valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_WEBHOOKS_DEFAULT } } - name: FEISHU_SECRET_CRITICAL valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_SECRET_CRITICAL } } - name: FEISHU_SECRET_WARNING valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_SECRET_WARNING } } - name: FEISHU_SECRET_DEFAULT valueFrom: { secretKeyRef: { name: feishu-forwarder-secret, key: FEISHU_SECRET_DEFAULT } } - name: FEISHU_MSG_TYPE value: "card" # card / text - name: DEDUP_TTL value: "10m" - name: RETRY_MAX value: "3" - name: RETRY_BASE value: "300ms" - name: RATE_QPS value: "2" - name: RATE_BURST value: "5" - name: SEND_TIMEOUT value: "6s" readinessProbe: httpGet: { path: /healthz, port: 8080 } initialDelaySeconds: 2 periodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: feishu-forwarder namespace: monitoring spec: selector: { app: feishu-forwarder } ports: - name: http port: 8080 targetPort: 8080 type: ClusterIP cat feishu-secret.yaml apiVersion: v1 kind: Secret metadata: name: feishu-forwarder-secret namespace: monitoring type: Opaque stringData: FEISHU_WEBHOOKS_CRITICAL: "https://open.feishu.cn/open-apis/bot/v2/hook/飞书token" FEISHU_WEBHOOKS_WARNING: "https://open.feishu.cn/open-apis/bot/v2/hook/飞书token" FEISHU_WEBHOOKS_DEFAULT: "https://open.feishu.cn/open-apis/bot/v2/hook/xxxx" # 如果你开了“签名校验”，不同群机器人 secret 往往不同 FEISHU_SECRET_CRITICAL: "SEC_xxx" FEISHU_SECRET_WARNING: "SEC_yyy" FEISHU_SECRET_DEFAULT: "SEC_zzz" cat alertmanagerConfig.yaml apiVersion: monitoring.coreos.com/v1alpha1 kind: AlertmanagerConfig metadata: name: feishu-forwarder namespace: monitoring labels: alertmanagerConfig: main # 这行是否需要，取决于你的 Alertmanager 选择器 spec: route: receiver: feishu-forwarder groupWait: 30s groupInterval: 5m repeatInterval: 30m receivers: - name: feishu-forwarder webhookConfigs: - url: http://feishu-forwarder.monitoring.svc:8080/alertmanager sendResolved: true root@k8s-01:/woke/prometheus/feishu# kubectl get pod -n monitoring NAME READY STATUS RESTARTS AGE alertmanager-main-0 2/2 Running 0 7d2h alertmanager-main-1 2/2 Running 0 7d2h alertmanager-main-2 2/2 Running 0 7d2h blackbox-exporter-7fcbd888d-zv6z6 3/3 Running 0 15d feishu-forwarder-8559bf6b68-njzvq 1/1 Running 0 68m grafana-7ff454c477-l9x2k 1/1 Running 0 15d kube-state-metrics-78f95f79bb-wpcln 3/3 Running 0 15d node-exporter-2vq26 2/2 Running 2 (35d ago) 39d node-exporter-622pm 2/2 Running 24 (35d ago) 39d node-exporter-rl67z 2/2 Running 22 (35d ago) 39d prometheus-adapter-585d9c5dd5-bfsxw 1/1 Running 0 8d prometheus-adapter-585d9c5dd5-pcrnd 1/1 Running 0 8d prometheus-k8s-0 2/2 Running 0 7d2h prometheus-k8s-1 2/2 Running 0 7d2h prometheus-operator-78967669c9-5pk25 2/2 Running 0 7d2h 三、调试 kubectl -n monitoring port-forward svc/alertmanager-main 19093:9093 kubectl -n monitoring logs -f deploy/feishu-forwarder curl -i -X POST http://127.0.0.1:19093/api/v2/alerts \ -H 'Content-Type: application/json' \ -d '[{ "labels":{"alertname":"axingWarning","severity":"warning","instance":"demo:9100","namespace":"monitoring"}, "annotations":{"summary":"injected warning","description":"from alertmanager api"}, "startsAt":"'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'" }]'操作过程中出现了 prometheus 已经告警 并且已经到Alertmanager了 但是 feishu-forwarder 没有收到 解决方法 是加上 不然他只会通知monitoring这个名称空间的告警信息 matchers: - name: prometheus value: monitoring/k8s 还有就是InfoInhibitor 一直刷屏通知告警 有两种解决方法 一、就是改上面的feishu-secret把FEISHU_WEBHOOKS_DEFAULT注释掉 还有一种就是下面这种只通知warning/critical root@k8s-01:/woke/prometheus/feishu# cat alertmanagerConfig.yaml apiVersion: monitoring.coreos.com/v1alpha1 kind: AlertmanagerConfig metadata: name: feishu-forwarder namespace: monitoring labels: alertmanagerConfig: main spec: route: receiver: feishu-forwarder groupWait: 30s groupInterval: 5m repeatInterval: 30m matchers: - name: prometheus value: monitoring/k8s matchType: "=" # 建议：只推 warning/critical，InfoInhibitor(severity=none) 就不会再刷飞书 - name: severity value: warning|critical matchType: "=~" receivers: - name: feishu-forwarder webhookConfigs: - url: http://feishu-forwarder.monitoring.svc:8080/alertmanager sendResolved: true
一、升级最稳妥的 LTS 逐级升级（推荐） 先补齐本线最后一个补丁：2.516.3（把 2.516 线能拿到的修复先吃满） 升到下一条 LTS 基线：2.528.3（过渡 LTS 线） 升到当前在维护的 LTS：2.541.1（截至 2026-02-05 仍是主流 LTS） 这么做的好处：每一步跨度小，遇到插件/鉴权问题更容易定位；并且升级指南也建议如果跳 LTS，要把中间每段的升级注意事项都看一遍。root@k8s-01:/woke/jenkins# cat deployment.yaml # jenkins-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: jenkins namespace: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: securityContext: fsGroup: 1000 serviceAccountName: jenkins-admin containers: - name: jenkins image: registry.cn-guangzhou.aliyuncs.com/xingcangku/jenkins-jenkins-lts-jdk17:lts-jdk17 imagePullPolicy: IfNotPresent ports: - containerPort: 8080 - containerPort: 50000 # ★ JVM 参数 env: - name: JENKINS_JAVA_OPTIONS value: "-Djava.net.preferIPv4Stack=true" - name: JAVA_OPTS value: "-Djava.net.preferIPv4Stack=true" volumeMounts: - name: jenkins-data mountPath: /var/jenkins_home # ★ 新增挂载，把每个节点上的 /root/cicd 挂进 Jenkins 家目录 - name: cicd-tools mountPath: /var/jenkins_home/cicd resources: limits: cpu: "1" memory: "4Gi" requests: cpu: "0.5" memory: "1Gi" livenessProbe: httpGet: path: /login port: 8080 initialDelaySeconds: 90 periodSeconds: 10 volumes: - name: jenkins-data persistentVolumeClaim: claimName: jenkins-pvc # ★ 新增 volume，使用 hostPath 指向每个节点的 /root/cicd - name: cicd-tools hostPath: path: /root/cicd type: Directory # 如果想让 k8s 自动创建目录，也可以用： # type: DirectoryOrCreate
一、流量走势NodePort → ingressgateway Service → ingressgateway Pod(Envoy) → Gateway 筛选 → VirtualService 路由 → productpage Service:9080 → productpage Pod #如果不是NodePort 就需要kubectl port-forward -n istio-system --address 0.0.0.0 svc/istio-ingressgateway 8080:80 进行端口暴露 只需要记住一点svc只是负责把流量转发到对应的pod 而网关和路由的匹配则是istio-ingressgateway进行处理二、对应的yaml文件cat gateway.yaml apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: bookinfo-gateway namespace: default spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" root@k8s-01:/woke/istio# kubectl get virtualservice bookinfo -n default -o yaml apiVersion: networking.istio.io/v1 kind: VirtualService metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"networking.istio.io/v1beta1","kind":"VirtualService","metadata":{"annotations":{},"name":"bookinfo","namespace":"default"},"spec":{"gateways":["bookinfo-gateway"],"hosts":["*"],"http":[{"match":[{"uri":{"prefix":"/"}}],"route":[{"destination":{"host":"productpage","port":{"number":9080}}}]}]}} creationTimestamp: "2025-12-31T05:30:04Z" generation: 1 name: bookinfo namespace: default resourceVersion: "8121204" uid: b0fd2c20-35ab-475c-8c1a-d6dc36749ce8 spec: gateways: - bookinfo-gateway hosts: - '*' http: - match: - uri: prefix: / route: - destination: host: productpage port: number: 9080三、对应svc和podroot@k8s-01:/woke/istio# kubectl get pod NAME READY STATUS RESTARTS AGE bookinfo-gateway-istio-6c4c8d9b74-z7c4j 1/1 Running 0 18d details-v1-7b88fb8889-5qt26 2/2 Running 0 33d nginx-5fd58574d-2c9z9 2/2 Running 0 13d nginx-test-78b8db46d6-cfd98 2/2 Running 0 13d productpage-v1-79d79d6-mktpd 2/2 Running 0 33d ratings-v1-5b89cf4bbf-c9xdg 2/2 Running 0 33d reviews-v1-ffd57b847-w9dkr 2/2 Running 0 33d reviews-v2-8cc6fd8dc-q9bd9 2/2 Running 0 33d reviews-v3-cf48455-znts5 2/2 Running 0 33d traefik-gw-istio-7867b4f544-hkknj 1/1 Running 0 18d root@k8s-01:/woke/istio# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE bookinfo-gateway-istio ClusterIP 10.105.38.228 <none> 15021/TCP,80/TCP 18d details ClusterIP 10.100.97.40 <none> 9080/TCP 35d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 78d nginx ClusterIP 10.110.220.61 <none> 80/TCP 60d nginx-svc NodePort 10.108.4.45 <none> 80:32574/TCP 77d productpage ClusterIP 10.111.145.105 <none> 9080/TCP 35d ratings ClusterIP 10.98.94.10 <none> 9080/TCP 35d reviews ClusterIP 10.97.19.38 <none> 9080/TCP 35d traefik-gw-istio LoadBalancer 10.103.179.128 <pending> 15021:31055/TCP,8000:30447/TCP 18d root@k8s-01:/woke/istio# kubectl get pod -n istio-system NAME READY STATUS RESTARTS AGE istio-egressgateway-596f455c4f-7qh6w 1/1 Running 0 13d istio-ingressgateway-796f5cf647-tcpph 1/1 Running 0 13d istiod-5c84f8c79d-ddxkz 1/1 Running 0 13d kiali-68f9949bf5-8n4tk 1/1 Running 6 (13d ago) 13d prometheus-7f6bc65664-29c7c 0/2 Completed 0 18d prometheus-7f6bc65664-llp2q 2/2 Running 0 5d root@k8s-01:/woke/istio# kubectl get svc -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-egressgateway ClusterIP 10.106.183.187 <none> 80/TCP,443/TCP 35d istio-ingressgateway NodePort 10.99.189.246 <none> 15021:31689/TCP,80:32241/TCP,443:30394/TCP,31400:31664/TCP,15443:32466/TCP 35d istiod ClusterIP 10.104.189.5 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 35d istiod-revision-tag-default ClusterIP 10.102.152.242 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 35d kiali NodePort 10.103.234.52 <none> 20001:30318/TCP,9090:30682/TCP 34d prometheus ClusterIP 10.100.183.52 <none> 9090/TCP 34d root@k8s-01:/woke/istio#