Skip to content

Commit

Permalink
Send discovered intents telemetry and fix results count (#134)
Browse files Browse the repository at this point in the history
  • Loading branch information
NetanelBollag authored Sep 7, 2023
1 parent 002a7dc commit ea3d9fa
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
7 changes: 7 additions & 0 deletions src/mapper/pkg/intentsstore/holder.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,13 @@ func (i *IntentsHolder) GetIntents(
return result, nil
}

func (i *IntentsHolder) GetIntentsCount() int {
i.lock.Lock()
defer i.lock.Unlock()

return len(i.accumulatingStore)
}

func (i *IntentsHolder) GetNewIntentsSinceLastGet() []TimestampedIntent {
i.lock.Lock()
defer i.lock.Unlock()
Expand Down
20 changes: 16 additions & 4 deletions src/mapper/pkg/resolvers/schema.resolvers.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ func (r *mutationResolver) ResetCapture(ctx context.Context) (bool, error) {
}

func (r *mutationResolver) ReportCaptureResults(ctx context.Context, results model.CaptureResults) (bool, error) {
var newResults int
for _, captureItem := range results.Results {
srcSvcIdentity := r.discoverSrcIdentity(ctx, captureItem)
if srcSvcIdentity == nil {
Expand Down Expand Up @@ -88,13 +89,16 @@ func (r *mutationResolver) ReportCaptureResults(ctx context.Context, results mod
dest.LastSeen,
intent,
)
newResults++
}
}
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredCapture, len(results.Results))
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredCapture, newResults)
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscovered, r.intentsHolder.GetIntentsCount())
return true, nil
}

func (r *mutationResolver) ReportSocketScanResults(ctx context.Context, results model.SocketScanResults) (bool, error) {
var newResults int
for _, socketScanItem := range results.Results {
srcSvcIdentity := r.discoverSrcIdentity(ctx, socketScanItem)
if srcSvcIdentity == nil {
Expand Down Expand Up @@ -141,13 +145,16 @@ func (r *mutationResolver) ReportSocketScanResults(ctx context.Context, results
destIp.LastSeen,
intent,
)
newResults++
}
}
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredSocketScan, len(results.Results))
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredSocketScan, newResults)
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscovered, r.intentsHolder.GetIntentsCount())
return true, nil
}

func (r *mutationResolver) ReportKafkaMapperResults(ctx context.Context, results model.KafkaMapperResults) (bool, error) {
var newResults int
for _, result := range results.Results {
srcPod, err := r.kubeFinder.ResolveIpToPod(ctx, result.SrcIP)
if err != nil {
Expand Down Expand Up @@ -211,13 +218,16 @@ func (r *mutationResolver) ReportKafkaMapperResults(ctx context.Context, results
result.LastSeen,
intent,
)
newResults++
}

telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredKafka, len(results.Results))
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredKafka, newResults)
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscovered, r.intentsHolder.GetIntentsCount())
return true, nil
}

func (r *mutationResolver) ReportIstioConnectionResults(ctx context.Context, results model.IstioConnectionResults) (bool, error) {
var newResults int
for _, result := range results.Results {
srcPod, err := r.kubeFinder.ResolveIstioWorkloadToPod(ctx, result.SrcWorkload, result.SrcWorkloadNamespace)
if err != nil {
Expand Down Expand Up @@ -255,9 +265,11 @@ func (r *mutationResolver) ReportIstioConnectionResults(ctx context.Context, res
Type: lo.ToPtr(model.IntentTypeHTTP),
HTTPResources: []model.HTTPResource{{Path: result.Path, Methods: result.Methods}},
})
newResults++
}

telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredIstio, len(results.Results))
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscoveredIstio, newResults)
telemetrysender.SendNetworkMapper(telemetriesgql.EventTypeIntentsDiscovered, r.intentsHolder.GetIntentsCount())
return true, nil
}

Expand Down

0 comments on commit ea3d9fa

Please sign in to comment.