74 lines
2.3 KiB
Go
74 lines
2.3 KiB
Go
package sentry
|
|
|
|
// Based on https://github.com/getsentry/vroom/blob/d11c26063e802d66b9a592c4010261746ca3dfa4/internal/sample/sample.go
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type (
|
|
profileDevice struct {
|
|
Architecture string `json:"architecture"`
|
|
Classification string `json:"classification"`
|
|
Locale string `json:"locale"`
|
|
Manufacturer string `json:"manufacturer"`
|
|
Model string `json:"model"`
|
|
}
|
|
|
|
profileOS struct {
|
|
BuildNumber string `json:"build_number"`
|
|
Name string `json:"name"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
profileRuntime struct {
|
|
Name string `json:"name"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
profileSample struct {
|
|
ElapsedSinceStartNS uint64 `json:"elapsed_since_start_ns"`
|
|
StackID int `json:"stack_id"`
|
|
ThreadID uint64 `json:"thread_id"`
|
|
}
|
|
|
|
profileThreadMetadata struct {
|
|
Name string `json:"name,omitempty"`
|
|
Priority int `json:"priority,omitempty"`
|
|
}
|
|
|
|
profileStack []int
|
|
|
|
profileTrace struct {
|
|
Frames []*Frame `json:"frames"`
|
|
Samples []profileSample `json:"samples"`
|
|
Stacks []profileStack `json:"stacks"`
|
|
ThreadMetadata map[uint64]*profileThreadMetadata `json:"thread_metadata"`
|
|
}
|
|
|
|
profileInfo struct {
|
|
DebugMeta *DebugMeta `json:"debug_meta,omitempty"`
|
|
Device profileDevice `json:"device"`
|
|
Environment string `json:"environment,omitempty"`
|
|
EventID string `json:"event_id"`
|
|
OS profileOS `json:"os"`
|
|
Platform string `json:"platform"`
|
|
Release string `json:"release"`
|
|
Dist string `json:"dist"`
|
|
Runtime profileRuntime `json:"runtime"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
Trace *profileTrace `json:"profile"`
|
|
Transaction profileTransaction `json:"transaction"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// see https://github.com/getsentry/vroom/blob/a91e39416723ec44fc54010257020eeaf9a77cbd/internal/transaction/transaction.go
|
|
profileTransaction struct {
|
|
ActiveThreadID uint64 `json:"active_thread_id"`
|
|
DurationNS uint64 `json:"duration_ns,omitempty"`
|
|
ID EventID `json:"id"`
|
|
Name string `json:"name"`
|
|
TraceID string `json:"trace_id"`
|
|
}
|
|
)
|