/
Core.fsi
65 lines (54 loc) · 1.65 KB
/
Core.fsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
namespace Metricano
open System
open System.Threading.Tasks
type MetricType =
| TimeSpan = 1uy
| Count = 2uy
type CountMetric =
{
Name : string
TimeStamp : DateTime
Sum : double
Average : double
Max : double
Min : double
Count : int64
}
type TimeSpanMetric =
{
Name : string
TimeStamp : DateTime
Sum : TimeSpan
Average : TimeSpan
Max : TimeSpan
Min : TimeSpan
Raw : TimeSpan[]
}
type Metric =
| Count of CountMetric
| TimeSpan of TimeSpanMetric
member Name : string
member TimeStamp : DateTime
member Type : MetricType
member Unit : string
member Sum : double
member Average : double
member Max : double
member Min : double
member SampleCount : int64
type IMetricsAgent =
abstract member RecordTimeSpanMetric : string * TimeSpan -> unit
abstract member IncrementCountMetric : string -> unit
abstract member IncrementCountMetricBy : string * int64 -> unit
abstract member SetCountMetric : string * int64 -> unit
abstract member internal Flush : unit -> Task<Metric[]>
[<Class>]
[<Sealed>]
type MetricsAgent =
interface IMetricsAgent
static member Default : IMetricsAgent
static member Create : unit -> IMetricsAgent
static member Create : maxRawTimespans : int -> IMetricsAgent
type IMetricsPublisher =
inherit IDisposable
abstract member Publish : Metric[] -> Task