MCPcopy Create free account
hub / github.com/deepflowio/deepflow / encode

Method encode

server/controller/prometheus/encoder/label_name.go:62–98  ·  view source on GitHub ↗
(strs []string)

Source from the content-addressed store, hash-verified

60}
61
62func (ln *labelName) encode(strs []string) ([]*controller.PrometheusLabelName, error) {
63 ln.lock.Lock()
64 defer ln.lock.Unlock()
65
66 resp := make([]*controller.PrometheusLabelName, 0)
67 var dbToAdd []*metadbmodel.PrometheusLabelName
68 for i := range strs {
69 str := strs[i]
70 if id, ok := ln.strToID.Get(str); ok {
71 resp = append(resp, &controller.PrometheusLabelName{Name: &str, Id: proto.Uint32(uint32(id))})
72 continue
73 }
74 dbToAdd = append(dbToAdd, &metadbmodel.PrometheusLabelName{Name: str})
75 }
76 if len(dbToAdd) == 0 {
77 return resp, nil
78 }
79 ids, err := ln.allocate(len(dbToAdd))
80 if err != nil {
81 return nil, err
82 }
83 for i := range ids {
84 dbToAdd[i].ID = ids[i]
85 }
86 err = addBatch(ln.org.DB, dbToAdd, ln.resourceType)
87 if err != nil {
88 log.Errorf("add %s error: %s", ln.resourceType, err.Error(), ln.org.LogPrefix)
89 return nil, err
90 }
91 for i := range dbToAdd {
92 id := dbToAdd[i].ID
93 str := dbToAdd[i].Name
94 ln.strToID.Set(str, id)
95 resp = append(resp, &controller.PrometheusLabelName{Name: &str, Id: proto.Uint32(uint32(id))})
96 }
97 return resp, nil
98}
99
100func (ln *labelName) load() (ids mapset.Set[int], err error) {
101 var items []*metadbmodel.PrometheusLabelName

Callers

nothing calls this directly

Calls 8

addBatchFunction · 0.85
GetMethod · 0.65
allocateMethod · 0.65
ErrorMethod · 0.65
SetMethod · 0.65
LockMethod · 0.45
UnlockMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected