Documentation
¶
Index ¶
- type DatabaseStore
- func (d *DatabaseStore) Connect() (err error)
- func (d *DatabaseStore) EnsureTablesExist() (err error)
- func (d *DatabaseStore) GetBundleCount(reportIds ...any) (count int, err error)
- func (d *DatabaseStore) GetBundleRowsInAReport(reportId string) (bundleRows []*TelemetryBundleRow, err error)
- func (d *DatabaseStore) GetBundles(reportIds ...any) (bundleRowIds []int64, bundleRows []*TelemetryBundleRow, err error)
- func (d *DatabaseStore) GetDataItemRowsInABundle(bundleId string) (itemRows []*TelemetryDataItemRow, err error)
- func (d *DatabaseStore) GetItemCount(bundleIds ...any) (count int, err error)
- func (d *DatabaseStore) GetItems(bundleIds ...any) (itemRowIds []int64, itemRows []*TelemetryDataItemRow, err error)
- func (d *DatabaseStore) GetReportCount(ids ...any) (count int, err error)
- func (d *DatabaseStore) GetReports(ids ...any) (reportRowIds []int64, reportRows []*TelemetryReportRow, err error)
- func (d DatabaseStore) Persistent() bool
- func (d *DatabaseStore) Setup(dbcfg config.DBConfig)
- func (d DatabaseStore) String() string
- type TelemetryBundle
- type TelemetryBundleFooter
- type TelemetryBundleHeader
- type TelemetryBundleRow
- type TelemetryCommon
- type TelemetryCommonImpl
- func (t *TelemetryCommonImpl) BundleCount(reportIds ...any) (count int, err error)
- func (t *TelemetryCommonImpl) DeleteBundle(bundleRow *TelemetryBundleRow) (err error)
- func (t *TelemetryCommonImpl) DeleteItem(itemRow *TelemetryDataItemRow) (err error)
- func (t *TelemetryCommonImpl) DeleteReport(reportRow *TelemetryReportRow) (err error)
- func (t *TelemetryCommonImpl) GetBundleRows(reportIds ...any) (bundleRows []*TelemetryBundleRow, err error)
- func (t *TelemetryCommonImpl) GetItemRows(bundleIds ...any) (itemRows []*TelemetryDataItemRow, err error)
- func (t *TelemetryCommonImpl) GetReportRows(ids ...any) (reportRows []*TelemetryReportRow, err error)
- func (t *TelemetryCommonImpl) ItemCount(bundleIds ...any) (count int, err error)
- func (t *TelemetryCommonImpl) Persistent() bool
- func (t *TelemetryCommonImpl) ReportCount(ids ...any) (count int, err error)
- type TelemetryDataItem
- type TelemetryDataItemFooter
- type TelemetryDataItemHeader
- type TelemetryDataItemRow
- type TelemetryProcessor
- type TelemetryProcessorImpl
- func (p *TelemetryProcessorImpl) AddData(telemetry types.TelemetryType, marshaledData *types.TelemetryBlob, ...) (err error)
- func (p *TelemetryProcessorImpl) BundleCount(reportIds ...any) (count int, err error)
- func (p *TelemetryProcessorImpl) DeleteBundle(bundleRow *TelemetryBundleRow) (err error)
- func (p *TelemetryProcessorImpl) DeleteItem(dataItemRow *TelemetryDataItemRow) (err error)
- func (p *TelemetryProcessorImpl) DeleteReport(reportRow *TelemetryReportRow) (err error)
- func (p *TelemetryProcessorImpl) GenerateBundle(clientId string, customerId string, tags types.Tags) (bundleRow *TelemetryBundleRow, err error)
- func (p *TelemetryProcessorImpl) GenerateReport(clientId string, tags types.Tags) (reportRow *TelemetryReportRow, err error)
- func (p *TelemetryProcessorImpl) GetBundleRows(reportIds ...any) (bundleRows []*TelemetryBundleRow, err error)
- func (p *TelemetryProcessorImpl) GetItemRows(bundleIds ...any) (dataitemsRows []*TelemetryDataItemRow, err error)
- func (p *TelemetryProcessorImpl) GetReportRows(ids ...any) (reportRows []*TelemetryReportRow, err error)
- func (p *TelemetryProcessorImpl) ItemCount(bundleIds ...any) (count int, err error)
- func (p *TelemetryProcessorImpl) Persistent() bool
- func (p *TelemetryProcessorImpl) ReportCount(ids ...any) (count int, err error)
- func (p *TelemetryProcessorImpl) ToBundle(bundleRow *TelemetryBundleRow) (bundle *TelemetryBundle, err error)
- func (p *TelemetryProcessorImpl) ToItem(itemRow *TelemetryDataItemRow) (item *TelemetryDataItem, err error)
- func (p *TelemetryProcessorImpl) ToReport(reportRow *TelemetryReportRow) (report *TelemetryReport, err error)
- type TelemetryReport
- type TelemetryReportFooter
- type TelemetryReportHeader
- type TelemetryReportRow
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DatabaseStore ¶
type DatabaseStore struct {
Conn *sql.DB
Driver string
DataSource string
// contains filtered or unexported fields
}
DatabaseStorer is an implementation for storing data in a database.
func NewDatabaseStore ¶
func NewDatabaseStore(dbConfig config.DBConfig) (ds *DatabaseStore, err error)
func (*DatabaseStore) Connect ¶
func (d *DatabaseStore) Connect() (err error)
func (*DatabaseStore) EnsureTablesExist ¶
func (d *DatabaseStore) EnsureTablesExist() (err error)
func (*DatabaseStore) GetBundleCount ¶
func (d *DatabaseStore) GetBundleCount(reportIds ...any) (count int, err error)
func (*DatabaseStore) GetBundleRowsInAReport ¶
func (d *DatabaseStore) GetBundleRowsInAReport(reportId string) (bundleRows []*TelemetryBundleRow, err error)
func (*DatabaseStore) GetBundles ¶
func (d *DatabaseStore) GetBundles(reportIds ...any) (bundleRowIds []int64, bundleRows []*TelemetryBundleRow, err error)
func (*DatabaseStore) GetDataItemRowsInABundle ¶
func (d *DatabaseStore) GetDataItemRowsInABundle(bundleId string) (itemRows []*TelemetryDataItemRow, err error)
func (*DatabaseStore) GetItemCount ¶
func (d *DatabaseStore) GetItemCount(bundleIds ...any) (count int, err error)
func (*DatabaseStore) GetItems ¶
func (d *DatabaseStore) GetItems(bundleIds ...any) (itemRowIds []int64, itemRows []*TelemetryDataItemRow, err error)
func (*DatabaseStore) GetReportCount ¶
func (d *DatabaseStore) GetReportCount(ids ...any) (count int, err error)
func (*DatabaseStore) GetReports ¶
func (d *DatabaseStore) GetReports(ids ...any) (reportRowIds []int64, reportRows []*TelemetryReportRow, err error)
func (DatabaseStore) Persistent ¶ added in v0.1.5
func (d DatabaseStore) Persistent() bool
func (*DatabaseStore) Setup ¶
func (d *DatabaseStore) Setup(dbcfg config.DBConfig)
func (DatabaseStore) String ¶
func (d DatabaseStore) String() string
type TelemetryBundle ¶
type TelemetryBundle struct {
// NOTE: omitempty option used in json tags to support generating test scenarios
Header TelemetryBundleHeader `json:"header" validate:"required"`
TelemetryDataItems []TelemetryDataItem `json:"telemetryDataItems,omitempty" validate:"required,gt=0,dive"`
}
func NewTelemetryBundle ¶
func (*TelemetryBundle) UpdateChecksum ¶
func (tb *TelemetryBundle) UpdateChecksum() (err error)
func (*TelemetryBundle) VerifyChecksum ¶
func (tb *TelemetryBundle) VerifyChecksum() (err error)
type TelemetryBundleFooter ¶
type TelemetryBundleFooter struct {
Checksum string `json:"checksum,omitempty" validate:"omitempty,md5"`
}
type TelemetryBundleHeader ¶
type TelemetryBundleHeader struct {
// NOTE: omitempty option used in json tags to support generating test scenarios
BundleId string `json:"bundleId,omitempty" validate:"required,uuid|uuid_rfc4122"`
BundleTimeStamp string `json:"bundleTimeStamp" validate:"required"`
BundleClientId string `json:"bundleClientId" validate:"required,uuid|uuid_rfc4122"`
BundleCustomerId string `json:"bundleCustomerId" validate:"omitempty"`
BundleAnnotations []string `json:"bundleAnnotations,omitempty"`
}
type TelemetryBundleRow ¶
type TelemetryBundleRow struct {
Id int64
BundleId string
BundleTimestamp string
BundleClientId string
BundleCustomerId string
BundleAnnotations string
ReportId sql.NullInt64
}
func NewTelemetryBundleRow ¶
type TelemetryCommon ¶
type TelemetryCommon interface {
// Whether the datastore is persistent or not
Persistent() bool
// Get a count of telemetry data items that are not associated with a bundle
ItemCount(bundleIds ...any) (int, error)
// Get all telemetry data items from the items table
GetItemRows(bundleIds ...any) ([]*TelemetryDataItemRow, error)
// Delete a specified telemetry data item from the items table
DeleteItem(dataItemRow *TelemetryDataItemRow) error
// Get a count of telemetry bundles that are not associated with a report
BundleCount(bundleIds ...any) (int, error)
// Get telemetry bundles from the bundles table
GetBundleRows(reportIds ...any) ([]*TelemetryBundleRow, error)
// Delete a specified telemetry bundle from the bundles table
DeleteBundle(bundleRow *TelemetryBundleRow) error
// Get a count of telemetry reports
ReportCount(ids ...any) (int, error)
// Get telemetry reports from the reports table
GetReportRows(ids ...any) ([]*TelemetryReportRow, error)
// Delete a specified telemetry report from the reports table
DeleteReport(reportRow *TelemetryReportRow) error
// contains filtered or unexported methods
}
type TelemetryCommonImpl ¶
type TelemetryCommonImpl struct {
// contains filtered or unexported fields
}
func (*TelemetryCommonImpl) BundleCount ¶
func (t *TelemetryCommonImpl) BundleCount(reportIds ...any) (count int, err error)
func (*TelemetryCommonImpl) DeleteBundle ¶
func (t *TelemetryCommonImpl) DeleteBundle(bundleRow *TelemetryBundleRow) (err error)
func (*TelemetryCommonImpl) DeleteItem ¶
func (t *TelemetryCommonImpl) DeleteItem(itemRow *TelemetryDataItemRow) (err error)
func (*TelemetryCommonImpl) DeleteReport ¶
func (t *TelemetryCommonImpl) DeleteReport(reportRow *TelemetryReportRow) (err error)
func (*TelemetryCommonImpl) GetBundleRows ¶
func (t *TelemetryCommonImpl) GetBundleRows(reportIds ...any) (bundleRows []*TelemetryBundleRow, err error)
func (*TelemetryCommonImpl) GetItemRows ¶
func (t *TelemetryCommonImpl) GetItemRows(bundleIds ...any) (itemRows []*TelemetryDataItemRow, err error)
func (*TelemetryCommonImpl) GetReportRows ¶
func (t *TelemetryCommonImpl) GetReportRows(ids ...any) (reportRows []*TelemetryReportRow, err error)
func (*TelemetryCommonImpl) ItemCount ¶
func (t *TelemetryCommonImpl) ItemCount(bundleIds ...any) (count int, err error)
func (*TelemetryCommonImpl) Persistent ¶ added in v0.1.5
func (t *TelemetryCommonImpl) Persistent() bool
func (*TelemetryCommonImpl) ReportCount ¶
func (t *TelemetryCommonImpl) ReportCount(ids ...any) (count int, err error)
type TelemetryDataItem ¶
type TelemetryDataItem struct {
// NOTE: omitempty option used in json tags to support generating test scenarios
Header TelemetryDataItemHeader `json:"header" validate:"required"`
TelemetryData json.RawMessage `json:"telemetryData" validate:"required,dive"`
}
func NewTelemetryDataItem ¶
func NewTelemetryDataItem(telemetry types.TelemetryType, tags types.Tags, content *types.TelemetryBlob) (*TelemetryDataItem, error)
func (*TelemetryDataItem) UpdateChecksum ¶
func (tdi *TelemetryDataItem) UpdateChecksum() (err error)
func (*TelemetryDataItem) VerifyChecksum ¶
func (tdi *TelemetryDataItem) VerifyChecksum() (err error)
type TelemetryDataItemFooter ¶
type TelemetryDataItemFooter struct {
}
type TelemetryDataItemHeader ¶
type TelemetryDataItemHeader struct {
TelemetryId string `json:"telemetryId" validate:"required,uuid|uuid_rfc4122"`
TelemetryTimeStamp string `json:"telemetryTimeStamp" validate:"required"`
TelemetryType string `json:"telemetryType" validate:"required,min=5"`
TelemetryAnnotations []string `json:"telemetryAnnotations,omitempty"`
}
type TelemetryDataItemRow ¶
type TelemetryDataItemRow struct {
Id int64
ItemId string
ItemType string
ItemTimestamp string
ItemAnnotations string
ItemData []byte
ItemChecksum string
Compression sql.NullString
BundleId sql.NullInt64
}
func NewTelemetryDataItemRow ¶
func NewTelemetryDataItemRow(telemetry types.TelemetryType, tags types.Tags, content *types.TelemetryBlob) (itemRow *TelemetryDataItemRow, err error)
type TelemetryProcessor ¶
type TelemetryProcessor interface {
TelemetryCommon
// Add telemetry data - a method to process jsonData as a byte[]
AddData(
telemetry types.TelemetryType,
content *types.TelemetryBlob,
tags types.Tags,
) (err error)
// Generate telemetry bundle
GenerateBundle(
clientId string,
customerId string,
tags types.Tags,
) (bundleRow *TelemetryBundleRow, err error)
// Generate telemetry report
GenerateReport(
clientId string,
tags types.Tags,
) (reportRow *TelemetryReportRow, err error)
// Convert TelemetryReportRow structure to TelemetryReport
ToReport(reportRow *TelemetryReportRow) (report *TelemetryReport, err error)
// Convert TelemetryBundleRow structure to TelemetryBundle
ToBundle(bundleRow *TelemetryBundleRow) (bundle *TelemetryBundle, err error)
// Convert TelemetryDataItemRow structure to TelemetryDataItem
ToItem(itemRow *TelemetryDataItemRow) (item *TelemetryDataItem, err error)
}
func NewTelemetryProcessor ¶
func NewTelemetryProcessor(cfg *config.DBConfig) (TelemetryProcessor, error)
type TelemetryProcessorImpl ¶
type TelemetryProcessorImpl struct {
// contains filtered or unexported fields
}
implements TelemetryProcessor interface.
func (*TelemetryProcessorImpl) AddData ¶
func (p *TelemetryProcessorImpl) AddData(telemetry types.TelemetryType, marshaledData *types.TelemetryBlob, tags types.Tags) (err error)
func (*TelemetryProcessorImpl) BundleCount ¶
func (p *TelemetryProcessorImpl) BundleCount(reportIds ...any) (count int, err error)
func (*TelemetryProcessorImpl) DeleteBundle ¶
func (p *TelemetryProcessorImpl) DeleteBundle(bundleRow *TelemetryBundleRow) (err error)
func (*TelemetryProcessorImpl) DeleteItem ¶
func (p *TelemetryProcessorImpl) DeleteItem(dataItemRow *TelemetryDataItemRow) (err error)
func (*TelemetryProcessorImpl) DeleteReport ¶
func (p *TelemetryProcessorImpl) DeleteReport(reportRow *TelemetryReportRow) (err error)
func (*TelemetryProcessorImpl) GenerateBundle ¶
func (p *TelemetryProcessorImpl) GenerateBundle(clientId string, customerId string, tags types.Tags) (bundleRow *TelemetryBundleRow, err error)
func (*TelemetryProcessorImpl) GenerateReport ¶
func (p *TelemetryProcessorImpl) GenerateReport(clientId string, tags types.Tags) (reportRow *TelemetryReportRow, err error)
func (*TelemetryProcessorImpl) GetBundleRows ¶
func (p *TelemetryProcessorImpl) GetBundleRows(reportIds ...any) (bundleRows []*TelemetryBundleRow, err error)
func (*TelemetryProcessorImpl) GetItemRows ¶
func (p *TelemetryProcessorImpl) GetItemRows(bundleIds ...any) (dataitemsRows []*TelemetryDataItemRow, err error)
func (*TelemetryProcessorImpl) GetReportRows ¶
func (p *TelemetryProcessorImpl) GetReportRows(ids ...any) (reportRows []*TelemetryReportRow, err error)
func (*TelemetryProcessorImpl) ItemCount ¶
func (p *TelemetryProcessorImpl) ItemCount(bundleIds ...any) (count int, err error)
func (*TelemetryProcessorImpl) Persistent ¶ added in v0.1.5
func (p *TelemetryProcessorImpl) Persistent() bool
func (*TelemetryProcessorImpl) ReportCount ¶
func (p *TelemetryProcessorImpl) ReportCount(ids ...any) (count int, err error)
func (*TelemetryProcessorImpl) ToBundle ¶
func (p *TelemetryProcessorImpl) ToBundle(bundleRow *TelemetryBundleRow) (bundle *TelemetryBundle, err error)
func (*TelemetryProcessorImpl) ToItem ¶
func (p *TelemetryProcessorImpl) ToItem(itemRow *TelemetryDataItemRow) (item *TelemetryDataItem, err error)
func (*TelemetryProcessorImpl) ToReport ¶
func (p *TelemetryProcessorImpl) ToReport(reportRow *TelemetryReportRow) (report *TelemetryReport, err error)
type TelemetryReport ¶
type TelemetryReport struct {
// NOTE: omitempty option used in json tags to support generating test scenarios
Header TelemetryReportHeader `json:"header" validate:"required"`
TelemetryBundles []TelemetryBundle `json:"telemetryBundles,omitempty" validate:"required,gt=0,dive"`
}
func NewTelemetryReport ¶
func NewTelemetryReport(clientId string, tags types.Tags) (*TelemetryReport, error)
func (*TelemetryReport) UpdateChecksum ¶
func (tr *TelemetryReport) UpdateChecksum() (err error)
func (*TelemetryReport) Validate ¶
func (tr *TelemetryReport) Validate() (err error)
func (*TelemetryReport) VerifyChecksum ¶
func (tr *TelemetryReport) VerifyChecksum() (err error)
type TelemetryReportFooter ¶
type TelemetryReportFooter struct {
Checksum string `json:"checksum,omitempty" validate:"omitempty,md5"`
}
type TelemetryReportHeader ¶
type TelemetryReportHeader struct {
// NOTE: omitempty option used in json tags to support generating test scenarios
ReportId string `json:"reportId,omitempty" validate:"required,uuid|uuid_rfc4122"`
ReportTimeStamp string `json:"reportTimeStamp" validate:"required"`
ReportClientId string `json:"reportClientId" validate:"required,uuid|uuid_rfc4122"`
ReportAnnotations []string `json:"reportAnnotations,omitempty"`
}
type TelemetryReportRow ¶
type TelemetryReportRow struct {
Id int64
ReportId string
ReportTimestamp string
ReportClientId string
ReportAnnotations string
}
func NewTelemetryReportRow ¶
func NewTelemetryReportRow(clientId string, tags types.Tags) (*TelemetryReportRow, error)
Click to show internal directories.
Click to hide internal directories.