Preparing report...

Report for github.com/percona/qan-api

A    Great!    Found 62 issues across 80 files

Tweet

gofmt95%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo92%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

    • qan-api/app/metrics/query.go
    • Line 492: warning: cyclomatic complexity 21 of function (*QueryMetricsHandler).getPerconaServer() is high (> 15) (gocyclo)
    • Line 725: warning: cyclomatic complexity 21 of function (*QueryMetricsHandler).getPerconaServerSummary() is high (> 15) (gocyclo)
    • Line 337: warning: cyclomatic complexity 18 of function (*QueryMetricsHandler).getPerfSchemaSummary() is high (> 15) (gocyclo)
    • qan-api/app/qan/mysql.go
    • Line 361: warning: cyclomatic complexity 25 of function (*MySQLMetricWriter).getMetricValues() is high (> 15) (gocyclo)
    • Line 75: warning: cyclomatic complexity 24 of function (*MySQLMetricWriter).Write() is high (> 15) (gocyclo)

golint27%

Golint is a linter for Go source code.

    • qan-api/app/shared/services.go
    • Line 29: warning: exported var AgentDirectory should have comment or be unexported (golint)
    • Line 30: warning: exported var InternalStats should have comment or be unexported (golint)
    • Line 31: warning: exported var RouteStats should have comment or be unexported (golint)
    • Line 32: warning: exported var QueryAbstracter should have comment or be unexported (golint)
    • Line 33: warning: exported var TableParser should have comment or be unexported (golint)
    • qan-api/test/mock/comm.go
    • Line 20: warning: exported type CommProcessor should have comment or be unexported (golint)
    • Line 25: warning: exported method CommProcessor.BeforeSend should have comment or be unexported (golint)
    • Line 29: warning: exported method CommProcessor.AfterRecv should have comment or be unexported (golint)
    • Line 33: warning: exported method CommProcessor.Timeout should have comment or be unexported (golint)
    • qan-api/app/controllers/agent/ws.go
    • Line 56: warning: comment on exported method Agent.Cmd should be of the form "Cmd ..." (golint)
    • Line 114: warning: exported method Agent.Data should have comment or be unexported (golint)
    • Line 151: warning: exported method Agent.Log should have comment or be unexported (golint)
    • qan-api/app/db/mysql/manager.go
    • Line 28: warning: exported type Manager should have comment or be unexported (golint)
    • Line 34: warning: exported function NewManager should have comment or be unexported (golint)
    • Line 41: warning: exported method Manager.Open should have comment or be unexported (golint)
    • Line 69: warning: exported method Manager.DB should have comment or be unexported (golint)
    • Line 73: warning: exported method Manager.Close should have comment or be unexported (golint)
    • qan-api/app/auth/mysql.go
    • Line 21: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 27: warning: exported type MySQLHandler should have comment or be unexported (golint)
    • Line 31: warning: exported function NewMySQLHandler should have comment or be unexported (golint)
    • Line 38: warning: exported method MySQLHandler.GetAgentId should have comment or be unexported (golint)
    • qan-api/app/shared/errors.go
    • Line 26: warning: exported var ErrNotFound should have comment or be unexported (golint)
    • Line 45: warning: exported function IsNetworkError should have comment or be unexported (golint)
    • qan-api/app/shared/util.go
    • Line 30: warning: exported const MYSQL_DATETIME_LAYOUT should have comment (or a comment on this block) or be unexported (golint)
    • Line 35: warning: exported function AtLeastVersion should have comment or be unexported (golint)
    • Line 49: warning: exported function Placeholders should have comment or be unexported (golint)
    • Line 53: warning: exported function GenericStringList should have comment or be unexported (golint)
    • Line 61: warning: exported function ValidateTimeRange should have comment or be unexported (golint)
    • qan-api/test/client.go
    • Line 25: warning: exported type Client should have comment or be unexported (golint)
    • Line 30: warning: exported function NewClient should have comment or be unexported (golint)
    • Line 39: warning: exported method Client.Get should have comment or be unexported (golint)
    • qan-api/test/db.go
    • Line 27: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 31: warning: exported function ExecQueries should have comment or be unexported (golint)
    • Line 39: warning: exported function TableDiff should have comment or be unexported (golint)
    • Line 69: warning: exported function PrepStmtCount should have comment or be unexported (golint)
    • qan-api/app/instance/instance.go
    • Line 31: warning: exported type DbHandler should have comment or be unexported (golint)
    • Line 40: warning: exported function GetInstanceId should have comment or be unexported (golint)
    • Line 54: warning: exported type MySQLHandler should have comment or be unexported (golint)
    • Line 58: warning: exported function NewMySQLHandler should have comment or be unexported (golint)
    • Line 65: warning: exported method MySQLHandler.Create should have comment or be unexported (golint)
    • Line 102: warning: exported method MySQLHandler.Get should have comment or be unexported (golint)
    • Line 109: warning: exported method MySQLHandler.GetByName should have comment or be unexported (golint)
    • Line 127: warning: exported method MySQLHandler.GetAll should have comment or be unexported (golint)
    • Line 217: warning: exported method MySQLHandler.Update should have comment or be unexported (golint)
    • Line 244: warning: exported method MySQLHandler.Delete should have comment or be unexported (golint)
    • qan-api/config/config.go
    • Line 34: warning: exported var ErrNoConfig should have comment or be unexported (golint)
    • Line 35: warning: exported var ApiRootDir should have comment or be unexported (golint)
    • Line 36: warning: exported var TestDir should have comment or be unexported (golint)
    • Line 37: warning: exported var SchemaDir should have comment or be unexported (golint)
    • Line 60: warning: exported function Get should have comment or be unexported (golint)
    • Line 96: warning: should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...) (golint)
    • qan-api/test/mock/agent.go
    • Line 27: warning: exported type AgentCommunicator should have comment or be unexported (golint)
    • Line 35: warning: exported function NewAgentCommunicator should have comment or be unexported (golint)
    • Line 46: warning: exported method AgentCommunicator.Start should have comment or be unexported (golint)
    • Line 50: warning: exported method AgentCommunicator.Stop should have comment or be unexported (golint)
    • Line 53: warning: exported method AgentCommunicator.Done should have comment or be unexported (golint)
    • Line 57: warning: exported method AgentCommunicator.IsAlive should have comment or be unexported (golint)
    • Line 61: warning: exported method AgentCommunicator.Send should have comment or be unexported (golint)
    • Line 68: warning: exported type AgentDirectory should have comment or be unexported (golint)
    • Line 72: warning: exported function NewAgentDirectory should have comment or be unexported (golint)
    • Line 79: warning: exported method AgentDirectory.Add should have comment or be unexported (golint)
    • Line 83: warning: exported method AgentDirectory.Remove should have comment or be unexported (golint)
    • Line 86: warning: exported method AgentDirectory.Get should have comment or be unexported (golint)
    • Line 90: warning: exported method AgentDirectory.Find should have comment or be unexported (golint)
    • Line 94: warning: exported method AgentDirectory.Refresh should have comment or be unexported (golint)
    • qan-api/test/app.go
    • Line 32: warning: exported var RootDir should have comment or be unexported (golint)
    • Line 52: warning: exported function FileExists should have comment or be unexported (golint)
    • Line 63: warning: exported function Dump should have comment or be unexported (golint)
    • Line 68: warning: exported function CopyFile should have comment or be unexported (golint)
    • Line 73: warning: exported function DrainCmdChan should have comment or be unexported (golint)
    • qan-api/test/sync.go
    • Line 27: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 31: warning: exported function WaitRecv should have comment or be unexported (golint)
    • Line 41: warning: exported function WaitResp should have comment or be unexported (golint)
    • Line 49: warning: comment on exported function WaitDbRow should be of the form "WaitDbRow ..." (golint)
    • qan-api/app/ws/error.go
    • Line 30: warning: exported var ErrNotConnected should have comment or be unexported (golint)
    • Line 37: warning: exported type Error should have comment or be unexported (golint)
    • qan-api/app/controllers/query.go
    • Line 34: warning: exported type Query should have comment or be unexported (golint)
    • Line 38: warning: comment on exported method Query.Get should be of the form "Get ..." (golint)
    • Line 56: warning: comment on exported method Query.GetTables should be of the form "GetTables ..." (golint)
    • Line 74: warning: comment on exported method Query.UpdateTables should be of the form "UpdateTables ..." (golint)
    • Line 108: warning: comment on exported method Query.GetExamples should be of the form "GetExamples ..." (golint)
    • Line 142: warning: comment on exported method Query.UpdateExample should be of the form "UpdateExample ..." (golint)
    • qan-api/app/ws/conn.go
    • Line 30: warning: exported const BUFSIZE should have comment (or a comment on this block) or be unexported (golint)
    • Line 33: warning: exported type Connector should have comment or be unexported (golint)
    • Line 51: warning: exported type ConnectorFactory should have comment or be unexported (golint)
    • Line 56: warning: exported type Connection should have comment or be unexported (golint)
    • Line 74: warning: exported function NewConnection should have comment or be unexported (golint)
    • Line 93: warning: exported function ExistingConnection should have comment or be unexported (golint)
    • Line 100: warning: exported method Connection.Start should have comment or be unexported (golint)
    • Line 112: warning: exported method Connection.Stop should have comment or be unexported (golint)
    • Line 122: warning: exported method Connection.Connect should have comment or be unexported (golint)
    • Line 133: warning: exported method Connection.ConnectOnce should have comment or be unexported (golint)
    • Line 159: warning: exported method Connection.Send should have comment or be unexported (golint)
    • Line 175: warning: exported method Connection.Recv should have comment or be unexported (golint)
    • Line 191: warning: exported method Connection.SendBytes should have comment or be unexported (golint)
    • Line 207: warning: exported method Connection.RecvBytes should have comment or be unexported (golint)
    • Line 225: warning: exported method Connection.ConnectChan should have comment or be unexported (golint)
    • Line 229: warning: exported method Connection.Disconnect should have comment or be unexported (golint)
    • Line 272: warning: exported method Connection.SendErrorChan should have comment or be unexported (golint)
    • Line 276: warning: exported method Connection.RecvErrorChan should have comment or be unexported (golint)
    • Line 280: warning: exported method Connection.Conn should have comment or be unexported (golint)
    • Line 376: warning: exported method Connection.SendChan should have comment or be unexported (golint)
    • Line 380: warning: exported method Connection.RecvChan should have comment or be unexported (golint)
    • qan-api/tests/setup/db/db.go
    • Line 36: warning: exported type Db should have comment or be unexported (golint)
    • Line 42: warning: exported function NewDb should have comment or be unexported (golint)
    • Line 74: warning: exported method Db.Start should have comment or be unexported (golint)
    • Line 93: warning: exported method Db.Stop should have comment or be unexported (golint)
    • Line 106: warning: exported method Db.DropDb should have comment or be unexported (golint)
    • Line 119: warning: exported method Db.CreateDb should have comment or be unexported (golint)
    • Line 131: warning: exported method Db.LoadSchema should have comment or be unexported (golint)
    • Line 171: warning: exported method Db.LoadData should have comment or be unexported (golint)
    • Line 186: warning: exported method Db.Dump should have comment or be unexported (golint)
    • Line 227: warning: exported method Db.DumpString should have comment or be unexported (golint)
    • Line 244: warning: exported method Db.DumpJson should have comment or be unexported (golint)
    • Line 257: warning: exported method Db.TableExpected should have comment or be unexported (golint)
    • Line 274: warning: exported method Db.TableGot should have comment or be unexported (golint)
    • Line 279: warning: exported method Db.TruncateTables should have comment or be unexported (golint)
    • Line 289: warning: exported method Db.TruncateAllTables should have comment or be unexported (golint)
    • Line 307: warning: exported method Db.TruncateDataTables should have comment or be unexported (golint)
    • Line 324: warning: exported method Db.LoadDataInfiles should have comment or be unexported (golint)
    • Line 356: warning: exported method Db.DB should have comment or be unexported (golint)
    • qan-api/app/agent/log.go
    • Line 37: warning: exported const MIN_LOG_LEVEL should have comment (or a comment on this block) or be unexported (golint)
    • Line 41: warning: exported type ByTs should have comment or be unexported (golint)
    • Line 47: warning: exported type LogFilter should have comment or be unexported (golint)
    • Line 59: warning: exported type LogHandler should have comment or be unexported (golint)
    • Line 64: warning: exported function NewLogHandler should have comment or be unexported (golint)
    • Line 72: warning: exported method LogHandler.WriteLog should have comment or be unexported (golint)
    • Line 105: warning: exported method LogHandler.GetLog should have comment or be unexported (golint)
    • Line 158: warning: exported const LOG_BUF_SIZE should have comment or be unexported (golint)
    • Line 160: warning: exported function SaveLog should have comment or be unexported (golint)
    • Line 178: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • qan-api/app/ws/comm.go
    • Line 20: warning: exported type Multiplexer should have comment or be unexported (golint)
    • Line 40: warning: exported type ProcessorFactory should have comment or be unexported (golint)
    • qan-api/app/ws/mx.go
    • Line 28: warning: exported type ConcurrentMultiplexer should have comment or be unexported (golint)
    • Line 59: warning: exported function NewConcurrentMultiplexer should have comment or be unexported (golint)
    • Line 81: warning: exported method ConcurrentMultiplexer.Start should have comment or be unexported (golint)
    • Line 97: warning: exported method ConcurrentMultiplexer.Stop should have comment or be unexported (golint)
    • Line 101: warning: exported method ConcurrentMultiplexer.Done should have comment or be unexported (golint)
    • Line 105: warning: exported method ConcurrentMultiplexer.Send should have comment or be unexported (golint)
    • Line 270: warning: should omit 2nd value from range; this loop is equivalent to `for c := range ...` (golint)
    • qan-api/app/controllers/agent/agent.go
    • Line 34: warning: exported type Agent should have comment or be unexported (golint)
    • Line 38: warning: comment on exported method Agent.List should be of the form "List ..." (golint)
    • Line 64: warning: comment on exported method Agent.Create should be of the form "Create ..." (golint)
    • Line 106: warning: comment on exported method Agent.Get should be of the form "Get ..." (golint)
    • Line 130: warning: comment on exported method Agent.Update should be of the form "Update ..." (golint)
    • Line 162: warning: comment on exported method Agent.Delete should be of the form "Delete ..." (golint)
    • qan-api/app/ws/factory/conn.go
    • Line 26: warning: exported type ConnectorFactory should have comment or be unexported (golint)
    • Line 29: warning: exported method ConnectorFactory.Make should have comment or be unexported (golint)
    • Line 33: warning: exported method ConnectorFactory.Use should have comment or be unexported (golint)
    • qan-api/app/agent/mysql.go
    • Line 32: warning: exported type MySQLHandler should have comment or be unexported (golint)
    • Line 37: warning: exported function NewMySQLHandler should have comment or be unexported (golint)
    • Line 45: warning: exported method MySQLHandler.Create should have comment or be unexported (golint)
    • Line 62: warning: exported method MySQLHandler.Get should have comment or be unexported (golint)
    • Line 80: warning: exported method MySQLHandler.GetAll should have comment or be unexported (golint)
    • Line 117: warning: exported method MySQLHandler.SetConfig should have comment or be unexported (golint)
    • Line 141: warning: exported method MySQLHandler.RemoveConfig should have comment or be unexported (golint)
    • Line 151: warning: exported method MySQLHandler.GetConfigs should have comment or be unexported (golint)
    • Line 181: warning: exported method MySQLHandler.Update should have comment or be unexported (golint)
    • Line 187: warning: exported method MySQLHandler.UpdateConfigs should have comment or be unexported (golint)
    • Line 234: warning: exported method MySQLHandler.UpdateVersion should have comment or be unexported (golint)
    • qan-api/test/mock/closure/rabbitmq_producer.go
    • Line 20: warning: exported type RabbitmqProducerMock should have comment or be unexported (golint)
    • Line 26: warning: exported method RabbitmqProducerMock.Open should have comment or be unexported (golint)
    • Line 26: warning: receiver name should be a reflection of its identity; don't use generic names such as "this" or "self" (golint)
    • Line 30: warning: exported method RabbitmqProducerMock.Close should have comment or be unexported (golint)
    • Line 30: warning: receiver name should be a reflection of its identity; don't use generic names such as "this" or "self" (golint)
    • Line 34: warning: exported method RabbitmqProducerMock.Queue should have comment or be unexported (golint)
    • Line 34: warning: receiver name should be a reflection of its identity; don't use generic names such as "this" or "self" (golint)
    • qan-api/app/controllers/instance.go
    • Line 33: warning: exported type Instance should have comment or be unexported (golint)
    • Line 37: warning: comment on exported method Instance.List should be of the form "List ..." (golint)
    • Line 58: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 67: warning: comment on exported method Instance.Create should be of the form "Create ..." (golint)
    • Line 112: warning: comment on exported method Instance.Get should be of the form "Get ..." (golint)
    • Line 126: warning: comment on exported method Instance.Update should be of the form "Update ..." (golint)
    • Line 161: warning: comment on exported method Instance.Delete should be of the form "Delete ..." (golint)
    • qan-api/test/mock/closure/db_connection.go
    • Line 22: warning: exported type DbConnectionMock should have comment or be unexported (golint)
    • Line 35: warning: exported method DbConnectionMock.Open should have comment or be unexported (golint)
    • Line 39: warning: exported method DbConnectionMock.GetDsn should have comment or be unexported (golint)
    • Line 43: warning: exported method DbConnectionMock.AddDb should have comment or be unexported (golint)
    • Line 46: warning: exported method DbConnectionMock.OpenDb should have comment or be unexported (golint)
    • Line 49: warning: exported method DbConnectionMock.Dbh should have comment or be unexported (golint)
    • Line 53: warning: exported method DbConnectionMock.OpenDbh should have comment or be unexported (golint)
    • Line 57: warning: exported method DbConnectionMock.Connect should have comment or be unexported (golint)
    • Line 61: warning: exported method DbConnectionMock.Close should have comment or be unexported (golint)
    • Line 65: warning: exported method DbConnectionMock.CloseDbh should have comment or be unexported (golint)
    • Line 69: warning: exported method DbConnectionMock.Use should have comment or be unexported (golint)
    • Line 73: warning: exported method DbConnectionMock.Begin should have comment or be unexported (golint)
    • Line 77: warning: exported method DbConnectionMock.Commit should have comment or be unexported (golint)
    • qan-api/app/qan/mysql.go
    • Line 28: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 41: warning: exported const MAX_ABSTRACT should have comment (or a comment on this block) or be unexported (golint)
    • Line 45: warning: exported type MySQLMetricWriter should have comment or be unexported (golint)
    • Line 59: warning: exported function NewMySQLMetricWriter should have comment or be unexported (golint)
    • Line 305: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 562: warning: exported var GlobalCols should have comment or be unexported (golint)
    • Line 578: warning: exported var ClassCols should have comment or be unexported (golint)
    • qan-api/app/auth/auth.go
    • Line 29: warning: exported type AuthHandler should have comment or be unexported (golint)
    • Line 33: warning: exported type DbHandler should have comment or be unexported (golint)
    • Line 39: warning: exported type AuthDb should have comment or be unexported (golint)
    • Line 44: warning: exported function NewAuthDb should have comment or be unexported (golint)
    • qan-api/app/agent/dir.go
    • Line 34: warning: exported type LocalDirectory should have comment or be unexported (golint)
    • Line 46: warning: exported function NewLocalDirectory should have comment or be unexported (golint)
    • Line 58: warning: comment on exported method LocalDirectory.Add should be of the form "Add ..." (golint)
    • Line 93: warning: exported method LocalDirectory.Get should have comment or be unexported (golint)
    • Line 105: warning: comment on exported method LocalDirectory.Remove should be of the form "Remove ..." (golint)
    • Line 113: warning: exported method LocalDirectory.Refresh should have comment or be unexported (golint)
    • qan-api/app/db/manager.go
    • Line 26: warning: exported var DBManager should have comment or be unexported (golint)
    • Line 28: warning: exported type Manager should have comment or be unexported (golint)
    • Line 39: warning: exported function NewMySQLManager should have comment or be unexported (golint)
    • qan-api/test/mock/ws.go
    • Line 27: warning: exported type WebsocketConnector should have comment or be unexported (golint)
    • Line 39: warning: exported function NewWebsocketConnector should have comment or be unexported (golint)
    • Line 53: warning: exported method WebsocketConnector.Start should have comment or be unexported (golint)
    • Line 56: warning: exported method WebsocketConnector.Stop should have comment or be unexported (golint)
    • Line 59: warning: exported method WebsocketConnector.Connect should have comment or be unexported (golint)
    • Line 62: warning: exported method WebsocketConnector.ConnectOnce should have comment or be unexported (golint)
    • Line 66: warning: exported method WebsocketConnector.ConnectChan should have comment or be unexported (golint)
    • Line 70: warning: exported method WebsocketConnector.Disconnect should have comment or be unexported (golint)
    • Line 74: warning: exported method WebsocketConnector.Send should have comment or be unexported (golint)
    • Line 80: warning: exported method WebsocketConnector.Recv should have comment or be unexported (golint)
    • Line 102: warning: exported method WebsocketConnector.SendBytes should have comment or be unexported (golint)
    • Line 108: warning: exported method WebsocketConnector.RecvBytes should have comment or be unexported (golint)
    • Line 118: warning: exported method WebsocketConnector.SendChan should have comment or be unexported (golint)
    • Line 123: warning: exported method WebsocketConnector.RecvChan should have comment or be unexported (golint)
    • Line 128: warning: exported method WebsocketConnector.SendErrorChan should have comment or be unexported (golint)
    • Line 132: warning: exported method WebsocketConnector.RecvErrorChan should have comment or be unexported (golint)
    • Line 136: warning: exported method WebsocketConnector.Conn should have comment or be unexported (golint)
    • Line 140: warning: exported method WebsocketConnector.RecvError should have comment or be unexported (golint)
    • qan-api/tests/setup/api/service.go
    • Line 25: warning: exported type ApiService should have comment or be unexported (golint)
    • Line 29: warning: exported function NewApiService should have comment or be unexported (golint)
    • Line 35: warning: exported method ApiService.GetApi should have comment or be unexported (golint)
    • Line 51: warning: exported method ApiService.StopApi should have comment or be unexported (golint)
    • Line 61: warning: exported method ApiService.StopAllApi should have comment or be unexported (golint)
    • Line 68: warning: exported method ApiService.DisconnectAllClients should have comment or be unexported (golint)
    • qan-api/stats/stats.go
    • Line 27: warning: exported type Stats should have comment or be unexported (golint)
    • Line 38: warning: exported function NewStats should have comment or be unexported (golint)
    • Line 64: warning: exported method Stats.SetComponent should have comment or be unexported (golint)
    • Line 68: warning: exported method Stats.SetAgent should have comment or be unexported (golint)
    • Line 72: warning: exported method Stats.System should have comment or be unexported (golint)
    • Line 76: warning: exported method Stats.Agent should have comment or be unexported (golint)
    • Line 80: warning: exported method Stats.Metric should have comment or be unexported (golint)
    • Line 84: warning: exported function NullStats should have comment or be unexported (golint)
    • qan-api/app/controllers/qan.go
    • Line 34: warning: exported type QAN should have comment or be unexported (golint)
    • Line 38: warning: exported method QAN.Profile should have comment or be unexported (golint)
    • Line 81: warning: exported method QAN.QueryReport should have comment or be unexported (golint)
    • Line 135: warning: exported method QAN.ServerSummary should have comment or be unexported (golint)
    • Line 164: warning: exported method QAN.Config should have comment or be unexported (golint)
    • qan-api/app/agent/comm.go
    • Line 41: warning: exported function NewLocalAgent should have comment or be unexported (golint)
    • Line 49: warning: exported method LocalAgent.Start should have comment or be unexported (golint)
    • Line 110: warning: exported method LocalAgent.Stop should have comment or be unexported (golint)
    • Line 114: warning: exported method LocalAgent.Done should have comment or be unexported (golint)
    • Line 122: warning: exported method LocalAgent.IsAlive should have comment or be unexported (golint)
    • Line 137: warning: exported method LocalAgent.Send should have comment or be unexported (golint)
    • qan-api/app/controllers/backend.go
    • Line 29: warning: exported type BackEnd should have comment or be unexported (golint)
    • Line 85: warning: exported method BackEnd.BadRequest should have comment or be unexported (golint)
    • Line 96: warning: exported type NoContent should have comment or be unexported (golint)
    • Line 99: warning: exported method BackEnd.RenderNoContent should have comment or be unexported (golint)
    • Line 103: warning: exported method NoContent.Apply should have comment or be unexported (golint)
    • Line 107: warning: exported type Created should have comment or be unexported (golint)
    • Line 111: warning: exported method BackEnd.RenderCreated should have comment or be unexported (golint)
    • Line 117: warning: exported method Created.Apply should have comment or be unexported (golint)
    • qan-api/app/controllers/home.go
    • Line 25: warning: exported type Home should have comment or be unexported (golint)
    • Line 29: warning: exported method Home.Links should have comment or be unexported (golint)
    • Line 40: warning: exported method Home.Ping should have comment or be unexported (golint)
    • Line 46: warning: exported method Home.Options should have comment or be unexported (golint)
    • qan-api/app/instance/subsystem.go
    • Line 27: warning: exported const SubsystemOS should have comment (or a comment on this block) or be unexported (golint)
    • Line 34: warning: exported const SubsystemNameOS should have comment (or a comment on this block) or be unexported (golint)
    • Line 74: warning: exported var ErrNotFound should have comment or be unexported (golint)
    • Line 76: warning: exported function GetSubsystemById should have comment or be unexported (golint)
    • Line 84: warning: exported function GetSubsystemByName should have comment or be unexported (golint)
    • qan-api/app/metrics/query.go
    • Line 26: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 42: warning: exported var ErrNoMetrics should have comment or be unexported (golint)
    • Line 106: warning: exported type QueryMetricsHandler should have comment or be unexported (golint)
    • Line 111: warning: exported function NewQueryMetricsHandler should have comment or be unexported (golint)
    • Line 119: warning: exported method QueryMetricsHandler.Get should have comment or be unexported (golint)
    • Line 205: warning: exported method QueryMetricsHandler.ServerSummary should have comment or be unexported (golint)
    • Line 494: warning: don't use underscores in Go names; var query_time should be queryTime (golint)
    • Line 495: warning: don't use underscores in Go names; var lock_time should be lockTime (golint)
    • Line 496: warning: don't use underscores in Go names; var rows_sent should be rowsSent (golint)
    • Line 497: warning: don't use underscores in Go names; var rows_examined should be rowsExamined (golint)
    • Line 498: warning: don't use underscores in Go names; var rows_affected should be rowsAffected (golint)
    • Line 499: warning: don't use underscores in Go names; var bytes_sent should be bytesSent (golint)
    • Line 500: warning: don't use underscores in Go names; var tmp_tables should be tmpTables (golint)
    • Line 501: warning: don't use underscores in Go names; var tmp_disk_tables should be tmpDiskTables (golint)
    • Line 502: warning: don't use underscores in Go names; var tmp_table_sizes should be tmpTableSizes (golint)
    • Line 503: warning: don't use underscores in Go names; var qc_hit should be qcHit (golint)
    • Line 504: warning: don't use underscores in Go names; var full_scan should be fullScan (golint)
    • Line 505: warning: don't use underscores in Go names; var full_join should be fullJoin (golint)
    • Line 506: warning: don't use underscores in Go names; var tmp_table should be tmpTable (golint)
    • Line 507: warning: don't use underscores in Go names; var tmp_table_on_disk should be tmpTableOnDisk (golint)
    • Line 509: warning: don't use underscores in Go names; var filesort_on_disk should be filesortOnDisk (golint)
    • Line 510: warning: don't use underscores in Go names; var merge_passes should be mergePasses (golint)
    • Line 511: warning: don't use underscores in Go names; var innodb_io_r_ops should be innodbIoROps (golint)
    • Line 512: warning: don't use underscores in Go names; var innodb_io_r_bytes should be innodbIoRBytes (golint)
    • Line 513: warning: don't use underscores in Go names; var innodb_io_r_wait should be innodbIoRWait (golint)
    • Line 514: warning: don't use underscores in Go names; var innodb_rec_lock_wait should be innodbRecLockWait (golint)
    • Line 515: warning: don't use underscores in Go names; var innodb_queue_wait should be innodbQueueWait (golint)
    • Line 516: warning: don't use underscores in Go names; var innodb_pages_distinct should be innodbPagesDistinct (golint)
    • Line 727: warning: don't use underscores in Go names; var query_time should be queryTime (golint)
    • Line 728: warning: don't use underscores in Go names; var lock_time should be lockTime (golint)
    • Line 729: warning: don't use underscores in Go names; var rows_sent should be rowsSent (golint)
    • Line 730: warning: don't use underscores in Go names; var rows_examined should be rowsExamined (golint)
    • Line 731: warning: don't use underscores in Go names; var rows_affected should be rowsAffected (golint)
    • Line 732: warning: don't use underscores in Go names; var bytes_sent should be bytesSent (golint)
    • Line 733: warning: don't use underscores in Go names; var tmp_tables should be tmpTables (golint)
    • Line 734: warning: don't use underscores in Go names; var tmp_disk_tables should be tmpDiskTables (golint)
    • Line 735: warning: don't use underscores in Go names; var tmp_table_sizes should be tmpTableSizes (golint)
    • Line 736: warning: don't use underscores in Go names; var qc_hit should be qcHit (golint)
    • Line 737: warning: don't use underscores in Go names; var full_scan should be fullScan (golint)
    • Line 738: warning: don't use underscores in Go names; var full_join should be fullJoin (golint)
    • Line 739: warning: don't use underscores in Go names; var tmp_table should be tmpTable (golint)
    • Line 740: warning: don't use underscores in Go names; var tmp_table_on_disk should be tmpTableOnDisk (golint)
    • Line 742: warning: don't use underscores in Go names; var filesort_on_disk should be filesortOnDisk (golint)
    • Line 743: warning: don't use underscores in Go names; var merge_passes should be mergePasses (golint)
    • Line 744: warning: don't use underscores in Go names; var innodb_io_r_ops should be innodbIoROps (golint)
    • Line 745: warning: don't use underscores in Go names; var innodb_io_r_bytes should be innodbIoRBytes (golint)
    • Line 746: warning: don't use underscores in Go names; var innodb_io_r_wait should be innodbIoRWait (golint)
    • Line 747: warning: don't use underscores in Go names; var innodb_rec_lock_wait should be innodbRecLockWait (golint)
    • Line 748: warning: don't use underscores in Go names; var innodb_queue_wait should be innodbQueueWait (golint)
    • Line 749: warning: don't use underscores in Go names; var innodb_pages_distinct should be innodbPagesDistinct (golint)
    • Line 1063: warning: exported method QueryMetricsHandler.GetMetricsSparklines should have comment or be unexported (golint)
    • Line 1091: warning: should omit 2nd value from range; this loop is equivalent to `for i := range ...` (golint)
    • qan-api/service/query/mini.go
    • Line 33: warning: exported type QueryInfo should have comment or be unexported (golint)
    • Line 60: warning: exported const MAX_JOIN_DEPTH should have comment (or a comment on this block) or be unexported (golint)
    • Line 64: warning: exported var ErrNotSupported should have comment or be unexported (golint)
    • Line 67: warning: exported type Mini should have comment or be unexported (golint)
    • Line 77: warning: exported function NewMini should have comment or be unexported (golint)
    • Line 96: warning: exported method Mini.Stop should have comment or be unexported (golint)
    • Line 100: warning: exported method Mini.Run should have comment or be unexported (golint)
    • Line 144: warning: exported method Mini.Parse should have comment or be unexported (golint)
    • qan-api/app/models/metrics.go
    • Line 277: warning: don't use underscores in Go names; struct field Lock_time_avg_per_query_time should be LockTimeAvgPerQueryTime (golint)
    • Line 278: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_avg_per_query_time should be InnoDBRecLockWaitAvgPerQueryTime (golint)
    • Line 279: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_avg_per_query_time should be InnoDBIORWaitAvgPerQueryTime (golint)
    • Line 280: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_avg_per_query_time should be InnoDBQueueWaitAvgPerQueryTime (golint)
    • Line 281: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_sum_per_io should be InnoDBIORBytesSumPerIo (golint)
    • Line 282: warning: don't use underscores in Go names; struct field QC_Hit_sum_per_query should be QCHitSumPerQuery (golint)
    • Line 283: warning: don't use underscores in Go names; struct field Bytes_sent_sum_per_rows should be BytesSentSumPerRows (golint)
    • Line 284: warning: don't use underscores in Go names; struct field Rows_examined_sum_per_rows should be RowsExaminedSumPerRows (golint)
    • Line 285: warning: don't use underscores in Go names; struct field Filesort_sum_per_query should be FilesortSumPerQuery (golint)
    • Line 286: warning: don't use underscores in Go names; struct field Filesort_on_disk_sum_per_query should be FilesortOnDiskSumPerQuery (golint)
    • Line 287: warning: don't use underscores in Go names; struct field Merge_passes_sum_per_external_sort should be MergePassesSumPerExternalSort (golint)
    • Line 288: warning: don't use underscores in Go names; struct field Full_join_sum_per_query should be FullJoinSumPerQuery (golint)
    • Line 289: warning: don't use underscores in Go names; struct field Full_scan_sum_per_query should be FullScanSumPerQuery (golint)
    • Line 290: warning: don't use underscores in Go names; struct field Tmp_table_sum_per_query should be TmpTableSumPerQuery (golint)
    • Line 291: warning: don't use underscores in Go names; struct field Tmp_tables_sum_per_query_with_tmp_table should be TmpTablesSumPerQueryWithTmpTable (golint)
    • Line 292: warning: don't use underscores in Go names; struct field Tmp_table_on_disk_sum_per_query should be TmpTableOnDiskSumPerQuery (golint)
    • Line 293: warning: don't use underscores in Go names; struct field Tmp_disk_tables_sum_per_query_with_tmp_table should be TmpDiskTablesSumPerQueryWithTmpTable (golint)
    • Line 294: warning: don't use underscores in Go names; struct field Tmp_table_sizes_sum_per_query_with_any_tmp_table should be TmpTableSizesSumPerQueryWithAnyTmpTable (golint)
    • Line 301: warning: don't use underscores in Go names; struct field Query_count_per_sec should be QueryCountPerSec (golint)
    • Line 302: warning: don't use underscores in Go names; struct field Query_time_sum_per_sec should be QueryTimeSumPerSec (golint)
    • Line 303: warning: don't use underscores in Go names; struct field Lock_time_sum_per_sec should be LockTimeSumPerSec (golint)
    • Line 304: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_sum_per_sec should be InnoDBRecLockWaitSumPerSec (golint)
    • Line 305: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_sum_per_sec should be InnoDBIORWaitSumPerSec (golint)
    • Line 306: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_sum_per_sec should be InnoDBIOROpsSumPerSec (golint)
    • Line 307: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_sum_per_sec should be InnoDBIORBytesSumPerSec (golint)
    • Line 308: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_sum_per_sec should be InnoDBQueueWaitSumPerSec (golint)
    • Line 310: warning: don't use underscores in Go names; struct field QC_Hit_sum_per_sec should be QCHitSumPerSec (golint)
    • Line 311: warning: don't use underscores in Go names; struct field Rows_sent_sum_per_sec should be RowsSentSumPerSec (golint)
    • Line 312: warning: don't use underscores in Go names; struct field Bytes_sent_sum_per_sec should be BytesSentSumPerSec (golint)
    • Line 313: warning: don't use underscores in Go names; struct field Rows_examined_sum_per_sec should be RowsExaminedSumPerSec (golint)
    • Line 314: warning: don't use underscores in Go names; struct field Rows_affected_sum_per_sec should be RowsAffectedSumPerSec (golint)
    • Line 315: warning: don't use underscores in Go names; struct field Filesort_sum_per_sec should be FilesortSumPerSec (golint)
    • Line 316: warning: don't use underscores in Go names; struct field Filesort_on_disk_sum_per_sec should be FilesortOnDiskSumPerSec (golint)
    • Line 317: warning: don't use underscores in Go names; struct field Merge_passes_sum_per_sec should be MergePassesSumPerSec (golint)
    • Line 318: warning: don't use underscores in Go names; struct field Full_join_sum_per_sec should be FullJoinSumPerSec (golint)
    • Line 319: warning: don't use underscores in Go names; struct field Full_scan_sum_per_sec should be FullScanSumPerSec (golint)
    • Line 320: warning: don't use underscores in Go names; struct field Tmp_table_sum_per_sec should be TmpTableSumPerSec (golint)
    • Line 321: warning: don't use underscores in Go names; struct field Tmp_tables_sum_per_sec should be TmpTablesSumPerSec (golint)
    • Line 322: warning: don't use underscores in Go names; struct field Tmp_table_on_disk_sum_per_sec should be TmpTableOnDiskSumPerSec (golint)
    • Line 323: warning: don't use underscores in Go names; struct field Tmp_disk_tables_sum_per_sec should be TmpDiskTablesSumPerSec (golint)
    • Line 324: warning: don't use underscores in Go names; struct field Tmp_table_sizes_sum_per_sec should be TmpTableSizesSumPerSec (golint)
    • Line 328: warning: don't use underscores in Go names; struct field Errors_sum_per_sec should be ErrorsSumPerSec (golint)
    • Line 329: warning: don't use underscores in Go names; struct field Warnings_sum_per_sec should be WarningsSumPerSec (golint)
    • Line 330: warning: don't use underscores in Go names; struct field Select_full_range_join_sum_per_sec should be SelectFullRangeJoinSumPerSec (golint)
    • Line 331: warning: don't use underscores in Go names; struct field Select_range_sum_per_sec should be SelectRangeSumPerSec (golint)
    • Line 332: warning: don't use underscores in Go names; struct field Select_range_check_sum_per_sec should be SelectRangeCheckSumPerSec (golint)
    • Line 333: warning: don't use underscores in Go names; struct field Sort_range_sum_per_sec should be SortRangeSumPerSec (golint)
    • Line 334: warning: don't use underscores in Go names; struct field Sort_rows_sum_per_sec should be SortRowsSumPerSec (golint)
    • Line 335: warning: don't use underscores in Go names; struct field Sort_scan_sum_per_sec should be SortScanSumPerSec (golint)
    • Line 336: warning: don't use underscores in Go names; struct field No_index_used_sum_per_sec should be NoIndexUsedSumPerSec (golint)
    • Line 337: warning: don't use underscores in Go names; struct field No_good_index_used_sum_per_sec should be NoGoodIndexUsedSumPerSec (golint)
    • Line 341: warning: don't use underscores in Go names; struct field Query_count_of_total should be QueryCountOfTotal (golint)
    • Line 342: warning: don't use underscores in Go names; struct field Query_time_sum_of_total should be QueryTimeSumOfTotal (golint)
    • Line 343: warning: don't use underscores in Go names; struct field Lock_time_sum_of_total should be LockTimeSumOfTotal (golint)
    • Line 344: warning: don't use underscores in Go names; struct field Rows_sent_sum_of_total should be RowsSentSumOfTotal (golint)
    • Line 345: warning: don't use underscores in Go names; struct field Rows_examined_sum_of_total should be RowsExaminedSumOfTotal (golint)
    • Line 349: warning: don't use underscores in Go names; struct field Rows_affected_sum_of_total should be RowsAffectedSumOfTotal (golint)
    • Line 350: warning: don't use underscores in Go names; struct field Bytes_sent_sum_of_total should be BytesSentSumOfTotal (golint)
    • Line 351: warning: don't use underscores in Go names; struct field Tmp_tables_sum_of_total should be TmpTablesSumOfTotal (golint)
    • Line 352: warning: don't use underscores in Go names; struct field Tmp_disk_tables_sum_of_total should be TmpDiskTablesSumOfTotal (golint)
    • Line 353: warning: don't use underscores in Go names; struct field Tmp_table_sizes_sum_of_total should be TmpTableSizesSumOfTotal (golint)
    • Line 354: warning: don't use underscores in Go names; struct field QC_Hit_sum_of_total should be QCHitSumOfTotal (golint)
    • Line 355: warning: don't use underscores in Go names; struct field Full_scan_sum_of_total should be FullScanSumOfTotal (golint)
    • Line 356: warning: don't use underscores in Go names; struct field Full_join_sum_of_total should be FullJoinSumOfTotal (golint)
    • Line 357: warning: don't use underscores in Go names; struct field Tmp_table_sum_of_total should be TmpTableSumOfTotal (golint)
    • Line 358: warning: don't use underscores in Go names; struct field Tmp_table_on_disk_sum_of_total should be TmpTableOnDiskSumOfTotal (golint)
    • Line 359: warning: don't use underscores in Go names; struct field Filesort_sum_of_total should be FilesortSumOfTotal (golint)
    • Line 360: warning: don't use underscores in Go names; struct field Filesort_on_disk_sum_of_total should be FilesortOnDiskSumOfTotal (golint)
    • Line 361: warning: don't use underscores in Go names; struct field Merge_passes_sum_of_total should be MergePassesSumOfTotal (golint)
    • Line 365: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_sum_of_total should be InnoDBIOROpsSumOfTotal (golint)
    • Line 366: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_sum_of_total should be InnoDBIORBytesSumOfTotal (golint)
    • Line 367: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_sum_of_total should be InnoDBIORWaitSumOfTotal (golint)
    • Line 368: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_sum_of_total should be InnoDBRecLockWaitSumOfTotal (golint)
    • Line 369: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_sum_of_total should be InnoDBQueueWaitSumOfTotal (golint)
    • Line 370: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_sum_of_total should be InnoDBPagesDistinctSumOfTotal (golint)
    • Line 374: warning: don't use underscores in Go names; struct field Errors_sum_of_total should be ErrorsSumOfTotal (golint)
    • Line 375: warning: don't use underscores in Go names; struct field Warnings_sum_of_total should be WarningsSumOfTotal (golint)
    • Line 376: warning: don't use underscores in Go names; struct field Select_full_range_join_sum_of_total should be SelectFullRangeJoinSumOfTotal (golint)
    • Line 377: warning: don't use underscores in Go names; struct field Select_range_sum_of_total should be SelectRangeSumOfTotal (golint)
    • Line 378: warning: don't use underscores in Go names; struct field Select_range_check_sum_of_total should be SelectRangeCheckSumOfTotal (golint)
    • Line 379: warning: don't use underscores in Go names; struct field Sort_range_sum_of_total should be SortRangeSumOfTotal (golint)
    • Line 380: warning: don't use underscores in Go names; struct field Sort_rows_sum_of_total should be SortRowsSumOfTotal (golint)
    • Line 381: warning: don't use underscores in Go names; struct field Sort_scan_sum_of_total should be SortScanSumOfTotal (golint)
    • Line 382: warning: don't use underscores in Go names; struct field No_index_used_sum_of_total should be NoIndexUsedSumOfTotal (golint)
    • Line 383: warning: don't use underscores in Go names; struct field No_good_index_used_sum_of_total should be NoGoodIndexUsedSumOfTotal (golint)
    • Line 393: warning: don't use underscores in Go names; struct field Query_count should be QueryCount (golint)
    • Line 394: warning: don't use underscores in Go names; struct field Query_time_sum should be QueryTimeSum (golint)
    • Line 395: warning: don't use underscores in Go names; struct field Query_time_min should be QueryTimeMin (golint)
    • Line 396: warning: don't use underscores in Go names; struct field Query_time_avg should be QueryTimeAvg (golint)
    • Line 397: warning: don't use underscores in Go names; struct field Query_time_med should be QueryTimeMed (golint)
    • Line 398: warning: don't use underscores in Go names; struct field Query_time_p95 should be QueryTimeP95 (golint)
    • Line 399: warning: don't use underscores in Go names; struct field Query_time_max should be QueryTimeMax (golint)
    • Line 400: warning: don't use underscores in Go names; struct field Lock_time_sum should be LockTimeSum (golint)
    • Line 401: warning: don't use underscores in Go names; struct field Lock_time_min should be LockTimeMin (golint)
    • Line 402: warning: don't use underscores in Go names; struct field Lock_time_avg should be LockTimeAvg (golint)
    • Line 403: warning: don't use underscores in Go names; struct field Lock_time_med should be LockTimeMed (golint)
    • Line 404: warning: don't use underscores in Go names; struct field Lock_time_p95 should be LockTimeP95 (golint)
    • Line 405: warning: don't use underscores in Go names; struct field Lock_time_max should be LockTimeMax (golint)
    • Line 406: warning: don't use underscores in Go names; struct field Rows_sent_sum should be RowsSentSum (golint)
    • Line 407: warning: don't use underscores in Go names; struct field Rows_sent_min should be RowsSentMin (golint)
    • Line 408: warning: don't use underscores in Go names; struct field Rows_sent_avg should be RowsSentAvg (golint)
    • Line 409: warning: don't use underscores in Go names; struct field Rows_sent_med should be RowsSentMed (golint)
    • Line 410: warning: don't use underscores in Go names; struct field Rows_sent_p95 should be RowsSentP95 (golint)
    • Line 411: warning: don't use underscores in Go names; struct field Rows_sent_max should be RowsSentMax (golint)
    • Line 412: warning: don't use underscores in Go names; struct field Rows_examined_sum should be RowsExaminedSum (golint)
    • Line 413: warning: don't use underscores in Go names; struct field Rows_examined_min should be RowsExaminedMin (golint)
    • Line 414: warning: don't use underscores in Go names; struct field Rows_examined_avg should be RowsExaminedAvg (golint)
    • Line 415: warning: don't use underscores in Go names; struct field Rows_examined_med should be RowsExaminedMed (golint)
    • Line 416: warning: don't use underscores in Go names; struct field Rows_examined_p95 should be RowsExaminedP95 (golint)
    • Line 417: warning: don't use underscores in Go names; struct field Rows_examined_max should be RowsExaminedMax (golint)
    • Line 418: warning: don't use underscores in Go names; struct field Bytes_sent_sum should be BytesSentSum (golint)
    • Line 419: warning: don't use underscores in Go names; struct field Bytes_sent_min should be BytesSentMin (golint)
    • Line 420: warning: don't use underscores in Go names; struct field Bytes_sent_avg should be BytesSentAvg (golint)
    • Line 421: warning: don't use underscores in Go names; struct field Bytes_sent_med should be BytesSentMed (golint)
    • Line 422: warning: don't use underscores in Go names; struct field Bytes_sent_p95 should be BytesSentP95 (golint)
    • Line 423: warning: don't use underscores in Go names; struct field Bytes_sent_max should be BytesSentMax (golint)
    • Line 427: warning: don't use underscores in Go names; struct field Rows_affected_sum should be RowsAffectedSum (golint)
    • Line 428: warning: don't use underscores in Go names; struct field Rows_affected_min should be RowsAffectedMin (golint)
    • Line 429: warning: don't use underscores in Go names; struct field Rows_affected_avg should be RowsAffectedAvg (golint)
    • Line 430: warning: don't use underscores in Go names; struct field Rows_affected_med should be RowsAffectedMed (golint)
    • Line 431: warning: don't use underscores in Go names; struct field Rows_affected_p95 should be RowsAffectedP95 (golint)
    • Line 432: warning: don't use underscores in Go names; struct field Rows_affected_max should be RowsAffectedMax (golint)
    • Line 433: warning: don't use underscores in Go names; struct field Tmp_tables_sum should be TmpTablesSum (golint)
    • Line 434: warning: don't use underscores in Go names; struct field Tmp_tables_min should be TmpTablesMin (golint)
    • Line 435: warning: don't use underscores in Go names; struct field Tmp_tables_avg should be TmpTablesAvg (golint)
    • Line 436: warning: don't use underscores in Go names; struct field Tmp_tables_med should be TmpTablesMed (golint)
    • Line 437: warning: don't use underscores in Go names; struct field Tmp_tables_p95 should be TmpTablesP95 (golint)
    • Line 438: warning: don't use underscores in Go names; struct field Tmp_tables_max should be TmpTablesMax (golint)
    • Line 439: warning: don't use underscores in Go names; struct field Tmp_disk_tables_sum should be TmpDiskTablesSum (golint)
    • Line 440: warning: don't use underscores in Go names; struct field Tmp_disk_tables_min should be TmpDiskTablesMin (golint)
    • Line 441: warning: don't use underscores in Go names; struct field Tmp_disk_tables_avg should be TmpDiskTablesAvg (golint)
    • Line 442: warning: don't use underscores in Go names; struct field Tmp_disk_tables_med should be TmpDiskTablesMed (golint)
    • Line 443: warning: don't use underscores in Go names; struct field Tmp_disk_tables_p95 should be TmpDiskTablesP95 (golint)
    • Line 444: warning: don't use underscores in Go names; struct field Tmp_disk_tables_max should be TmpDiskTablesMax (golint)
    • Line 445: warning: don't use underscores in Go names; struct field Tmp_table_sizes_sum should be TmpTableSizesSum (golint)
    • Line 446: warning: don't use underscores in Go names; struct field Tmp_table_sizes_min should be TmpTableSizesMin (golint)
    • Line 447: warning: don't use underscores in Go names; struct field Tmp_table_sizes_avg should be TmpTableSizesAvg (golint)
    • Line 448: warning: don't use underscores in Go names; struct field Tmp_table_sizes_med should be TmpTableSizesMed (golint)
    • Line 449: warning: don't use underscores in Go names; struct field Tmp_table_sizes_p95 should be TmpTableSizesP95 (golint)
    • Line 450: warning: don't use underscores in Go names; struct field Tmp_table_sizes_max should be TmpTableSizesMax (golint)
    • Line 451: warning: don't use underscores in Go names; struct field Total_tmp_tables_sum should be TotalTmpTablesSum (golint)
    • Line 452: warning: don't use underscores in Go names; struct field QC_Hit_sum should be QCHitSum (golint)
    • Line 453: warning: don't use underscores in Go names; struct field Full_scan_sum should be FullScanSum (golint)
    • Line 454: warning: don't use underscores in Go names; struct field Full_join_sum should be FullJoinSum (golint)
    • Line 455: warning: don't use underscores in Go names; struct field Tmp_table_sum should be TmpTableSum (golint)
    • Line 456: warning: don't use underscores in Go names; struct field Tmp_table_on_disk_sum should be TmpTableOnDiskSum (golint)
    • Line 457: warning: don't use underscores in Go names; struct field Filesort_sum should be FilesortSum (golint)
    • Line 458: warning: don't use underscores in Go names; struct field Filesort_on_disk_sum should be FilesortOnDiskSum (golint)
    • Line 459: warning: don't use underscores in Go names; struct field Merge_passes_sum should be MergePassesSum (golint)
    • Line 460: warning: don't use underscores in Go names; struct field Merge_passes_min should be MergePassesMin (golint)
    • Line 461: warning: don't use underscores in Go names; struct field Merge_passes_avg should be MergePassesAvg (golint)
    • Line 462: warning: don't use underscores in Go names; struct field Merge_passes_med should be MergePassesMed (golint)
    • Line 463: warning: don't use underscores in Go names; struct field Merge_passes_p95 should be MergePassesP95 (golint)
    • Line 464: warning: don't use underscores in Go names; struct field Merge_passes_max should be MergePassesMax (golint)
    • Line 468: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_sum should be InnoDBIOROpsSum (golint)
    • Line 469: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_min should be InnoDBIOROpsMin (golint)
    • Line 470: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_avg should be InnoDBIOROpsAvg (golint)
    • Line 471: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_med should be InnoDBIOROpsMed (golint)
    • Line 472: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_p95 should be InnoDBIOROpsP95 (golint)
    • Line 473: warning: don't use underscores in Go names; struct field InnoDB_IO_r_ops_max should be InnoDBIOROpsMax (golint)
    • Line 474: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_sum should be InnoDBIORBytesSum (golint)
    • Line 475: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_min should be InnoDBIORBytesMin (golint)
    • Line 476: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_avg should be InnoDBIORBytesAvg (golint)
    • Line 477: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_med should be InnoDBIORBytesMed (golint)
    • Line 478: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_p95 should be InnoDBIORBytesP95 (golint)
    • Line 479: warning: don't use underscores in Go names; struct field InnoDB_IO_r_bytes_max should be InnoDBIORBytesMax (golint)
    • Line 480: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_sum should be InnoDBIORWaitSum (golint)
    • Line 481: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_min should be InnoDBIORWaitMin (golint)
    • Line 482: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_avg should be InnoDBIORWaitAvg (golint)
    • Line 483: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_med should be InnoDBIORWaitMed (golint)
    • Line 484: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_p95 should be InnoDBIORWaitP95 (golint)
    • Line 485: warning: don't use underscores in Go names; struct field InnoDB_IO_r_wait_max should be InnoDBIORWaitMax (golint)
    • Line 486: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_sum should be InnoDBRecLockWaitSum (golint)
    • Line 487: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_min should be InnoDBRecLockWaitMin (golint)
    • Line 488: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_avg should be InnoDBRecLockWaitAvg (golint)
    • Line 489: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_med should be InnoDBRecLockWaitMed (golint)
    • Line 490: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_p95 should be InnoDBRecLockWaitP95 (golint)
    • Line 491: warning: don't use underscores in Go names; struct field InnoDB_rec_lock_wait_max should be InnoDBRecLockWaitMax (golint)
    • Line 492: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_sum should be InnoDBQueueWaitSum (golint)
    • Line 493: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_min should be InnoDBQueueWaitMin (golint)
    • Line 494: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_avg should be InnoDBQueueWaitAvg (golint)
    • Line 495: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_med should be InnoDBQueueWaitMed (golint)
    • Line 496: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_p95 should be InnoDBQueueWaitP95 (golint)
    • Line 497: warning: don't use underscores in Go names; struct field InnoDB_queue_wait_max should be InnoDBQueueWaitMax (golint)
    • Line 498: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_sum should be InnoDBPagesDistinctSum (golint)
    • Line 499: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_min should be InnoDBPagesDistinctMin (golint)
    • Line 500: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_avg should be InnoDBPagesDistinctAvg (golint)
    • Line 501: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_med should be InnoDBPagesDistinctMed (golint)
    • Line 502: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_p95 should be InnoDBPagesDistinctP95 (golint)
    • Line 503: warning: don't use underscores in Go names; struct field InnoDB_pages_distinct_max should be InnoDBPagesDistinctMax (golint)
    • Line 507: warning: don't use underscores in Go names; struct field Errors_sum should be ErrorsSum (golint)
    • Line 508: warning: don't use underscores in Go names; struct field Warnings_sum should be WarningsSum (golint)
    • Line 509: warning: don't use underscores in Go names; struct field Select_full_range_join_sum should be SelectFullRangeJoinSum (golint)
    • Line 510: warning: don't use underscores in Go names; struct field Select_range_sum should be SelectRangeSum (golint)
    • Line 511: warning: don't use underscores in Go names; struct field Select_range_check_sum should be SelectRangeCheckSum (golint)
    • Line 512: warning: don't use underscores in Go names; struct field Sort_range_sum should be SortRangeSum (golint)
    • Line 513: warning: don't use underscores in Go names; struct field Sort_rows_sum should be SortRowsSum (golint)
    • Line 514: warning: don't use underscores in Go names; struct field Sort_scan_sum should be SortScanSum (golint)
    • Line 515: warning: don't use underscores in Go names; struct field No_index_used_sum should be NoIndexUsedSum (golint)
    • Line 516: warning: don't use underscores in Go names; struct field No_good_index_used_sum should be NoGoodIndexUsedSum (golint)
    • qan-api/tests/setup/api/api.go
    • Line 43: warning: exported var ErrStartFailed should have comment or be unexported (golint)
    • Line 45: warning: exported type Api should have comment or be unexported (golint)
    • Line 53: warning: exported type Response should have comment or be unexported (golint)
    • Line 59: warning: exported function NewApi should have comment or be unexported (golint)
    • Line 71: warning: exported method Api.Start should have comment or be unexported (golint)
    • Line 109: warning: exported method Api.Stop should have comment or be unexported (golint)
    • Line 119: warning: exported method Api.DisconnectAllClients should have comment or be unexported (golint)
    • Line 126: warning: exported method Api.GetHost should have comment or be unexported (golint)
    • Line 130: warning: exported method Api.GetPort should have comment or be unexported (golint)
    • Line 134: warning: exported method Api.Connect should have comment or be unexported (golint)
    • Line 155: warning: exported method Api.ConnectAgent should have comment or be unexported (golint)
    • Line 205: warning: exported method Api.Get should have comment or be unexported (golint)
    • Line 229: warning: exported method Api.Post should have comment or be unexported (golint)
    • Line 233: warning: exported method Api.Put should have comment or be unexported (golint)
    • Line 237: warning: exported method Api.StartPost should have comment or be unexported (golint)
    • Line 241: warning: exported method Api.StartPut should have comment or be unexported (golint)
    • Line 281: warning: exported method Api.Delete should have comment or be unexported (golint)
    • qan-api/app/config/config.go
    • Line 21: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 27: warning: exported type MySQLHandler should have comment or be unexported (golint)
    • Line 32: warning: exported function NewMySQLHandler should have comment or be unexported (golint)
    • Line 40: warning: exported method MySQLHandler.GetQAN should have comment or be unexported (golint)
    • qan-api/app/query/query.go
    • Line 25: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 34: warning: exported function GetClassId should have comment or be unexported (golint)
    • Line 46: warning: exported type MySQLHandler should have comment or be unexported (golint)
    • Line 51: warning: exported function NewMySQLHandler should have comment or be unexported (golint)
    • Line 59: warning: exported method MySQLHandler.Get should have comment or be unexported (golint)
    • Line 99: warning: exported method MySQLHandler.Examples should have comment or be unexported (golint)
    • Line 139: warning: exported method MySQLHandler.Example should have comment or be unexported (golint)
    • Line 153: warning: exported method MySQLHandler.UpdateExample should have comment or be unexported (golint)
    • Line 170: warning: exported method MySQLHandler.UpdateTables should have comment or be unexported (golint)
    • Line 183: warning: exported method MySQLHandler.Tables should have comment or be unexported (golint)
    • qan-api/app/agent/proc.go
    • Line 43: warning: exported function NewProcessor should have comment or be unexported (golint)
    • Line 52: warning: exported method Processor.BeforeSend should have comment or be unexported (golint)
    • Line 75: warning: exported method Processor.AfterRecv should have comment or be unexported (golint)
    • Line 127: warning: exported method Processor.Timeout should have comment or be unexported (golint)
    • qan-api/test/mock/ws_client.go
    • Line 27: warning: exported type WebsocketClient should have comment or be unexported (golint)
    • Line 38: warning: exported function NewWebsocketClient should have comment or be unexported (golint)
    • Line 46: warning: exported method WebsocketClient.Connect should have comment or be unexported (golint)
    • Line 64: warning: exported method WebsocketClient.Close should have comment or be unexported (golint)
    • Line 95: warning: exported method WebsocketClient.SendChan should have comment or be unexported (golint)
    • Line 99: warning: exported method WebsocketClient.RecvChan should have comment or be unexported (golint)
    • Line 103: warning: exported method WebsocketClient.CloseChan should have comment or be unexported (golint)
    • qan-api/test/mock/closure/agent_handler.go
    • Line 24: warning: exported type AgentHandlerMock should have comment or be unexported (golint)
    • Line 36: warning: exported method AgentHandlerMock.OpenDbh should have comment or be unexported (golint)
    • Line 40: warning: exported method AgentHandlerMock.CloseDbh should have comment or be unexported (golint)
    • Line 44: warning: exported method AgentHandlerMock.Get should have comment or be unexported (golint)
    • Line 51: warning: exported method AgentHandlerMock.GetAll should have comment or be unexported (golint)
    • Line 55: warning: exported method AgentHandlerMock.Delete should have comment or be unexported (golint)
    • Line 59: warning: exported method AgentHandlerMock.Remove should have comment or be unexported (golint)
    • Line 63: warning: exported method AgentHandlerMock.SetConfig should have comment or be unexported (golint)
    • Line 70: warning: exported method AgentHandlerMock.RemoveConfig should have comment or be unexported (golint)
    • Line 77: warning: exported method AgentHandlerMock.UpdateConfigs should have comment or be unexported (golint)
    • Line 84: warning: exported method AgentHandlerMock.Update should have comment or be unexported (golint)
    • Line 88: warning: exported method AgentHandlerMock.UpdateVersion should have comment or be unexported (golint)
    • Line 92: warning: exported method AgentHandlerMock.Create should have comment or be unexported (golint)
    • Line 96: warning: exported method AgentHandlerMock.AgentVersions should have comment or be unexported (golint)
    • qan-api/test/mock/multiplexer.go
    • Line 20: warning: exported type Multiplexer should have comment or be unexported (golint)
    • Line 27: warning: exported function NewMultiplexer should have comment or be unexported (golint)
    • Line 37: warning: exported method Multiplexer.Start should have comment or be unexported (golint)
    • Line 41: warning: exported method Multiplexer.Stop should have comment or be unexported (golint)
    • Line 44: warning: exported method Multiplexer.Done should have comment or be unexported (golint)
    • Line 48: warning: exported method Multiplexer.Send should have comment or be unexported (golint)
    • qan-api/app/controllers/agent/manage.go
    • Line 55: warning: comment on exported method Agent.SendCmd should be of the form "SendCmd ..." (golint)
    • Line 192: warning: comment on exported method Agent.Status should be of the form "Status ..." (golint)
    • Line 235: warning: comment on exported method Agent.GetLog should be of the form "GetLog ..." (golint)
    • qan-api/app/db/mysql/error.go
    • Line 28: warning: comment on exported function Error should be of the form "Error ..." (golint)
    • Line 45: warning: exported function ErrorCode should have comment or be unexported (golint)
    • qan-api/app/qan/data.go
    • Line 35: warning: exported const MAX_DATA_MSG should have comment (or a comment on this block) or be unexported (golint)
    • Line 39: warning: exported function SaveData should have comment or be unexported (golint)

license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign90%

IneffAssign detects ineffectual assignments in Go code.


misspell96%

Misspell Finds commonly misspelled English words