
构建跨平台 Go 服务
背景 过去,我一直在使用 x86_64 架构的 MacBook Pro 进行开发,服务器环境则是 x86_64 架构的 CentOS,因此从未担心过多架构的 Docker 镜像构建问题。 然而,公司最近更新了一批 M1 MacBook Pro。 ...

背景 过去,我一直在使用 x86_64 架构的 MacBook Pro 进行开发,服务器环境则是 x86_64 架构的 CentOS,因此从未担心过多架构的 Docker 镜像构建问题。 然而,公司最近更新了一批 M1 MacBook Pro。 ...

悬挂镜像 sonarnotify 在 CI/CD 中用到了 Docker 多阶段构建。 在构建完成后,即使每次都删掉了构建后的镜像,通过 docker images 还是能发现一些标签为 的镜像。经过查阅资料发现,这些镜像称为悬挂镜像(dangling image)。 ...
简介 在官方文档中,关于 relabel 的介绍并不多,介绍下配置项格式就结束了。但在实际使用上,我们却离不开这个利器。 本文将结合实际使用经验,将 relabel 的使用场景做一个总结。 ...
tcpdump 抓包 1 tcpdump -Xnlps0 -nn -iany port 9001 -w 9001.pcap 参数说明: -X: 显示包的内容(十六进制和 ASCII) -n: 不将地址转换为名字 -l: 使标准输出行缓冲 -p: 不让网卡进入混杂模式 -s0: 抓取完整的数据包 -nn: 不将协议和端口转换为名字 -iany: 监听所有网络接口 -w: 将原始数据包写入文件 容器 Debug Kubectl Debug 1 kubectl debug -it redis-sentinel-master-ss-0 --image=reg.smvm.cn/appbase/debug-tools:latest --target=redis-master 这个命令会创建一个新的容器,共享目标容器的网络、PID 和 IPC 命名空间,方便进行调试。 ...
RPC 技术分享 RPC 介绍 远程过程调用(Remote Procedure Call 缩写 RPC)是一个计算机通信协议,通俗来讲就是调用远程服务上的一个函数,在调用时将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端,客户端调用 server 端提供的接口就像是调用本地的函数一样。 RPC 的消息可以通过 TCP、UDP 或者 HTTP 等传输。 ...
如何控制 Prometheus 保留多少历史记录? Prometheus 将时间序列及其样本存储在磁盘上。鉴于磁盘空间是一种有限资源,我们希望对 Prometheus 使用的磁盘空间进行一些限制。在以前的版本中,使用 --storage.tsdb.retention 参数即可完成配置。这个参数指定 Prometheus 将保持可用的时间范围。这是最低要求,因此如果其中一些仍在保留窗口内,它将保留整个块。如果您知道每秒样本的摄取率,那么您可以将其乘以每个样本的字节数(1.5ish,为了安全起见为 2)和保留时间,以了解将使用多少磁盘空间。 ...
准备工作 安装 delve 项目代码 1 2 git clone git@git.baijiashilian.com:web/demo/go-debug-demo.git git clone git@git.baijiashilian.com:web/gotools/gitlab-tools.git 调试工具 delve delve 安装 https://github.com/go-delve/delve/tree/master/Documentation/installation 1 go install github.com/go-delve/delve/cmd/dlv@latest dlv 配置 1 ~/.dlv/config.yml 调试方式 本地调试 从源码开始编译并开始调试 1 dlv debug [package] [flags] 调试已经编译好的二进制文件 1 dlv exec ./hello -- args1 args2 编译的时候需要禁用编译器优化:go build -gcflags="-N -l" 编译选项有哪些:go tool compile -h 调试正在运行的进程 1 dlv attach pid [executable] [flags] 调试单元测试 1 dlv test [package] [flags] 远程调试 JSON-RPC & DAP 1 dlv --headless --listen 0.0.0.0:2345 <command> <target> <args> 兼容dlv connect、VS Code Go、GoLand ...
在 Alertmanager 中有三个跟周期相关的参数,分别是 group_wait, group_interval, repeat_interval。合理地配置参数,有利于降低告警频率,避免告警风暴产生。 在深入了解这三个参数之前,首先需要关注到 Prometheus 中也有两个周期函数,scrape_interval 与 evaluation_interval。 ...
Prometheus 除了提供时序数据库和监控系统存在,其本身也对外提供了 Web 服务,用于提供报表展示及表达式计算,以及用于更新配置文件等功能的 API。 处于安全考虑,在对外的 Web 服务里,我们需要增加身份认证。Prometheus 提供 Basic Auth 身份认证。 ...
概念 Kubernetes 中,Pod 内部进程想要访问 API Server,就需要用到 ServiceAccount。ServiceAccount 类似业务系统里的账户,用于为 Pod 提供身份。 ...