从现在开始,我们要努力学习啦!今天我给大家带来《使用 sarama 监控 Kafka 生产者和消费者的性能数据》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
问题内容我正在尝试使用 sarama 获取 kafka 生产者/消费者指标。但我找不到任何关于如何执行相同操作的示例。有人可以提供示例实现示例吗?
我使用以下代码来获取经纪人的指标。但是获取生产者/消费者指标的配置应该是什么。我假设它不会相同。如果我错了请纠正我
saramaConfig := sarama.NewConfig()
saramaConfig.Version = <BrokerVersion>
client, err := sarama.NewClient(<brokerAddresses>, saramaConfig)
if err != nil {
log.Println("Unable to create sarama client")
panic(err)
}
config := client.Config()
MeanIncomingByteRate := metrics.GetOrRegisterMeter(getMetricNameForTopic("incoming-byte-rate", topic), config.MetricRegistry).RateMean(),
正确答案
我从来没有合作过。但我会尽力回答。
您应该将 go-metrics
注册表注册到配置中。
这是如何创建注册表并使用它的示例 (https://pkg.go.dev/gopkg.in/Shopify/sarama.v2#example-Config-Metrics):
// our application registry
appmetricregistry := metrics.newregistry()
appgauge := metrics.getorregistergauge("m1", appmetricregistry)
appgauge.update(1)
config := newconfig()
// use a prefix registry instead of the default local one
config.metricregistry = metrics.newprefixedchildregistry(appmetricregistry, "sarama.")
// simulate a metric created by sarama without starting a broker
saramagauge := metrics.getorregistergauge("m2", config.metricregistry)
saramagauge.update(2)
metrics.writeonce(appmetricregistry, os.stdout)
所以你应该创建注册表并将其设置为配置
appMetricRegistry := metrics.NewRegistry()
appGauge := metrics.GetOrRegisterGauge("m1", appMetricRegistry)
appGauge.Update(1)
saramaConfig := sarama.NewConfig()
saramaConfig.Version = <BrokerVersion>
// set it here
saramaConfig.MetricRegistry = metrics.NewPrefixedChildRegistry(appMetricRegistry, "sarama.")
client, err := sarama.NewClient(<brokerAddresses>, saramaConfig)
if err != nil {
log.Println("Unable to create sarama client")
panic(err)
}
config := client.Config()
MeanIncomingByteRate := metrics.GetOrRegisterMeter(getMetricNameForTopic("incoming-byte-rate", topic), config.MetricRegistry).RateMean(),
理论要掌握,实操不能落!以上关于《使用 sarama 监控 Kafka 生产者和消费者的性能数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!