如何使用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-配置指标(:

// 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(),

最新更新