master
go 56 lines 1.17 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package metrix
4
5 func metricKindPublic(kind metricKind) MetricKind {
6 switch kind {
7 case kindGauge:
8 return MetricKindGauge
9 case kindCounter:
10 return MetricKindCounter
11 case kindHistogram:
12 return MetricKindHistogram
13 case kindSummary:
14 return MetricKindSummary
15 case kindStateSet:
16 return MetricKindStateSet
17 case kindMeasureSet:
18 return MetricKindMeasureSet
19 default:
20 return MetricKindUnknown
21 }
22 }
23
24 func baseSeriesMeta(desc *instrumentDescriptor) SeriesMeta {
25 kind := MetricKindUnknown
26 if desc != nil {
27 kind = metricKindPublic(desc.kind)
28 }
29 return SeriesMeta{
30 Kind: kind,
31 SourceKind: kind,
32 FlattenRole: FlattenRoleNone,
33 }
34 }
35
36 func ensureSeriesMeta(desc *instrumentDescriptor, meta *SeriesMeta) {
37 if meta == nil {
38 return
39 }
40 if desc == nil {
41 return
42 }
43 if meta.Kind == MetricKindUnknown {
44 meta.Kind = metricKindPublic(desc.kind)
45 }
46 if meta.SourceKind == MetricKindUnknown {
47 meta.SourceKind = meta.Kind
48 }
49 }
50
51 func flattenedSeriesMeta(base SeriesMeta, kind MetricKind, sourceKind MetricKind, role FlattenRole) SeriesMeta {
52 base.Kind = kind
53 base.SourceKind = sourceKind
54 base.FlattenRole = role
55 return base
56 }