我的任务是为大约 70 个容器配置 Docker 日志监控。将所有日志合并到一个面板中并不理想,尤其是在压力测试和监控 Docker 应用程序期间。我希望能够在面板中选择 Docker 容器应用程序并查看相应的日志。我已经实现了这一点,但问题是容器名称是加密的,我需要解密它们。
我的问题是:如何使用 Loki 数据源和 Promtail 解密容器名称?
此外,我注意到 Prometheus 数据源显示解密的容器名称,但 Loki 数据源则不显示。这是我对两者的配置:
另外,我像普通应用程序一样运行 Loki 和 Promtail,并配置了 systemd 守护进程。洛基:
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2021-03-08
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb:
directory: /tmp/loki/index
Run Code Online (Sandbox Code Playgroud)
宣传尾声:
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: …Run Code Online (Sandbox Code Playgroud) 我需要获取申请人的名字、名字和 GPA,然后只输出前 N 个申请人。比如我有5个申请者,但是只有N=3可以通过。为了完成这项任务,我决定使用结构体切片。
该结构如下所示:
type Applicant struct {
firstName string
secondName string
GPA float64
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个切片并初始化它:
applicants := []Applicant{}
...
fmt.Scan(&firstName, &lastName, &GPA)
applicants = append(applicants, Applicant{firstName, lastName, GPA})
Run Code Online (Sandbox Code Playgroud)
现在我的任务是仅输出GPA 最高的前 3 位申请人的姓名。我已经将 GPA 从最好到最差进行了排序。
我尝试像这样进行输出申请者切片,但出现错误:
for _, applicant := range applicants {
fmt.Println(applicant.secondName + " " + applicant.secondName)
}
Run Code Online (Sandbox Code Playgroud)
你能帮我输出切片名称吗?