我有这个代码
public static void AddMeter(List<string> meter)
{
using MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter("Meter.Errors")
.AddMeter("Meter.Prompts")
.AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
.Build();
}
我想做的是通过迭代添加米(.AddMeter())。
所以像这样;
using MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
foreach (var meter in meters)
{
.AddMeter(meter)
}
.AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
.Build();
正确的语法是什么?
你的意思是这样的吗?:
var builder = Sdk.CreateMeterProviderBuilder();
foreach (var meter in meters)
{
builder = builder.AddMeter(meter);
}
using MeterProvider meterProvider = builder
.AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
.Build();
基本上,您只需将
Sdk.CreateMeterProviderBuilder()
的结果存储在变量中,在更新该变量的循环中调用 .AddMeter()
,然后对该变量的结果调用您需要的其余部分。像这样的流体 API 的语法没有什么特别之处,每个方法只是返回相同的更新对象,该对象可以像任何其他方法一样存储在变量中。