Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bucket ¶
Bucket is the transformed result from a Elasticsearch API response. It only contains the formatted time and the number of documents for this time. We use a capitalized key for the JSON representation of the documents field, because the name of this field is also shown in the UI as label.
type Config ¶
type Config struct { Name string `json:"name"` DisplayName string `json:"displayName"` Description string `json:"description"` Address string `json:"address"` Username string `json:"username"` Password string `json:"password"` Token string `json:"token"` }
Config is the structure of the configuration for a single Elasticsearch instance.
type Data ¶
type Data struct { ScrollID string `json:"scrollID"` Took int64 `json:"took"` Hits int64 `json:"hits"` Documents []map[string]interface{} `json:"documents"` Buckets []Bucket `json:"buckets"` }
Data is the transformed Response result, which is passed to the React UI. It contains only the important fields, like the scrollID, the time a request took, the number of hits, the documents and the buckets.
type Instance ¶
type Instance struct { Name string // contains filtered or unexported fields }
Instance represents a single Elasticsearch instance, which can be added via the configuration file.
func (*Instance) GetLogs ¶
func (i *Instance) GetLogs(ctx context.Context, query, scrollID string, timeStart, timeEnd int64) (*Data, error)
GetLogs returns the raw log documents and the buckets for the distribution of the logs accross the selected time range. We have to pass a query, start and end time to the function. The scrollID can be an empty string to start a new query. If a scrollID is provided it will be used for pagination.
type Response ¶
type Response struct { ScrollID string `json:"_scroll_id"` Took int64 `json:"took"` TimedOut bool `json:"timed_out"` Shards struct { Total int64 `json:"total"` Successful int64 `json:"successful"` Skipped int64 `json:"skipped"` Failed int64 `json:"failed"` } `json:"_shards"` Hits struct { Total struct { Value int64 `json:"value"` Relation string `json:"relation"` } `json:"total"` Hits []map[string]interface{} `json:"hits"` } `json:"hits"` Aggregations struct { LogCount struct { Buckets []struct { KeyAsString string `json:"key_as_string"` Key int64 `json:"key"` DocCount int64 `json:"doc_count"` } `json:"buckets"` } `json:"logcount"` } `json:"aggregations"` }
Response is the structure of successful Elasticsearch API call.
type ResponseError ¶
type ResponseError struct { Error struct { RootCause []struct { Type string `json:"type"` Reason string `json:"reason"` } `json:"root_cause"` Type string `json:"type"` Reason string `json:"reason"` CausedBy struct { Type string `json:"type"` Reason string `json:"reason"` } `json:"caused_by"` } `json:"error"` Status int `json:"status"` }
ResponseError is the structure of failed Elasticsearch API call.