Documentation ¶
Index ¶
- func StopMonitoring()
- type AggregatedDiscoveryMetrics
- type AggregatedQueueMetrics
- type Metric
- type MetricJSON
- type Queue
- func (q *Queue) AggregatedDiscoveryQueueMetrics(period int) *AggregatedQueueMetrics
- func (q *Queue) Consume() inst.InstanceKey
- func (q *Queue) DiscoveryQueueMetrics(period int) []QueueMetric
- func (q *Queue) Push(key inst.InstanceKey)
- func (q *Queue) QueueLen() int
- func (q *Queue) Release(key inst.InstanceKey)
- type QueueMetric
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AggregatedDiscoveryMetrics ¶
type AggregatedDiscoveryMetrics struct { FirstSeen time.Time // timestamp of the first data seen LastSeen time.Time // timestamp of the last data seen CountDistinctInstanceKeys int // number of distinct Instances seen (note: this may not be true: distinct = succeeded + failed) CountDistinctOkInstanceKeys int // number of distinct Instances which succeeded CountDistinctFailedInstanceKeys int // number of distinct Instances which failed FailedDiscoveries uint64 // number of failed discoveries SuccessfulDiscoveries uint64 // number of successful discoveries MeanTotalSeconds float64 MeanBackendSeconds float64 MeanInstanceSeconds float64 FailedMeanTotalSeconds float64 FailedMeanBackendSeconds float64 FailedMeanInstanceSeconds float64 MaxTotalSeconds float64 MaxBackendSeconds float64 MaxInstanceSeconds float64 FailedMaxTotalSeconds float64 FailedMaxBackendSeconds float64 FailedMaxInstanceSeconds float64 MedianTotalSeconds float64 MedianBackendSeconds float64 MedianInstanceSeconds float64 FailedMedianTotalSeconds float64 FailedMedianBackendSeconds float64 FailedMedianInstanceSeconds float64 P95TotalSeconds float64 P95BackendSeconds float64 P95InstanceSeconds float64 FailedP95TotalSeconds float64 FailedP95BackendSeconds float64 FailedP95InstanceSeconds float64 }
AggregatedDiscoveryMetrics contains aggregated metrics for instance discovery. Called from api/discovery-metrics-aggregated/:seconds
func AggregatedSince ¶
func AggregatedSince(c *collection.Collection, t time.Time) (AggregatedDiscoveryMetrics, error)
AggregatedSince returns a large number of aggregated metrics based on the raw metrics collected since the given time.
type AggregatedQueueMetrics ¶
type AggregatedQueueMetrics struct { ActiveMinEntries float64 ActiveMeanEntries float64 ActiveMedianEntries float64 ActiveP95Entries float64 ActiveMaxEntries float64 QueuedMinEntries float64 QueuedMeanEntries float64 QueuedMedianEntries float64 QueuedP95Entries float64 QueuedMaxEntries float64 }
AggregatedQueueMetrics contains aggregate information some part queue metrics
type Metric ¶
type Metric struct { Timestamp time.Time // time the collection was taken InstanceKey inst.InstanceKey // instance being monitored BackendLatency time.Duration // time taken talking to the backend InstanceLatency time.Duration // time taken talking to the instance TotalLatency time.Duration // total time taken doing the discovery Err error // error (if applicable) doing the discovery process }
Metric holds a set of information of instance discovery metrics
type MetricJSON ¶
type MetricJSON struct { Timestamp time.Time Hostname string Port int BackendLatencySeconds formattedFloat InstanceLatencySeconds formattedFloat TotalLatencySeconds formattedFloat Err error }
MetricJSON holds a structure which represents some discovery latency information
func JSONSince ¶
func JSONSince(c *collection.Collection, t time.Time) ([](MetricJSON), error)
JSONSince returns an API response of discovery metric collection information in a printable JSON format.
type Queue ¶
Queue contains information for managing discovery requests
func CreateOrReturnQueue ¶
CreateOrReturnQueue allows for creation of a new discovery queue or returning a pointer to an existing one given the name.
func (*Queue) AggregatedDiscoveryQueueMetrics ¶
func (q *Queue) AggregatedDiscoveryQueueMetrics(period int) *AggregatedQueueMetrics
AggregatedDiscoveryQueueMetrics Returns some aggregate statistics based on the period (last N entries) requested. We store up to config.Config.DiscoveryQueueMaxStatisticsSize values and collect once a second so we expect period to be a smaller value.
func (*Queue) Consume ¶
func (q *Queue) Consume() inst.InstanceKey
Consume fetches a key to process; blocks if queue is empty. Release must be called once after Consume.
func (*Queue) DiscoveryQueueMetrics ¶
func (q *Queue) DiscoveryQueueMetrics(period int) []QueueMetric
DiscoveryQueueMetrics returns some raw queue metrics based on the period (last N entries) requested.
func (*Queue) Push ¶
func (q *Queue) Push(key inst.InstanceKey)
Push enqueues a key if it is not on a queue and is not being processed; silently returns otherwise.
func (*Queue) Release ¶
func (q *Queue) Release(key inst.InstanceKey)
Release removes a key from a list of being processed keys which allows that key to be pushed into the queue again.
type QueueMetric ¶
QueueMetric contains the queue's active and queued sizes