我的设置:Loki:2.1.0,Grafana:6.7.3
我的软件在 Kubernetes 上运行,Loki 收集其日志。它看起来像这样:
[2021-03-29 10:13:05] [INFO] Q_len=256 sol_q=0.049 info_q=0.240
[2021-03-29 10:13:05] [INFO] Q_len=196 sol_q=0.047 info_q=0.144
Run Code Online (Sandbox Code Playgroud)
我在日志中使用了 logfmt,因此 loki 可以检测到我的字段:
](https://i.stack.imgur.com/JFqOb.png)
现在我想要info_q在 Grafana 上绘制一段时间内的平均值。这是我尝试过的事情:
avg by (info) (avg_over_time({job="ism/ism-core-es"} | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q [1m]))
Run Code Online (Sandbox Code Playgroud)
正如错误消息所示,我做了
avg by (info) (avg_over_time({job="ism/ism-core-es"} | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q | __error__="" [1m] ))
Run Code Online (Sandbox Code Playgroud)
返回空图表。和这个
avg_over_time(
{job="ism/ism-core-es"}
| regexp ".*info_q=(?P<info_q>.*?)"
| unwrap info_q [5m])
Run Code Online (Sandbox Code Playgroud)
也不返回任何内容。
我究竟做错了什么?我必须输入cast吗?任何帮助表示赞赏!
如您所知,我可以df[df.column.isin(set)]获取DataFrame中该列值所在的部分。但是现在我的源集取决于column1的值。在过滤数据帧时,如何使函数查找字典成为旅途中源集的字典?
假设我有
dict1={'a':[1,2,3],'b':[1,2],'c':[4,5,6]}
Run Code Online (Sandbox Code Playgroud)
而我的df看起来像
column1 column2
a 4
b 2
c 6
Run Code Online (Sandbox Code Playgroud)
新的df应该看起来像
column1 column2
b 2
c 6
Run Code Online (Sandbox Code Playgroud)
由于列表中没有4,因此dict1中的“ a”指向。
new_df = df[df.column2.isin(dict1[df.column1])]
这给我TypeError。我了解了,因为我将pd.Series用作键,并且不可哈希。
我正在使用 python Locust 包对 Kubernetes 上运行的服务 API 进行负载测试。
我在源代码中看到它HttpUser用于requests.session.request()发送请求。默认情况下requests.session保持连接处于活动状态(这会导致所有请求都发送到一个 pod,而不是分布到 Kubernetes 上的所有 pod)。我知道在每个请求后关闭连接的唯一方法是connection: close在初始化 时设置requests.session,这是在 Locust 中从我那里抽象出来的。
我尝试添加headers={'connection':'close'}请求调用,但这并没有成功。所有请求仍然发送到同一个 Pod。有人知道如何在运行时更改此设置吗?