1

背景:我将使用 OpenFaaS(在 Kubernetes 中运行)进行一些实验,其中我将调用几个异步执行请求。OpenFaaS 使用 NATS Streaming 将这些请求排队以执行异步函数。

我需要的是一种方法来确定这个 NATS 流队列的大小,这样我就可以知道队列中有多少项目。是否有获取 NATS 流队列中项目大小或数量的命令?我搜索了 Google 和 NATS 文档,没有发现任何用处。

我确实kubectl logs deployment/queue-worker -n openfaas这里找到了显示队列日志的命令;但是,这并不是我想要的(我想要队列中剩余的项目数,而不是队列的完整日志)。

4

1 回答 1

2

您可以在 NATS 中启用监控端点,以获取许多要查询的通用端点,这些端点可以进入特定通道。

然后,您需要在 Kubernetes 中为该端点公开一个服务以供外部访问,如果您想更好地控制哪些端点及其公开方式,可能通过 Ingress。

查看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
于 2019-07-30T01:45:54.050 回答