MCPcopy
hub / github.com/grafana/tempo / resourceSpanHash

Function resourceSpanHash

tempodb/encoding/vparquet4/rebatch_trace.go:115–148  ·  view source on GitHub ↗
(rs *ResourceSpans)

Source from the content-addressed store, hash-verified

113}
114
115func resourceSpanHash(rs *ResourceSpans) uint64 {
116 hash := fnv1a.HashString64(rs.Resource.ServiceName)
117
118 hash = addHash(rs.Resource.Cluster, hash)
119 hash = addHash(rs.Resource.Container, hash)
120 hash = addHash(rs.Resource.K8sClusterName, hash)
121 hash = addHash(rs.Resource.K8sContainerName, hash)
122 hash = addHash(rs.Resource.K8sNamespaceName, hash)
123 hash = addHash(rs.Resource.K8sPodName, hash)
124 hash = addHash(rs.Resource.Namespace, hash)
125 hash = addHash(rs.Resource.Pod, hash)
126
127 hash = addHash(rs.Resource.DedicatedAttributes.String01, hash)
128 hash = addHash(rs.Resource.DedicatedAttributes.String02, hash)
129 hash = addHash(rs.Resource.DedicatedAttributes.String03, hash)
130 hash = addHash(rs.Resource.DedicatedAttributes.String04, hash)
131 hash = addHash(rs.Resource.DedicatedAttributes.String05, hash)
132 hash = addHash(rs.Resource.DedicatedAttributes.String06, hash)
133 hash = addHash(rs.Resource.DedicatedAttributes.String07, hash)
134 hash = addHash(rs.Resource.DedicatedAttributes.String08, hash)
135 hash = addHash(rs.Resource.DedicatedAttributes.String09, hash)
136 hash = addHash(rs.Resource.DedicatedAttributes.String10, hash)
137
138 // sort keys for consistency
139 slices.SortFunc(rs.Resource.Attrs, func(i, j Attribute) int {
140 return strings.Compare(i.Key, j.Key)
141 })
142
143 for _, attr := range rs.Resource.Attrs {
144 hash = attributeHash(&attr, hash)
145 }
146
147 return hash
148}
149
150func attributeHash(attr *Attribute, hash uint64) uint64 {
151 hash = fnv1a.AddString64(hash, attr.Key)

Callers 1

rebatchTraceFunction · 0.70

Calls 3

addHashFunction · 0.85
attributeHashFunction · 0.70
CompareMethod · 0.45

Tested by

no test coverage detected