可观测性主要包括三个方面:追踪(traces)、指标(metrics)和日志(logs)。
OpenTelemetry 的指标功能还是测试状态,没有实现日志的功能,日志可以用其他流行的日志库记录,然后收集到类似ELK的日志系统里面。
追踪数据存储后端是用`jaeger`,指标数据存储后端是用`prometheus`。
前面几个文章实现的是追踪,本文主要讲一下指标。
指标数据直接用`prometheus`的go客户端生成也是一样的,不一定需要用`OpenTelemetry`提供的库。
`OpenTelemetry`的方式是先创建`exporter`和`provider`,之后就可以生成指标了,`main.go`:
```go
import (
"...
发布日期:
2023-05-17
分类:
Go
浏览量:
1753
[上一篇文章](https://360us.net/article/87.html)用的是http协议做服务间的调用协议,这篇改成gRPC。
首先安装包`otelgrpc`:
```shell
go get go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc
```
创建一个`api`目录,创建`rpc.proto`文件:
```protobuf
syntax = "proto3";
package api;
// advanced目录执行编译: protoc --go_out=. --go_opt=paths=source_relative --go...
发布日期:
2023-05-14
分类:
Go
浏览量:
1215
从上一篇入门:[https://www.360us.net/article/86.html](https://www.360us.net/article/86.html)我们知道用OpenTelemetry实现应用的可观测性需要三个部分:
- `exporter`:负责遥测数据输出,可以输出到控制台,文件,后端存储或者中间的收集节点服务器。
- `instrumentation `:这个部分就是产生追踪数据,也就是创建`span`。
- `TracerProvider`:扮演了中间角色,把生成的遥测数据输出到`exporter`。
目前Go是不支持自动追踪的,一些公共库可以在这里https://opentelemetry.io/ecosystem/registry/?lang...
发布日期:
2023-05-11
分类:
Go
浏览量:
1183
> 本文定位是快速入门,理解OpenTelemetry在go里面的基本使用
>
> 参考文档:https://opentelemetry.io/docs/instrumentation/go/getting-started
Go 版本需要是1.16以上。
创建一个名字是`fib`的go项目,就一个功能计算斐波那契数列。
创建三个文件:
`fib.go`测试项目的核心,功能是计算斐波那契数列。
```go
package main
import "fmt"
// Fibonacci 计算斐波那契数
func Fibonacci(n uint) (uint64, error) {
if n ...
发布日期:
2023-05-09
分类:
Go
浏览量:
1222
基于ZooKeeper和etcd实现服务的注册和发现功能的原理。
## ZooKeeper
### 服务注册
利用临时节点的特性,创建一个服务的临时节点,写入服务信息数据,不断监视节点续期,当服务不可用时会话超时,临时节点会被删除。
### 服务发现
服务发现是利用`watch`的特性,首先获取一遍需要的服务信息,保存在本地,然后给这个服务节点添加`watch`,监视变化和更新。
## etcd
### 服务注册
服务注册是利用了etcd租约的特性。
首先创建一个定时的租约,比如10秒,20秒等。
然后带租约存储服务信息,不断的续期租约,当服务不可用时,租约过期,服务数据就会被删除,就相当于心跳保活了。
### 服务发现
...
发布日期:
2023-01-17
分类:
Go
浏览量:
768
微服务知识图谱,微服务组件图,微服务结构图
![微服务知识图谱](https://360us.net/images/2022/202208242357.png)...
发布日期:
2022-08-25
分类:
后端
浏览量:
906