func()

in aggregators/converter.go [88:116]


func (p *partitionedMetricsBuilder) processEvent(e *modelpb.APMEvent) {
	switch e.Type() {
	case modelpb.TransactionEventType:
		repCount := e.GetTransaction().GetRepresentativeCount()
		if repCount <= 0 {
			p.addServiceSummaryMetrics()
			return
		}
		duration := time.Duration(e.GetEvent().GetDuration())
		p.addTransactionMetrics(e, repCount, duration)
		p.addServiceTransactionMetrics(e, repCount, duration)
		for _, dss := range e.GetTransaction().GetDroppedSpansStats() {
			p.addDroppedSpanStatsMetrics(dss, repCount)
		}
	case modelpb.SpanEventType:
		target := e.GetService().GetTarget()
		repCount := e.GetSpan().GetRepresentativeCount()
		destSvc := e.GetSpan().GetDestinationService().GetResource()
		if repCount <= 0 || (target == nil && destSvc == "") {
			p.addServiceSummaryMetrics()
			return
		}
		p.addSpanMetrics(e, repCount)
	default:
		// All other event types should add an empty service metrics,
		// for adding to service summary metrics.
		p.addServiceSummaryMetrics()
	}
}