小编wor*_*rum的帖子

使用 Loki 和 Promtail 解密 Grafana 中的 Docker 容器名称

我的任务是为大约 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)

monitoring docker grafana grafana-loki promtail

3
推荐指数
1
解决办法
1456
查看次数

如何输出对切片的前 N ​​个元素的迭代?

我需要获取申请人的名字、名字和 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)

你能帮我输出切片名称吗?

go slice

1
推荐指数
1
解决办法
5942
查看次数

标签 统计

docker ×1

go ×1

grafana ×1

grafana-loki ×1

monitoring ×1

promtail ×1

slice ×1