```fsharp type IMetricsProvider = abstract RegisterMetric: metricName:string * measureUnit:string * scalingFraction:float * metricType:MetricType -> unit abstract PublishMetric: metricName:string * value:float -> unit ```