datastax/pulsar-heartbeatPulsar Heartbeat是一款云原生应用,用于监控Pulsar集群的可用性,跟踪消息发布订阅延迟,并报告集群故障。它通过生成合成工作负载来测量端到端消息发布订阅延迟,支持在Kubernetes集群中通过Helm安装,适用于Pulsar集群的运维监控和性能评估。
适用于需要对Pulsar集群进行实时监控的场景,包括:
Pulsar Heartbeat通过YAML或JSON配置文件驱动,配置文件优先级顺序为:
PULSAR_OPS_MONITOR_CFG./pulsar-heartbeat -config /path/to/config.yml../config/runtime.yml配置文件模板可参考 runtime-template.yml。
工具在 /metrics 端点暴露符合Prometheus规范的指标,可供采集,指标如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| pulsar_pubsub_latency_ms | gauge | 端到端消息发布订阅延迟(毫秒) |
| pulsar_pubsub_latency_ms_hst | summary | 端到端消息延迟直方图摘要(50%、90%、99%分位数) |
| pulsar_websocket_latency_ms | gauge | WebSocket接口的端到端消息发布订阅延迟(毫秒) |
| pulsar_k8s_bookkeeper_offline_counter | gauge | Kubernetes集群中BookKeeper离线实例数 |
| pulsar_k8s_broker_offline_counter | gauge | Kubernetes集群中Broker离线实例数 |
| pulsar_k8s_proxy_offline_counter | gauge | Kubernetes集群中Proxy离线实例数 |
| pulsar_k8s_bookkeeper_zookeeper_counter | gauge | Kubernetes集群中ZooKeeper离线实例数 |
| pulsar_monitor_counter | counter | 心跳总数计数器 |
| pulsar_tenant_size | gauge | 租户数量(作为admin接口健康指标) |
Pulsar Heartbeat可部署在同一Pulsar Kubernetes集群内,仅在此部署模式下支持Kubernetes监控和单个Broker监控。
官方Docker镜像可从 Docker Hub 获取。
bash$ docker-compose up
需将配置文件挂载到默认路径 /config/runtime.yml,以下命令启动容器并暴露Prometheus指标端口:
bash$ docker run -d -it -v $HOME/go/src/github.com/datastax/pulsar-heartbeat/config/runtime-astra.yml:/config/runtime.yml -p 8080:8080 --name=pulsar-heartbeat datastax/pulsar-heartbeat:latest
支持Helm 3版本,可通过以下方式安装:
可在 Pulsar Helm Chart 中配置启用。
可直接在 DataStax Pulsar Chart 中启用。
运行以下脚本构建应用、执行静态分析、单元测试,并生成二进制文件:
bash$ ./scripts/ci.sh
通过多阶段构建生成Docker镜像:
bash$ make
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务