关于云计算:云原生爱好者周刊揪出-Prometheus-中时间戳抖动

27次阅读

共计 6589 个字符,预计需要花费 17 分钟才能阅读完成。

开源我的项目举荐

O11y toolkit

O11y toolkit 是一个工具集,用来保护、调试和加强你的可观测性零碎,改善咱们日常对指标、日志和链路追踪的应用体验。例如 oy-scrape-jitter 就是用来解决 Prometheus 抓取的指标工夫戳距离不统一的问题。Prometheus 应用的是 delta-of-delta 编码和工夫戳 XOR 压缩技术,这就意味着当指标抓取的工夫距离完全一致时,一个工夫戳存储到 TSDB 中只需占用一个比特(bit),能够大大节俭磁盘的空间。尽管从实践上来说 Promtheus 每次抓取指标的距离应该是一样的,但实际上会呈现抖动的状况,抓取距离并不是完全一致的,因而会节约磁盘空间。oy-scrape-jitter 能够找出那些抓取距离产生抖动的指标,例如:

$ ./oy-scrape-jitter --prometheus.url=https://prometheus.demo.do.prometheus.io/ --plot.file=jitter.png
level=info metric="up{env=\"demo\", instance=\"demo.do.prometheus.io:9093\", job=\"alertmanager\"}" aligned=239 unaligned=0 max_ms=0 pc=100.00%
level=info metric="up{env=\"demo\", instance=\"demo.do.prometheus.io:9100\", job=\"node\"}" aligned=233 unaligned=6 max_ms=23 pc=97.49%
level=info metric="up{instance=\"demo.do.prometheus.io:3000\", job=\"grafana\"}" aligned=237 unaligned=2 max_ms=14 pc=99.16%
level=info metric="up{instance=\"demo.do.prometheus.io:8996\", job=\"random\"}" aligned=179 unaligned=60 max_ms=2 pc=74.90%
level=info metric="up{instance=\"demo.do.prometheus.io:8997\", job=\"random\"}" aligned=239 unaligned=0 max_ms=0 pc=100.00%
level=info metric="up{instance=\"demo.do.prometheus.io:8998\", job=\"random\"}" aligned=237 unaligned=2 max_ms=3 pc=99.16%
level=info metric="up{instance=\"demo.do.prometheus.io:8999\", job=\"random\"}" aligned=237 unaligned=2 max_ms=4 pc=99.16%
level=info metric="up{instance=\"demo.do.prometheus.io:9090\", job=\"prometheus\"}" aligned=237 unaligned=2 max_ms=8 pc=99.16%
level=info metric="up{instance=\"http://localhost:9100\", job=\"blackbox\"}" aligned=233 unaligned=6 max_ms=2 pc=97.49%
level=info metric="up{instance=\"localhost:2019\", job=\"caddy\"}" aligned=239 unaligned=0 max_ms=0 pc=100.00%
level=info aligned_targets=3 unaligned_targets=7 max_ms=23

输入后果里有一条是这样的:

level=info metric="up{instance=\"demo.do.prometheus.io:8996\", job=\"random\"}" aligned=179 unaligned=60 max_ms=2 pc=74.90%

这示意指标 {instance="demo.do.prometheus.io:8996", job="random"} 有超过 25% 的样本抓取工夫距离不统一。

Korb

Korb 能够用来在 Kubernetes 集群中将 PVC 迁徙到不同的 StorageClasses 中。例如:

$ ./korb --new-pvc-storage-class ontap-ssd redis-data-redis-master-0
DEBU[0000] Created client from kubeconfig                component=migrator kubeconfig=/home/jens/.kube/config
DEBU[0000] Got current namespace                         component=migrator namespace=prod-beryju-org
DEBU[0000] Got Source PVC                                component=migrator name=redis-data-redis-master-0 uid=e4b5476f-b965-4e81-bfee-d7cbbf4f6317
DEBU[0000] No new Name given, using old name             component=migrator
DEBU[0000] Compatible Strategies:                        component=migrator
DEBU[0000] Copy the PVC to the new Storage class and with new size and a new name, delete the old PVC, and copy it back to the old name.  component=migrator
DEBU[0000] Only one compatible strategy, running         component=migrator
DEBU[0000] Set timeout from PVC size                     component=strategy strategy=copy-twice-name timeout=8m0s
WARN[0000] This strategy assumes you've stopped all pods accessing this data.  component=strategy strategy=copy-twice-name
DEBU[0000] creating temporary PVC                        component=strategy stage=1 strategy=copy-twice-name
DEBU[0002] starting mover job                            component=strategy stage=2 strategy=copy-twice-name
DEBU[0004] Pod not in correct state yet                  component=mover-job phase=Pending
DEBU[0006] Pod not in correct state yet                  component=mover-job phase=Pending
[...]
[mover logs]: sending incremental file list
[mover logs]: ./
[mover logs]: appendonly.aof
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
[mover logs]: dump.rdb
            175 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=0/3)
DEBU[0022] Cleaning up successful job                    component=mover-job
DEBU[0022] deleting original PVC                         component=strategy stage=3 strategy=copy-twice-name
DEBU[0024] creating final destination PVC                component=strategy stage=4 strategy=copy-twice-name
DEBU[0024] starting mover job to final PVC               component=strategy stage=5 strategy=copy-twice-name
DEBU[0026] Pod not in correct state yet                  component=mover-job phase=Pending
DEBU[0028] Pod not in correct state yet                  component=mover-job phase=Pending
[...]
[mover logs]: sending incremental file list
[mover logs]: ./
[mover logs]: appendonly.aof
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
[mover logs]: dump.rdb
            175 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=0/3)
DEBU[0048] Cleaning up successful job                    component=mover-job
DEBU[0048] deleting temporary PVC                        component=strategy stage=6 strategy=copy-twice-name
INFO[0050] And we're done                                component=strategy strategy=copy-twice-name
INFO[0050] Cleaning up...                                component=strategy strategy=copy-twice-name

websocat

websocat 与 curl 相似,但专门为 Websockets 而设计,更便于测试 Websockets。例如:

A$ websocat -s 1234
Listening on ws://127.0.0.1:1234/
ABC
123

B$ websocat ws://127.0.0.1:1234/
ABC
123

《站点可靠性工作手册》中文版

本书是 Google SRE 工作手册的续集,偏实际,这是本书的中文翻译。

文章举荐

疾速上手 OpenFunction Node.js 异步函数服务开发

近日,“OpenFunction 顺利通过了云原生计算基金会 CNCF 技术监督委员会(TOC)的投票,正式进入 CNCF 沙箱(Sandbox)托管”。作为 OpenFunction 社区的一份子,十分期待能有更多开发者和合作伙伴参加到我的项目中来,独特建设和倒退社区,“使 Serverless 函数与利用运行更简略”!同时,作为 Node.js 函数框架(Function Framework)目前的 Maintainer 之一,也想借此机会和大家分享一下 Node.js 函数框架最近的研发停顿,特地是在 0.4.1 版本中曾经实现的对于异步函数的反对。

本文将从以下几方面来介绍 Node.js 函数框架目前的研发停顿和之后的工作瞻望。

国星宇航 SaaS 零碎容器化最佳实际

国星宇航是一家 Al 卫星互联网科技公司,冀望基于 K8s 搭建 PaaS 云计算根底平台,多租户治理应用资源,集成 CI/CD、反对灵便扩容与降级集群,构建企业级一站式 DevOps 架构,进步集群资源可监控性,可溯源操作审计。本文介绍了国星宇航如何应用 KubeSphere 来实现这个指标。

应用 Cilium Service Mesh 实现新一代的双向认证

双向认证(Mutual Authentication)始终是平安的基石,咱们日常应用的 SSH、mTLS 或 IPsec 等协定和技术都依赖于双向认证,云原生的世界也不例外,咱们心愿应用弱小的双向认证来确保 Kubernetes 和整个云原生基础设施中服务之间的互相通信。

这篇文章钻研了 Cilium 和 Cilium Service Mesh 是如何利用 eBPF 为服务提供一种新的基于身份的双向认证的形式,其高性能的数据立体能够反对任何网络协议,而不须要对应用程序进行更改,也无需注入 Sidecar。

云原生动静

存储容量跟踪在 Kubernetes 1.24 中达到通用规范

Kubernetes 1.24 版本将存储容量跟踪作为一个广泛可用的性能。

存储容量跟踪容许 CSI 驱动公布对于残余容量的信息。而后,当 Pod 具备仍须要配置的卷时,kube-scheduler 应用该信息为 Pod 抉择适合的节点。

如果没有这些信息,Pod 可能会被卡住而无奈被安顿到适合的节点上,因为 kube-scheduler 不得不自觉抉择而且最终总是抉择一个无奈配置卷的节点,因为由 CSI 驱动程序治理的底层存储系统的确如此没有足够的容量。

因为 CSI 驱动程序公布的存储容量信息在当前可能不再是最新的时候被应用,所以依然可能会产生一个节点被选中而最终无奈失常工作。卷配置通过告诉调度程序它须要应用不同的节点重试来从中复原。

KubeKey 2.1.0 公布,加强 K8s 离线交付体验

2022 年 5 月 6 日,KubeKey 2.1.0 正式公布,这是 KubeKey 的第 8 个正式版本。该版本加强了离线部署能力和交付体验,同时反对“一云多芯”,即同一个 K8s 集群中能够同时蕴含 ARM64 节点和 AMD64 节点。

KubeKey v2.1.0 不兼容 KubeKey v2.0.0 制作的制品,请应用 KubeKey v2.1.0 从新导出 KubeKey 制品。这是因为 KubeKey v2.1.0 优化了制品的存储构造。目前制品采纳 OCI 规范对镜像进行拉取和归档保留,实现了复用根底镜像层,其存储空间占用可升高近一半。

Argo CD 公布 v2.4 RC 版本

日前,Argo CD 公布了第一个 v2.4 候选版本。该版本有以下变动:

  • Argo CD 提供了一个 web 用户界面,作为一个超级弱小的 Kubernetes 仪表板,帮忙开发人员更好地理解他们的应用程序;
  • 引入了额定的访问控制设置,以管制对 Kubernetes Pod 日志和新的 Web 终端性能的拜访;
  • v2.4 版本引入了 OpenTelemery 追踪集成,为 Argo CD 操作器(operator)提供了更多可见性;
  • 反对的架构列表曾经扩大,当初包含 IBM Z(s390x)和 PowerPC(ppc64le)。从 v2.4 版本开始,官网 quay.io 仓库将提供 amd64、arm64、ppc64le 和 s390x 架构的镜像。

无关更多详细信息和装置阐明,请查看公布阐明和降级阐明。

Docker 提供 Docker Extensions,实用于 Linux 的 Docker Desktop

Docker 在其产品组合中增加了新产品,以帮忙开发人员查找工具并将其增加到 Docker Desktop,并帮助开发人员在基于 Linux 的零碎上工作。

在 DockerCon 2022 虚构会议上,Docker 发表了 Docker Extensions 和实用于 Linux 的 Docker Desktop。由多个合作伙伴构建的 Docker 扩大可帮忙开发人员免去装置、配置和治理新工具的繁琐工作。

为了进步开发人员的工作效率,Docker Desktop for Linux 预装了 Docker Compose、Docker CLI 和 Kubernetes 等工具,简化了该工具的装置和更新过程。

2022 年欧洲 KubeCon + CloudNativeCon 行将开启

2022 年 5 月 16 日至 5 月 20 日,KubeCon + CloudNativeCon Europe 2022 将在西班牙的瓦伦西亚,线下 + 线上同步召开!

此次盛会,失去了国内外泛滥 IT 巨头的鼎力支持,汇聚了寰球最沉闷的开源云原生社区、最先进的技术代表以及最优良的行业落地实际!

OpenFunction 的创始人霍秉杰将于北京工夫 5 月 18 日 21:25-22:00 带来主题分享:用云原生 Serverless 技术赋能主动驾驶。欢送大家关注!

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0