Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/integrations/v2/app_agent_receiver/traces_exporter.go
5393 views
1
package app_agent_receiver
2
3
import (
4
"context"
5
6
"go.opentelemetry.io/collector/consumer"
7
)
8
9
type tracesConsumerGetter func() (consumer.Traces, error)
10
11
// TracesExporter will send traces to a traces instance
12
type TracesExporter struct {
13
getTracesConsumer tracesConsumerGetter
14
}
15
16
// NewTracesExporter creates a trace exporter for the app agent receiver.
17
func NewTracesExporter(getTracesConsumer tracesConsumerGetter) appAgentReceiverExporter {
18
return &TracesExporter{getTracesConsumer}
19
}
20
21
// Name of the exporter, for logging purposes
22
func (te *TracesExporter) Name() string {
23
return "traces exporter"
24
}
25
26
// Export implements the AppDataExporter interface
27
func (te *TracesExporter) Export(ctx context.Context, payload Payload) error {
28
if payload.Traces == nil {
29
return nil
30
}
31
consumer, err := te.getTracesConsumer()
32
if err != nil {
33
return err
34
}
35
return consumer.ConsumeTraces(ctx, payload.Traces.Traces)
36
}
37
38