2
0

exporter.go 882 B

123456789101112131415161718192021222324
  1. package exporter
  2. import (
  3. "github.com/opencost/opencost/core/pkg/diagnostics"
  4. "github.com/opencost/opencost/core/pkg/exporter"
  5. "github.com/opencost/opencost/core/pkg/exporter/pathing"
  6. "github.com/opencost/opencost/core/pkg/log"
  7. "github.com/opencost/opencost/core/pkg/storage"
  8. )
  9. // NewDiagnosticExporter creates a new `StorageExporter[DiagnosticsRunReport]` instance for exporting diagnostic run events.
  10. func NewDiagnosticExporter(clusterId string, applicationName string, storage storage.Storage) exporter.EventExporter[diagnostics.DiagnosticsRunReport] {
  11. pathing, err := pathing.NewEventStoragePathFormatter("federated", clusterId, diagnostics.DiagnosticsEventName, applicationName)
  12. if err != nil {
  13. log.Errorf("failed to create pathing formatter: %v", err)
  14. return nil
  15. }
  16. return exporter.NewEventStorageExporter(
  17. pathing,
  18. NewDiagnosticsEncoder(),
  19. storage,
  20. )
  21. }