如何为MassTransit监控指标添加Prometheus静态标签
解决方案
MassTransit.Prometheus 包原生支持在保留默认 UsePrometheusMetrics 扩展方法的前提下,为所有默认指标追加全局静态标签,无需自定义指标,实现方式如下:
配置方式
在 MassTransit 总线配置的 UsePrometheusMetrics 方法中传入配置委托,通过 DefaultTags 属性添加静态标签即可,示例代码(Program.cs):
var builder = WebApplication.CreateBuilder(args); builder.Services.AddMassTransit(config => { // 这里替换为你实际使用的传输层实现,如RabbitMQ、Kafka等 config.UsingRabbitMq((ctx, cfg) => { // 其他总线配置、消费者配置等 // 启用默认Prometheus指标并添加静态标签 cfg.UsePrometheusMetrics(metricOpts => { // 按需添加任意键值对作为全局静态标签 metricOpts.DefaultTags.Add("service", "order-service"); metricOpts.DefaultTags.Add("env", "production"); metricOpts.DefaultTags.Add("cluster_id", "cluster-01"); }); }); }); // 其余服务注册、中间件配置逻辑 var app = builder.Build(); app.Run();
验证效果
项目启动后访问Prometheus指标端点(默认路径为/metrics),查看MassTransit默认生成的指标(如masstransit_receive_total、masstransit_consume_duration_seconds等),所有指标都会自动携带你配置的静态标签,同时不会覆盖MassTransit默认添加的message_type、consumer_type等业务标签。
注意:如果配置时找不到
DefaultTags属性,请将MassTransit.PrometheusNuGet包升级到v8.0及以上版本,该版本开始原生支持全局静态标签配置。
内容的提问来源于stack exchange,提问作者Ramin
相关产品推荐
相关产品推荐

