Documentation ¶
Index ¶
- Constants
- Variables
- func GetFormulaHTML(metric string) string
- func GetMetricsFilenames(filenames []string) []string
- func GetOptime(optime interface{}) int64
- func GetScoreByRange(v float64, low float64, high float64) int
- func GetShortLabel(label string) string
- func PrintAllStats(docs []ServerStatusDoc, span int) string
- type Assessment
- type Attribs
- type BuildInfo
- type CPUMetrics
- type ConcurrentTransactionsCountDoc
- type ConcurrentTransactionsDoc
- type ConnectionsDoc
- type DiagnosticData
- type DiagnosticDoc
- type DiskMetrics
- type DiskStats
- type DocumentDoc
- type ExtraInfoDoc
- type FTDCStats
- type GlobalLockDoc
- type GlobalLockSubDoc
- type HostInfo
- type MemDoc
- type MemberDoc
- type Metrics
- type MetricsDoc
- type NetworkDoc
- type OSDoc
- type OpCountersDoc
- type OpLatenciesDoc
- type OpLatenciesOpDoc
- type OperationDoc
- type OptimeDoc
- type QueryExecutorDoc
- type QueryRequest
- type RangeDoc
- type ReplSetStatusDoc
- type ScoreFormula
- type ServerInfoDoc
- type ServerStatusDoc
- type SystemDoc
- type SystemMetricsDoc
- type TargetDoc
- type TimeSeriesDoc
- type WiredTigerBlockManagerDoc
- type WiredTigerCacheDoc
- type WiredTigerDataHandleDoc
- type WiredTigerDoc
Constants ¶
const PRIMARY = "PRIMARY"
PRIMARY - primary node
const SECONDARY = "SECONDARY"
SECONDARY - secondary node
Variables ¶
var FormulaMap = map[string]ScoreFormula{ "conns_created/s": ScoreFormula{/* contains filtered or unexported fields */}, "conns_current": ScoreFormula{/* contains filtered or unexported fields */}, "cpu_idle": ScoreFormula{/* contains filtered or unexported fields */}, "cpu_iowait": ScoreFormula{/* contains filtered or unexported fields */}, "cpu_system": ScoreFormula{/* contains filtered or unexported fields */}, "cpu_user": ScoreFormula{/* contains filtered or unexported fields */}, "disku_": ScoreFormula{/* contains filtered or unexported fields */}, "iops_": ScoreFormula{/* contains filtered or unexported fields */}, "latency_command": ScoreFormula{/* contains filtered or unexported fields */}, "latency_read": ScoreFormula{/* contains filtered or unexported fields */}, "latency_write": ScoreFormula{/* contains filtered or unexported fields */}, "mem_page_faults": ScoreFormula{/* contains filtered or unexported fields */}, "mem_resident": ScoreFormula{/* contains filtered or unexported fields */}, "ops_": ScoreFormula{/* contains filtered or unexported fields */}, "queued_read": ScoreFormula{/* contains filtered or unexported fields */}, "queued_write": ScoreFormula{/* contains filtered or unexported fields */}, "scan_keys": ScoreFormula{/* contains filtered or unexported fields */}, "scan_objects": ScoreFormula{/* contains filtered or unexported fields */}, "scan_sort": ScoreFormula{/* contains filtered or unexported fields */}, "ticket_avail_read": ScoreFormula{/* contains filtered or unexported fields */}, "ticket_avail_write": ScoreFormula{/* contains filtered or unexported fields */}, "wt_cache_used": ScoreFormula{/* contains filtered or unexported fields */}, "wt_cache_dirty": ScoreFormula{/* contains filtered or unexported fields */}, "wt_dhandles_active": ScoreFormula{/* contains filtered or unexported fields */}, "wt_modified_evicted": ScoreFormula{/* contains filtered or unexported fields */}, "wt_unmodified_evicted": ScoreFormula{/* contains filtered or unexported fields */}, }
FormulaMap holds low and high watermarks
Functions ¶
func GetFormulaHTML ¶
GetFormulaHTML returns scoring formula
func GetMetricsFilenames ¶
GetMetricsFilenames gets metrics or keyhole_stats filesnames
func GetScoreByRange ¶
GetScoreByRange gets score
func PrintAllStats ¶
func PrintAllStats(docs []ServerStatusDoc, span int) string
PrintAllStats print all stats
Types ¶
type Assessment ¶
type Assessment struct {
// contains filtered or unexported fields
}
Assessment stores timeserie data
func NewAssessment ¶
func NewAssessment(stats FTDCStats) *Assessment
NewAssessment returns assessment object
func (*Assessment) GetAssessment ¶
GetAssessment gets assessment summary
func (*Assessment) SetVerbose ¶
func (as *Assessment) SetVerbose(verbose bool)
SetVerbose sets verbose level
type Attribs ¶
type Attribs struct {
// contains filtered or unexported fields
}
Attribs stores attribs map
func NewAttribs ¶
NewAttribs returns Attribs structure
func (*Attribs) GetServerStatusDataPoints ¶
func (attr *Attribs) GetServerStatusDataPoints(i int) ServerStatusDoc
GetServerStatusDataPoints returns server status
func (*Attribs) GetSystemMetricsDataPoints ¶
func (attr *Attribs) GetSystemMetricsDataPoints(i int) SystemMetricsDoc
GetSystemMetricsDataPoints returns system metrics
type BuildInfo ¶
type BuildInfo struct {
Version string `json:"version" bson:"version"`
}
BuildInfo -
type CPUMetrics ¶
type CPUMetrics struct { IdleMS uint64 `json:"idle_ms" bson:"idle_ms"` IOWaitMS uint64 `json:"iowait_ms" bson:"iowait_ms"` NiceMS uint64 `json:"nice_ms" bson:"nice_ms"` SoftirqMS uint64 `json:"softirq_ms" bson:"softirq_ms"` StealMS uint64 `json:"steal_ms" bson:"steal_ms"` SystemMS uint64 `json:"system_ms" bson:"system_ms"` UserMS uint64 `json:"user_ms" bson:"user_ms"` TotalMS uint64 }
CPUMetrics -
type ConcurrentTransactionsCountDoc ¶
type ConcurrentTransactionsCountDoc struct { Available uint64 `json:"available" bson:"available"` Out uint64 `json:"out" bson:"out"` TotalTickets uint64 `json:"totalTickets" bson:"totalTickets"` }
ConcurrentTransactionsCountDoc contains db.serverStatus().wiredTiger.concurrentTransactions.[read|write]
type ConcurrentTransactionsDoc ¶
type ConcurrentTransactionsDoc struct { Read ConcurrentTransactionsCountDoc `json:"read" bson:"read"` Write ConcurrentTransactionsCountDoc `json:"write" bson:"write"` }
ConcurrentTransactionsDoc contains db.serverStatus().wiredTiger.concurrentTransactions
type ConnectionsDoc ¶
type ConnectionsDoc struct { Current uint64 `json:"current" bson:"current"` Available uint64 `json:"available" bson:"available"` TotalCreated uint64 `json:"totalCreated" bson:"totalCreated"` Active uint64 `json:"active" bson:"active"` }
ConnectionsDoc contains db.serverStatus().connections
type DiagnosticData ¶
type DiagnosticData struct { ServerInfo interface{} ServerStatusList []ServerStatusDoc ReplSetStatusList []ReplSetStatusDoc SystemMetricsList []SystemMetricsDoc // contains filtered or unexported fields }
DiagnosticData -
func (*DiagnosticData) DecodeDiagnosticData ¶
func (d *DiagnosticData) DecodeDiagnosticData(filenames []string) error
DecodeDiagnosticData decodes FTDC data files
func (*DiagnosticData) GetEndPoints ¶
func (d *DiagnosticData) GetEndPoints() []string
GetEndPoints gets grafana uri
func (*DiagnosticData) PrintDiagnosticData ¶
func (d *DiagnosticData) PrintDiagnosticData(filenames []string) (string, error)
PrintDiagnosticData prints diagnostic data of MongoD
type DiagnosticDoc ¶
type DiagnosticDoc struct { Start time.Time `json:"start" bson:"start"` ServerStatus ServerStatusDoc `json:"serverStatus" bson:"serverStatus"` ReplSetGetStatus ReplSetStatusDoc `json:"replSetGetStatus" bson:"replSetGetStatus"` SystemMetrics SystemMetricsDoc `json:"systemMetrics" bson:"systemMetrics"` End time.Time `json:"end" bson:"end"` }
DiagnosticDoc -
type DiskMetrics ¶
type DiskMetrics struct { ReadTimeMS uint64 `json:"read_time_ms" bson:"read_time_ms"` WriteTimeMS uint64 `json:"write_time_ms" bson:"write_time_ms"` IOInProgress uint64 `json:"io_in_progress" bson:"io_in_progress"` IOQueuedMS uint64 `json:"io_queued_ms" bson:"io_queued_ms"` IOTimeMS uint64 `json:"io_time_ms" bson:"io_time_ms"` Reads uint64 `json:"reads" bson:"reads"` Writes uint64 `json:"writes" bson:"writes"` }
DiskMetrics -
type DiskStats ¶
type DiskStats struct { IOPS TimeSeriesDoc IOInProgress TimeSeriesDoc IOQueuedMS TimeSeriesDoc ReadTimeMS TimeSeriesDoc WriteTimeMS TimeSeriesDoc Utilization TimeSeriesDoc }
DiskStats -
type DocumentDoc ¶
type DocumentDoc struct { Deleted int `json:"deleted" bson:"deleted"` Inserted int `json:"inserted" bson:"inserted"` Returned int `json:"returned" bson:"returned"` Updated int `json:"updated" bson:"updated"` }
DocumentDoc contains db.serverStatus().document
type ExtraInfoDoc ¶
type ExtraInfoDoc struct {
PageFaults uint64 `json:"page_faults" bson:"page_faults"`
}
ExtraInfoDoc contains db.serverStatus().extra_info
type FTDCStats ¶
type FTDCStats struct { DiskStats map[string]DiskStats MaxWTCache float64 ReplicationLags map[string]TimeSeriesDoc ReplSetLegends []string ReplSetStatusList []ReplSetStatusDoc ServerInfo ServerInfoDoc ServerStatusList []ServerStatusDoc SystemMetricsList []SystemMetricsDoc TimeSeriesData map[string]TimeSeriesDoc }
FTDCStats FTDC stats
type GlobalLockDoc ¶
type GlobalLockDoc struct { ActiveClients GlobalLockSubDoc `json:"activeClients" bson:"activeClients"` CurrentQueue GlobalLockSubDoc `json:"currentQueue" bson:"currentQueue"` TotalTime int `json:"totalTime" bson:"totalTime"` }
GlobalLockDoc contains db.serverStatus().globalLockDoc
type GlobalLockSubDoc ¶
type GlobalLockSubDoc struct { Readers uint64 `json:"readers" bson:"readers"` Total uint64 `json:"total" bson:"total"` Writers uint64 `json:"writers" bson:"writers"` }
GlobalLockSubDoc contains db.serverStatus().globalLockDoc.[activeClients|currentQueue]
type HostInfo ¶
type HostInfo struct { OS OSDoc `json:"os" bson:"os"` System SystemDoc `json:"system" bson:"system"` }
HostInfo -
type MemDoc ¶
type MemDoc struct { Resident uint64 `json:"resident" bson:"resident"` Virtual uint64 `json:"virtual" bson:"virtual"` }
MemDoc containers db.serverStatus().mem
type MemberDoc ¶
type MemberDoc struct { Name string `json:"name" bson:"name"` Optime interface{} `json:"optime" bson:"optime"` State int `json:"state" bson:"state"` }
MemberDoc stores replset status
type Metrics ¶
Metrics stores metrics from FTDC data
func (*Metrics) AddFTDCDetailStats ¶
func (m *Metrics) AddFTDCDetailStats(diag *DiagnosticData)
AddFTDCDetailStats assign FTDC values
func (*Metrics) Handler ¶
func (m *Metrics) Handler(w http.ResponseWriter, r *http.Request)
Handler handle HTTP requests
func (*Metrics) ProcessFiles ¶
ProcessFiles reads metrics files/data
func (*Metrics) SetVerbose ¶
SetVerbose sets verbose mode
type MetricsDoc ¶
type MetricsDoc struct { Document DocumentDoc `json:"document" bson:"document"` QueryExecutor QueryExecutorDoc `json:"queryExecutor" bson:"queryExecutor"` Operation OperationDoc `json:"operation" bson:"operation"` }
MetricsDoc contains db.serverStatus().metrics
type NetworkDoc ¶
type NetworkDoc struct { BytesIn uint64 `json:"bytesIn" bson:"bytesIn"` BytesOut uint64 `json:"bytesOut" bson:"bytesOut"` NumRequests uint64 `json:"numRequests" bson:"numRequests"` PhysicalBytesIn uint64 `json:"physicalBytesIn" bson:"physicalBytesIn"` PhysicalBytesOut uint64 `json:"physicalBytesOut" bson:"physicalBytesOut"` }
NetworkDoc contains db.serverStatus().network
type OSDoc ¶
type OSDoc struct { Name string `json:"name" bson:"name"` Type string `json:"type" bson:"type"` Version string `json:"version" bson:"version"` }
OSDoc -
type OpCountersDoc ¶
type OpCountersDoc struct { Command uint64 `json:"command" bson:"command"` Delete uint64 `json:"delete" bson:"delete"` Getmore uint64 `json:"getmore" bson:"getmore"` Insert uint64 `json:"insert" bson:"insert"` Query uint64 `json:"query" bson:"query"` Update uint64 `json:"update" bson:"update"` }
OpCountersDoc contains db.serverStatus().OpCounters
type OpLatenciesDoc ¶
type OpLatenciesDoc struct { Commands OpLatenciesOpDoc `json:"commands" bson:"commands"` Reads OpLatenciesOpDoc `json:"reads" bson:"reads"` Writes OpLatenciesOpDoc `json:"writes" bson:"writes"` }
OpLatenciesDoc contains db.serverStatus().opLatencies
type OpLatenciesOpDoc ¶
type OpLatenciesOpDoc struct { Latency uint64 `json:"latency" bson:"latency"` Ops uint64 `json:"ops" bson:"ops"` }
OpLatenciesOpDoc contains doc of db.serverStatus().opLatencies
type OperationDoc ¶
type OperationDoc struct { ScanAndOrder uint64 `json:"scanAndOrder" bson:"scanAndOrder"` WriteConflicts uint64 `json:"writeConflicts" bson:"writeConflicts"` }
OperationDoc contains db.serverStatus().operation
type QueryExecutorDoc ¶
type QueryExecutorDoc struct { Scanned uint64 `json:"scanned" bson:"scanned"` ScannedObjects uint64 `json:"scannedObjects" bson:"scannedObjects"` }
QueryExecutorDoc contains db.serverStatus().queryExecutor
type QueryRequest ¶
type QueryRequest struct { Timezone string `json:"timezone"` Range RangeDoc `json:"range"` Targets []TargetDoc `json:"targets"` }
QueryRequest -
type ReplSetStatusDoc ¶
type ReplSetStatusDoc struct { Date time.Time `json:"date" bson:"date"` Members []MemberDoc `json:"members" bson:"members"` }
ReplSetStatusDoc stores replset status
type ScoreFormula ¶
type ScoreFormula struct {
// contains filtered or unexported fields
}
ScoreFormula holds metric info
type ServerInfoDoc ¶
type ServerInfoDoc struct { HostInfo HostInfo `json:"hostInfo" bson:"hostInfo"` BuildInfo BuildInfo `json:"buildInfo" bson:"buildInfo"` }
ServerInfoDoc -
type ServerStatusDoc ¶
type ServerStatusDoc struct { Connections ConnectionsDoc `json:"connections" bson:"connections"` ExtraInfo ExtraInfoDoc `json:"extra_info" bson:"extra_info"` GlobalLock GlobalLockDoc `json:"globalLock" bson:"globalLock"` Host string `json:"host" bson:"host"` LocalTime time.Time `json:"localTime" bson:"localTime"` Mem MemDoc `json:"mem" bson:"mem"` Metrics MetricsDoc `json:"metrics" bson:"metrics"` Network NetworkDoc `json:"network" bson:"network"` OpCounters OpCountersDoc `json:"opcounters" bson:"opcounters"` OpLatencies OpLatenciesDoc `json:"opLatencies" bson:"opLatencies"` Process string `json:"process" bson:"process"` Repl bson.M `json:"repl" bson:"repl"` Sharding bson.M `json:"sharding" bson:"sharding"` Uptime uint64 `json:"uptime" bson:"uptime"` Version string `json:"version" bson:"version"` WiredTiger WiredTigerDoc `json:"wiredTiger" bson:"wiredTiger"` }
ServerStatusDoc contains docs from db.serverStatus()
type SystemDoc ¶
type SystemDoc struct { CPUArch string `json:"cpuArch" bson:"cpuArch"` Hostname string `json:"hostname" bson:"hostname"` NumCores int `json:"numCores" bson:"numCores"` MemSizeMB int `json:"memSizeMB" bson:"memSizeMB"` }
SystemDoc -
type SystemMetricsDoc ¶
type SystemMetricsDoc struct { Start time.Time `json:"start" bson:"start"` CPU CPUMetrics `json:"cpu" bson:"cpu"` Disks map[string]DiskMetrics `json:"disks" bson:"disks"` }
SystemMetricsDoc -
type TargetDoc ¶
type TargetDoc struct { Target string `json:"target"` RefID string `json:"refId"` Type string `json:"type"` }
TargetDoc -
type TimeSeriesDoc ¶
type TimeSeriesDoc struct { Target string `json:"target"` DataPoints [][]float64 `json:"datapoints"` }
TimeSeriesDoc -
func FilterTimeSeriesData ¶
func FilterTimeSeriesData(tsData TimeSeriesDoc, from time.Time, to time.Time) TimeSeriesDoc
FilterTimeSeriesData returns partial data points if there are too many
type WiredTigerBlockManagerDoc ¶
type WiredTigerBlockManagerDoc struct { BytesRead uint64 `json:"bytes read"` BytesWritten uint64 `json:"bytes written"` BytesWrittenCheckPoint uint64 `json:"bytes written for checkpoint"` }
WiredTigerBlockManagerDoc contains db.serverStatus().wiredTiger.cache
type WiredTigerCacheDoc ¶
type WiredTigerCacheDoc struct { BytesReadIntoCache uint64 `json:"bytes read into cache" bson:"bytes read into cache"` BytesWrittenFromCache uint64 `json:"bytes written from cache" bson:"bytes written from cache"` CurrentlyInCache uint64 `json:"bytes currently in the cache" bson:"bytes currently in the cache"` MaxBytesConfigured uint64 `json:"maximum bytes configured" bson:"maximum bytes configured"` ModifiedPagesEvicted uint64 `json:"modified pages evicted" bson:"modified pages evicted"` UnmodifiedPagesEvicted uint64 `json:"unmodified pages evicted" bson:"unmodified pages evicted"` TrackedDirtyBytes uint64 `json:"tracked dirty bytes in the cache" bson:"tracked dirty bytes in the cache"` }
WiredTigerCacheDoc contains db.serverStatus().wiredTiger.cache
type WiredTigerDataHandleDoc ¶
type WiredTigerDataHandleDoc struct { Active uint64 `json:"connection data handles currently active" bson:"connection data handles currently active"` Size uint64 `json:"connection data handle size" bson:"connection data handle size"` }
WiredTigerDataHandleDoc contains db.serverStatus().wiredTiger.data-handle
type WiredTigerDoc ¶
type WiredTigerDoc struct { Perf interface{} `json:"perf" bson:"perf"` BlockManager WiredTigerBlockManagerDoc `json:"block-manager" bson:"block-manager"` Cache WiredTigerCacheDoc `json:"cache" bson:"cache"` ConcurrentTransactions ConcurrentTransactionsDoc `json:"concurrentTransactions" bson:"concurrentTransactions"` DataHandle WiredTigerDataHandleDoc `json:"data-handle" bson:"data-handle"` }
WiredTigerDoc contains db.serverStatus().wiredTiger