Clickhouse存储Trace调研 Jun 28, 2022

clickhouse是开源的纯列式数据库,定位是OLAP数据库。因为他的一些特性,也广泛用于监控领域,一方面代替时序数据库,存储多维度指标,另一方面也用于存储trace数据。这个博客的目的就是调研下业界如何使用clickhouse存储trace的,围绕表结构和查询sql语句展开,主要调研uptrace的实现。

...
Opentelemetry Java自动埋点实现 Jun 22, 2022

Opentelemetry是怎么做链路追踪的介绍了opentelemetry的API和SDK实现,也介绍了如何进行手动买点。这篇博客是介绍如何进行自动埋点,这当然要用到javaagent技术了。Java Agent实现指南有写过javaagent的实现指南和类加载的坑,今天看看opentelemetry是如何做的,其github地址是opentelemetry-java-instrumentation,接下来应该就是跟着代码流水账了。

...
Go GC初探 Jun 16, 2022 Go目前的GC方案是三色标记法+混合写屏障。 Golang的垃圾回收(GC)算法使用的是无无分代(对象没有代际之分)、不整理(回收过程中不对对象进行移动与整理)、并发(与用户代码并发执行)的三色标记清扫算法。原因在于: 对象整理的优势是解决内存碎片问题以及“允许”使用顺序内存分配器。但 Go 运行时的分配算法基于tcmalloc ...
Caddy源码阅读 Jun 14, 2022 之前我们用了caddy的forwardproxy插件,来看看他是怎么做的 go内置的http服务器实现 http.ListenAndServe(":8080", nil) 如上即可启动go内置的http服务器,第二个参数是nil,于是go会使用内置的handler,代码如下 func (sh serverHandler) ServeHTTP(rw ResponseWriter, req *Request) { handler := sh.srv.Handler if handler == nil { // 如果为nil,则使用内置的ServeMux handler = DefaultServeMux } if req.RequestURI == "*" && req.Method == "OPTIONS" { handler = globalOptionsHandler{} } handler.ServeHTTP(rw, req) ...
GO PProf使用 Jun 2, 2022

记录下如何使用pprof

...
dd安装rhel8 May 10, 2022

centos8没有了,虽然Red Hat推出了开发者计划,允许用户使用免费的rhel8,但是云服务厂商普遍没有提供rhel8的镜像,一般的用户还是没有办法在vps上用上rhel8,就连centos8的替代品rocky linux、almalinux大部分云服务厂商也没有提供。

这个博客就是介绍下,如何在公有云vps上通过dd写盘安装rhel8系统。

...
Shell编程笔记 May 8, 2022

个人搞了很多零散的shell脚本,开个博客统一整理下

...
Skywalking v8.9.1 源码阅读 Apr 20, 2022

skywalking搞了STAM流拓扑分析方法,具体见README-cn.md,简单来说就是将上游的Service、Service Instance等信息放在下游span中,从而一个span就具有上游Service和下游Service的信息,从而直接聚合出一个依赖关系,避免了通过时间窗口聚合。

这篇博客的内容是从STAM实现到skywalking的整体架构。

...
Skywalking v8.9.1文档学习 Apr 19, 2022

看看skywalking

...
pipeline模式的一种实现 Apr 19, 2022

一种流式编程的代码

...