Pulsar 详解 - 索引目录
命令行工具 pulsar-admin 提供了丰富的功能来管理 Pulsar 集群和监控其运行状态。
pulsar-admin 是 Pulsar 的官方命令行工具,可以通过以下方式安装:
1、使用 Pulsar 的二进制包自带的 pulsar-admin
2、或者通过 Pulsar 的源码构建 pulsar-admin
pulsar-admin clusters list
这个命令用于列出当前 Pulsar 集群中的所有集群。
pulsar-admin tenants list
这个命令用于列出当前 Pulsar 集群中的所有租户。
pulsar-admin namespaces list my-tenant
这个命令用于列出指定租户下的所有命名空间。
pulsar-admin topics list my-tenant/my-namespace
这个命令用于列出指定命名空间下的所有主题。
pulsar-admin persistent-stats my-tenant/my-namespace/my-topic
这个命令用于查看指定主题的持久化订阅的统计信息,包括消费者组的消费情况。
pulsar-admin broker-stats
这个命令用于查看整个 Pulsar 集群的状态信息,包括各个 broker 的状态、吞吐量等。
Pulsar 提供了多个关键性能指标,以便管理员能够有效地监控集群的运行状况。
Pulsar 提供了 Prometheus 集成,使得收集和展示监控指标变得非常方便。
在 Pulsar 集群的 broker 配置中,启用 Prometheus Exporter:
prometheusMetrics: true
在 Prometheus 的配置文件中,添加 Pulsar 相关的 job 配置:
- job_name: 'pulsar'
static_configs:
- targets: ['pulsar-broker:9090'] # Pulsar broker 的地址
示例演示如何使用 Prometheus 客户端库来收集和展示 Pulsar 监控指标:
package main
import (
"net/http"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
func main() {
// 启动 HTTP 服务器,监听 /metrics 路径
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":9090", nil)
}
通过访问 http://localhost:9090/metrics,你可以查看到 Pulsar 相关的监控指标。确保你的 Pulsar broker 配置了 Prometheus Exporter,并在 Prometheus 中配置了相应的 job。
在 Apache Pulsar 的管理和监控中,集成工具如 Grafana 和 Prometheus 能够提供强大的监控和可视化功能。
在 Pulsar 集群的 broker 配置文件中启用 Prometheus Exporter:
prometheusMetrics: true
在 Prometheus 的配置文件中添加 Pulsar 相关的 job 配置:
- job_name: 'pulsar'
static_configs:
- targets: ['pulsar-broker:9090'] # Pulsar broker 的地址
这样 Prometheus 就能够从 Pulsar broker 收集监控指标。
首先,安装 Grafana。可以通过官方网站或者包管理工具进行安装。
在 Grafana 中添加 Prometheus 数据源,配置 Prometheus 的地址(默认是 http://localhost:9090)。
创建一个新的仪表盘,并添加图表。在图表的查询设置中,选择刚刚添加的 Prometheus 数据源,并使用 Pulsar 相关的 Prometheus 查询语句。
以下是一个示例查询语句,用于显示 Pulsar 集群的消息入站速率:
rate(pulsar_messages_in_total{job="pulsar"}[1m])
你可以根据需求调整查询语句,显示不同的监控指标。
为了演示 Prometheus 和 Grafana 集成,可以使用以下示例代码创建一个简单的 HTTP 服务器,监听 /metrics 路径,以供 Prometheus 抓取指标:
package main
import (
"net/http"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
func main() {
// 启动 HTTP 服务器,监听 /metrics 路径
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":9090", nil)
}
确保你的 Pulsar broker 配置了 Prometheus Exporter,Prometheus 中配置了相应的 job,然后在 Grafana 中创建仪表盘,使用 Pulsar 相关的 Prometheus 查询语句即可。