0%

前段时间接到一个需求,希望可以监控 Nginx 的运行状态。

我们都知道 Nginx 作为一个流行的 Web 服务器提供了多种能力,包括反向代理、负载均衡;也支持了许多协议,包括:

  • gRPC
  • http
  • WebSocket 等
    作为一个流量入口的中间件,对其的监控就显得至关重要了。
Read more »

背景

Pulsar 有提供一个查询 Broker 负载的接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    /**
* Get load for this broker.
*
* @return
* @throws PulsarAdminException
*/
LoadManagerReport getLoadReport() throws PulsarAdminException;

public interface LoadManagerReport extends ServiceLookupData {

ResourceUsage getCpu();

ResourceUsage getMemory();

ResourceUsage getDirectMemory();

ResourceUsage getBandwidthIn();

ResourceUsage getBandwidthOut();
}

可以返回一些 broker 的负载数据,比如 CPU、内存、流量之类的数据。

Read more »

之前有朋友问如何做集成测试,今天就重点讲讲这个集成测试在开源项目中是如何做的。

通常是需要对外提供服务的开源项目都需要集成测试:

原文链接:https://medium.com/@andreiboar/5-small-tips-i-recently-learned-in-go-cf52d50cf129

让编译器计算数组数量

我们在 Go 通常很少使用数组 arrays,一般使用切片 Slice 来代替;

但是当你需要使用的时候,如果你对需要指定数量大小感到很烦时可以使用 [...] 让编译器自动帮我们计算数组大小:

1
2
3
4
5
6
7
8
9
10
11
12
package main  

import "fmt"

func main() {
arr := [3]int{1, 2, 3}
sameArr := [...]int{1, 2, 3} // Use ... instead of 3

// Arrays are equivalent
fmt.Println(arr)
fmt.Println(sameArr)
}
Read more »

在之前写过两篇比较系统的关于 OpenTelemetry 的文章:

从基本概念到如何部署 demo 实战了解 OpenTelemetry,从那个 demo 中也可以得知整个 OpenTelemetry 体系的复杂性,包含了太多的组件和概念。

为了能更清晰的了解每个关键组件的作用以及原理,我打算分为几期来讲解 OpenTelemetry 的三个核心组件:

  • Trace
  • Metrics
  • Logs

首先以 Trace 讲起。

Read more »