Skip to content

Commit b08978a

Browse files
committed
Add pass_kaddrs and populate_kaddrs spans
1 parent 3a1eed2 commit b08978a

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

exporter/exporter.go

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func (e *Exporter) attachConfig(ctx context.Context, cfg config.Config) error {
188188
newModuleSpan.End()
189189

190190
if len(cfg.Kaddrs) > 0 {
191-
err = e.passKaddrs(module, cfg)
191+
err = e.passKaddrs(ctx, module, cfg)
192192
if err != nil {
193193
return fmt.Errorf("error passing kaddrs to config %q: %v", cfg.Name, err)
194194
}
@@ -238,22 +238,40 @@ func (e *Exporter) MissedAttachments() []string {
238238
return missed
239239
}
240240

241-
func (e *Exporter) passKaddrs(module *libbpfgo.Module, cfg config.Config) error {
241+
func (e *Exporter) passKaddrs(ctx context.Context, module *libbpfgo.Module, cfg config.Config) error {
242+
tracer := e.tracingProvider.Tracer("")
243+
244+
passKaddrsCtx, passKaddrsSpan := tracer.Start(ctx, "pass_kaddrs")
245+
defer passKaddrsSpan.End()
246+
242247
if len(e.kaddrs) == 0 {
248+
_, populateKaddrsSpan := tracer.Start(passKaddrsCtx, "populate_kaddrs")
249+
243250
if err := e.populateKaddrs(); err != nil {
244-
return fmt.Errorf("error populating kaddrs: %v", err)
251+
err = fmt.Errorf("error populating kaddrs: %v", err)
252+
populateKaddrsSpan.SetStatus(codes.Error, err.Error())
253+
populateKaddrsSpan.End()
254+
return err
245255
}
256+
257+
populateKaddrsSpan.End()
246258
}
247259

248260
for _, kaddr := range cfg.Kaddrs {
261+
passKaddrsSpan.AddEvent("kaddr", trace.WithAttributes(attribute.String("symbol", kaddr)))
262+
249263
addr, ok := e.kaddrs[kaddr]
250264
if !ok {
251-
return fmt.Errorf("error finding kaddr for %q", kaddr)
265+
err := fmt.Errorf("error finding kaddr for %q", kaddr)
266+
passKaddrsSpan.SetStatus(codes.Error, err.Error())
267+
return err
252268
}
253269

254270
name := "kaddr_" + kaddr
255271
if err := module.InitGlobalVariable(name, addr); err != nil {
256-
return fmt.Errorf("error setting kaddr value for %q (const volatile %q) to 0x%x: %v", kaddr, name, addr, err)
272+
err = fmt.Errorf("error setting kaddr value for %q (const volatile %q) to 0x%x: %v", kaddr, name, addr, err)
273+
passKaddrsSpan.SetStatus(codes.Error, err.Error())
274+
return err
257275
}
258276
}
259277

0 commit comments

Comments
 (0)