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

Function aggregateScope

cmd/tempo-cli/cmd-analyse-block.go:317–408  ·  view source on GitHub ↗
(pf *parquet.File, meta *backend.BlockMeta, paths scopeAttributePath, includeWellKnown bool)

Source from the content-addressed store, hash-verified

315}
316
317func aggregateScope(pf *parquet.File, meta *backend.BlockMeta, paths scopeAttributePath, includeWellKnown bool) (attributeSummary, error) {
318 var strings []backend.DedicatedColumn
319 var ints []backend.DedicatedColumn
320 for _, c := range meta.DedicatedColumns {
321 if c.Scope == paths.dedicatedColScope {
322 switch c.Type {
323 case backend.DedicatedColumnTypeString:
324 strings = append(strings, c)
325 case backend.DedicatedColumnTypeInt:
326 ints = append(ints, c)
327 }
328 }
329 }
330
331 res, err := aggregateGenericAttributes(pf, paths.defLevel, paths.keyPath, paths.valPath, paths.intPath, paths.isArrayPath)
332 if err != nil {
333 return res, err
334 }
335
336 res.dedicated = make(map[string]struct{})
337
338 for i, c := range strings {
339 if i >= len(paths.dedicatedColsPaths) {
340 break
341 }
342 cardinality, err := aggregateStringColumn(pf, paths.dedicatedColsPaths[i])
343 if err != nil {
344 return res, err
345 }
346 res.attributes[c.Name] = &stringAttributeSummary{
347 name: c.Name,
348 totalBytes: cardinality.totalBytes(),
349 cardinality: cardinality,
350 }
351 res.dedicated[c.Name] = struct{}{}
352 }
353
354 if includeWellKnown {
355 for wellKnownAttr, path := range paths.wellKnownPathsString {
356 cardinality, err := aggregateStringColumn(pf, path)
357 if err != nil {
358 return res, err
359 }
360 res.attributes[wellKnownAttr] = &stringAttributeSummary{
361 name: wellKnownAttr,
362 totalBytes: cardinality.totalBytes(),
363 cardinality: cardinality,
364 }
365 res.dedicated[wellKnownAttr] = struct{}{} // Well-known columns are also dedicated columns.
366 }
367 }
368
369 for i, c := range ints {
370 if i >= len(paths.dedicatedColsPathsInt) {
371 break
372 }
373 path := paths.dedicatedColsPathsInt[i]
374 count, err := aggregateIntegerColumn(pf, path)

Callers 1

processBlockFunction · 0.85

Calls 5

aggregateStringColumnFunction · 0.85
aggregateIntegerColumnFunction · 0.85
rowCountFunction · 0.85
totalBytesMethod · 0.45

Tested by

no test coverage detected