在开始将您的第一个应用程序与Metrics类库结合之后不久,您会注意到您开始添加越来越多的测量指标,并且很快就会变得难以组织和管理。收集它们不成问题,因为Metrics.NET库即使对于数千个测量指标也不应该会引起任何明显的开销。但是,当您尝试查看特定指标时,情况可能会变得棘手。这可以通过将指标放到外部指标库(如Graphite)来解决,但有时这是不可能的。
Metrics.NET库提供了几种组织指标的方法。您可以将收集的指标分组到上下文中。您也可以标记指标。
指标上下文
所有的指标默认存入全局指标上下文中。静态Metric类提供了一种简单的方式来访问全局上下文。
不论何时通过Metric静态帮助类去注册一个指标,这指标都是在全局上下文中增加。
// gets added to the global metrics context
Timer requestTimer = Metric.Timer("HTTP Requests", Unit.Requests);
尽管如此,你同样可以增加子级上下文到全局上下文中:
// "HTTP" that is a child context of the global context
Timer requestTimer = Metric.Context("HTTP").Timer("Requests", Unit.Requests);
您可以根据需要将上下文嵌套得很深,但通常一级嵌套就提供了足够的组织结构来查看它们。
更多详情请参考MetricsContext 和AdvancedMetricsContext
在(希望不久的)将来,可视化应用程序会在UI上使用上下文来更好的组织指标。
标签
每个注册指标的重载方法接受一个标记参数,该参数可以是MetricsTags结构或字符串,也可以是字符串数组,也可以是包含以逗号分隔的标签列表字符串。
Timer requestTimer = Metric.Timer("HTTP Requests", Unit.Requests, "advanced, storage");
在(希望不久的)将来,可视化应用程序会在UI上使用标签来更好的组织指标。