Documentation ¶
Index ¶
- func PrintRoutes(echoServer *echo.Echo)
- func Setup(config *config.Config, info *config.Info, g *echo.Group, ...)
- func SetupDetailAPI(g *echo.Group, ds service.DetailService)
- func SetupInfoAPI(info *config.Info, g *echo.Group)
- func SetupProjectAPI(g *echo.Group, ps service.ProjectService)
- func SetupRawAPI(g *echo.Group, ps service.ProjectService, ts service.TestService, ...)
- func SetupRunAPI(g *echo.Group, rs service.RunService, ds service.DetailService)
- func SetupTestAPI(g *echo.Group, ts service.TestService, rs service.RunService)
- type BucketExport
- type Detail
- type DetailAPI
- type DetailExport
- type DetailListRequest
- type DetailListResponse
- type DetailsCreated
- type InfoAPI
- type InfoResponse
- type JSONExportRespose
- type LatencyExport
- type Listable
- type MemoryInfo
- type Model
- type ProjectAPI
- type ProjectList
- type RawAPI
- type RawBucket
- type RawLatencyDistribution
- type RawRequest
- type RawResponse
- type RunAPI
- type RunList
- type TestAPI
- type TestList
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Setup ¶
func Setup( config *config.Config, info *config.Info, g *echo.Group, ps service.ProjectService, ts service.TestService, rs service.RunService, ds service.DetailService)
Setup sets up the application API
func SetupDetailAPI ¶
func SetupDetailAPI(g *echo.Group, ds service.DetailService)
SetupDetailAPI sets up the API
func SetupInfoAPI ¶
SetupInfoAPI sets up the info endpoint
func SetupProjectAPI ¶
func SetupProjectAPI(g *echo.Group, ps service.ProjectService)
SetupProjectAPI sets up the API
func SetupRawAPI ¶
func SetupRawAPI(g *echo.Group, ps service.ProjectService, ts service.TestService, rs service.RunService, ds service.DetailService)
SetupRawAPI sets up the API
func SetupRunAPI ¶
func SetupRunAPI(g *echo.Group, rs service.RunService, ds service.DetailService)
SetupRunAPI sets up the API
func SetupTestAPI ¶
func SetupTestAPI(g *echo.Group, ts service.TestService, rs service.RunService)
SetupTestAPI sets up the API
Types ¶
type BucketExport ¶
type BucketExport struct { // The Mark for histogram bucket in seconds Mark float64 `json:"mark"` // The count in the bucket Count int `json:"count"` // The frequency of results in the bucket as a decimal percentage Frequency float64 `json:"frequency"` }
BucketExport holds histogram data
type Detail ¶
type Detail struct { Model // Run id RunID uint `json:"runID" example:"321"` // Timestamp for the detail Timestamp time.Time `json:"timestamp"` // Latency of the call Latency float64 `json:"latency" validate:"required"` // Error details Error string `json:"error"` // Status of the call Status string `json:"status"` }
Detail is a detail object
type DetailAPI ¶
type DetailAPI struct {
// contains filtered or unexported fields
}
DetailAPI provides the api
type DetailExport ¶
type DetailExport struct { Latency float64 `json:"latency" validate:"required"` Error string `json:"error"` Status string `json:"status"` }
DetailExport is detail for export
type DetailListRequest ¶
type DetailListRequest struct { // The property by which to sort the results Sort string `json:"sort" query:"sort" validate:"omitempty,oneof=id"` // The sort order Order string `json:"order" query:"order" validate:"omitempty,oneof=asc desc"` // The page to view Page uint `json:"page" query:"page"` }
DetailListRequest request
type DetailListResponse ¶
DetailListResponse response holds a list of details
type DetailsCreated ¶
type DetailsCreated struct { // Number of successfully created detail objects Success uint `json:"success"` // Number of failed detail objects Fail uint `json:"fail"` }
DetailsCreated summary of how many details got created and how many failed
type InfoAPI ¶
type InfoAPI struct {
// contains filtered or unexported fields
}
InfoAPI struct for info api
type InfoResponse ¶
type InfoResponse struct { // Version of the application Version string `json:"version"` // Go runtime version RuntimeVersion string `json:"runtimeVersion"` // Uptime of the server Uptime string `json:"uptime"` // Memory info MemoryInfo *MemoryInfo `json:"memoryInfo,omitempty"` }
InfoResponse is the info response
type JSONExportRespose ¶
type JSONExportRespose struct { Date time.Time `json:"date"` Count uint64 `json:"count"` Total time.Duration `json:"total"` Average time.Duration `json:"average"` Fastest time.Duration `json:"fastest"` Slowest time.Duration `json:"slowest"` Rps float64 `json:"rps"` Options *model.Options `json:"options,omitempty"` LatencyDistribution []*LatencyExport `json:"latencyDistribution"` Histogram []*BucketExport `json:"histogram"` Details []*DetailExport `json:"details"` }
JSONExportRespose is the response to JSON export
type LatencyExport ¶
type LatencyExport struct { Percentage int `json:"percentage"` Latency time.Duration `json:"latency"` }
LatencyExport holds latency distribution data
type Listable ¶
type Listable struct { // The total number of items Total uint `json:"total" example:"10"` }
Listable is list
type MemoryInfo ¶
type MemoryInfo struct { // Bytes of allocated heap objects. Alloc uint64 `json:"allocated"` // Cumulative bytes allocated for heap objects. TotalAlloc uint64 `json:"totalAllocated"` // The total bytes of memory obtained from the OS. System uint64 `json:"system"` // The number of pointer lookups performed by the runtime. Lookups uint64 `json:"lookups"` // The cumulative count of heap objects allocated. // The number of live objects is Mallocs - Frees. Mallocs uint64 `json:"mallocs"` // The cumulative count of heap objects freed. Frees uint64 `json:"frees"` // The number of completed GC cycles. NumGC uint32 `json:"numGC"` }
MemoryInfo some memory stats
type Model ¶
type Model struct { // The id ID uint `json:"id" example:"123"` // The creation time CreatedAt time.Time `json:"createdAt"` // The updated time UpdatedAt time.Time `json:"updatedAt"` // The deleted time DeletedAt *time.Time `json:"deletedAt"` }
Model for common api objects
type ProjectAPI ¶
type ProjectAPI struct {
// contains filtered or unexported fields
}
ProjectAPI provides the api
type ProjectList ¶
ProjectList response
type RawAPI ¶
type RawAPI struct {
// contains filtered or unexported fields
}
RawAPI provides the api
type RawBucket ¶
type RawBucket struct { // The Mark for histogram bucket in seconds Mark float64 `json:"mark"` // The count in the bucket Count int `json:"count"` // The frequency of results in the bucket as a decimal percentage Frequency float64 `json:"frequency"` }
RawBucket holds histogram data
type RawLatencyDistribution ¶
type RawLatencyDistribution struct { // Percentage of the dictribution Percentage int `json:"percentage"` // Latency of this distributoin Latency time.Duration `json:"latency"` }
RawLatencyDistribution holds latency distribution data
type RawRequest ¶
type RawRequest struct { // Date of the test Date time.Time `json:"date"` // Options for the test Options *model.Options `json:"options,omitempty"` // Count is the number for calls Count uint64 `json:"count"` // Total duration of the test Total time.Duration `json:"total"` // Acerage duration of a call Average time.Duration `json:"average"` // Fastest call duration Fastest time.Duration `json:"fastest"` // Slowest call duration Slowest time.Duration `json:"slowest"` // Rps is the requests per second metric Rps float64 `json:"rps"` // ErrorDist is the error distribution ErrorDist map[string]int `json:"errorDistribution,omitempty"` // Status code distribution StatusCodeDist map[string]int `json:"statusCodeDistribution,omitempty"` // Details of all the calls Details []*model.Detail `json:"details"` // Latency distribution LatencyDistribution []*RawLatencyDistribution `json:"latencyDistribution"` // Histogram is the latency histrogram Histogram []*RawBucket `json:"histogram"` }
RawRequest request to the create raw api
func (RawRequest) MarshalJSON ¶
func (rr RawRequest) MarshalJSON() ([]byte, error)
MarshalJSON for RawRequest
func (*RawRequest) UnmarshalJSON ¶
func (rr *RawRequest) UnmarshalJSON(data []byte) error
UnmarshalJSON for RawRequest
type RawResponse ¶
type RawResponse struct { // Created project Project *model.Project `json:"project"` // Created test Test *model.Test `json:"test"` // Created run Run *model.Run `json:"run"` // The summary of created details Details *DetailsCreated `json:"details"` }
RawResponse is the response to the raw endpoint
type RunAPI ¶
type RunAPI struct {
// contains filtered or unexported fields
}
RunAPI provides the api