背景:我将使用OpenFaaS(在Kubernetes中运行)进行一些实验,在其中我将调用多个异步执行请求。 OpenFaaS使用NATS流将这些请求排队,以执行异步功能。
我需要的是一种确定此NATS流式队列大小的方法,这样我就可以知道队列中有多少个项目。是否有命令获取NATS流式队列中项目的大小或数量?我搜索了Google和NATS文档,但没有发现任何用处。
我确实从here中找到了kubectl logs deployment/queue-worker -n openfaas
命令,该命令显示了队列的日志。但是,这并不是我想要的(我想要队列中剩余的项目数,而不是队列的完整日志)。
最佳答案
您可以在NATS中启用monitoring endpoint,以获取一些常规endpoints进行查询,这些查询可以下至特定通道。
然后,您可能需要通过一个Ingress在Kubernetes中公开该端点的服务以进行外部访问,如果您想进一步控制哪些端点及其公开方式。
看一看nats-streaming-ft Helm 表中的模板。
将监视端口添加到您的容器spec
spec:
containers:
- name: nats-streaming
args:
- /opt/nats-streaming-server
- --http_port=8222
并将所选的监视端口连接到
ports
中的Service
列表。apiVersion: v1
kind: Service
metadata:
name: nats-monitoring
labels:
app: nats
spec:
selector:
app: nats
ports:
- name: monitoring
protocol: TCP
port: 8222