Documentation
¶
Index ¶
- Constants
- type Client
- type Compression
- type InsertClient
- func (c *InsertClient) EnqueueEvent(data interface{}) (err error)
- func (c *InsertClient) Flush() error
- func (c *InsertClient) PostEvent(data interface{}) error
- func (c *InsertClient) SetCompression(compression Compression)
- func (c *InsertClient) Start() error
- func (c *InsertClient) StartListener(inputChannel chan interface{}) (err error)
- func (c *InsertClient) Validate() error
- type QueryClient
- type QueryMetadata
- type QueryResponse
- type Statistics
Constants ¶
const ( // DefaultBatchTimeout is the amount of time to submit batches even if the event count hasn't been hit DefaultBatchTimeout = 1 * time.Minute // DefaultBatchEventCount is the maximum number of events before sending a batch (fuzzy) DefaultBatchEventCount = 950 // DefaultWorkerCount is the number of background workers consuming and sending events DefaultWorkerCount = 1 // DefaultInsertRequestTimeout is the amount of seconds to wait for a insert response DefaultInsertRequestTimeout = 10 * time.Second // DefaultQueryRequestTimeout is the amount of seconds to wait for a query response DefaultQueryRequestTimeout = 20 * time.Second // DefaultRetries is how many times to attempt the query DefaultRetries = 3 // DefaultRetryWaitTime is the amount of seconds between query attempts DefaultRetryWaitTime = 5 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
URL *url.URL
Logger *log.Logger
RequestTimeout time.Duration
RetryCount int
RetryWait time.Duration
}
Client is the building block of the insert and query clients
func (*Client) UseCustomURL ¶
UseCustomURL allows overriding the default Insights Host / Scheme.
type Compression ¶
type Compression int32
Compression to use during transport.
const ( None Compression = iota Deflate Compression = iota Gzip Compression = iota Zlib Compression = iota )
Supported / recognized types of compression
type InsertClient ¶
type InsertClient struct {
InsertKey string
WorkerCount int
BatchSize int
BatchTime time.Duration
Compression Compression
Client
Statistics
// contains filtered or unexported fields
}
InsertClient contains all of the configuration required for inserts
func NewInsertClient ¶
func NewInsertClient(insertKey string, accountID string) *InsertClient
NewInsertClient makes a new client for the user to send data with
func (*InsertClient) EnqueueEvent ¶
func (c *InsertClient) EnqueueEvent(data interface{}) (err error)
EnqueueEvent handles the queueing. Only works in batch mode.
func (*InsertClient) Flush ¶
func (c *InsertClient) Flush() error
Flush gives the user a way to manually flush the queue in the foreground. This is also used by watchdog when the timer expires.
func (*InsertClient) PostEvent ¶
func (c *InsertClient) PostEvent(data interface{}) error
PostEvent allows sending a single event directly.
func (*InsertClient) SetCompression ¶
func (c *InsertClient) SetCompression(compression Compression)
SetCompression allows modification of the compression type used in communication
func (*InsertClient) Start ¶
func (c *InsertClient) Start() error
Start runs the insert client in batch mode.
func (*InsertClient) StartListener ¶
func (c *InsertClient) StartListener(inputChannel chan interface{}) (err error)
StartListener creates a goroutine that consumes from a channel and Enqueues events as to not block the writing of events to the channel
func (*InsertClient) Validate ¶
func (c *InsertClient) Validate() error
Validate makes sure the InsertClient is configured correctly for use
type QueryClient ¶
QueryClient contains all of the configuration required for queries
func NewQueryClient ¶
func NewQueryClient(queryKey, accountID string) *QueryClient
NewQueryClient makes a new client for the user to query with.
func (*QueryClient) Query ¶ added in v1.0.1
func (c *QueryClient) Query(nrqlQuery string, response interface{}) (err error)
Query initiates an Insights query, with the JSON parsed into 'response' struct
func (*QueryClient) QueryEvents ¶
func (c *QueryClient) QueryEvents(nrqlQuery string) (response *QueryResponse, err error)
QueryEvents initiates an Insights query, returns a response for parsing
func (*QueryClient) Validate ¶
func (c *QueryClient) Validate() error
Validate makes sure the QueryClient is configured correctly for use
type QueryMetadata ¶
type QueryMetadata struct {
Contents interface{} `json:"contents"`
EventType string `json:"eventType"`
OpenEnded bool `json:"openEnded"`
BeginTime time.Time `json:"beginTime"`
EndTime time.Time `json:"endTime"`
BeginTimeMillis int64 `json:"beginTimeMillis"`
EndTimeMillis int64 `json:"endTimeMillis"`
RawSince string `json:"rawSince"`
RawUntil string `json:"rawUntil"`
RawCompareWith string `json:"rawCompareWith"`
}
QueryMetadata used to decode the JSON response metadata from Insights
type QueryResponse ¶
type QueryResponse struct {
Results []map[string]interface{} `json:"results"`
Facets []map[string]interface{} `json:"facets"`
Metadata QueryMetadata `json:"metadata"`
}
QueryResponse used to decode the JSON response from Insights
type Statistics ¶
type Statistics struct {
// the number of events added using EnqueueEvent
EventCount int64
// the number of events that finished processing (both successfully and not) in batch mode
ProcessedEventCount int64
// the number of times a Flush has been requested
FlushCount int64
// the number of bytes that have been attempted to be written to the insights API
ByteCount int64
// the number of times a flush has occurred with a full batch of events
FullFlushCount int64
// the number of times a flush has occurred with a partial batch of events
PartialFlushCount int64
// the number of times flush has been called because the BatchTime timer expired
TimerExpiredCount int64
// the number of times failed batches have been retried
InsightsRetryCount int64
// not used
HTTPErrorCount int64
}
Statistics about the inserted data