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