196 lines
2.6 KiB
Go
196 lines
2.6 KiB
Go
|
package v1
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"database/sql"
|
||
|
"strconv"
|
||
|
)
|
||
|
|
||
|
type Mapping struct {
|
||
|
OnServer string
|
||
|
InExport string
|
||
|
}
|
||
|
|
||
|
var Mappings = []*Mapping{
|
||
|
{
|
||
|
OnServer: "Aborted_",
|
||
|
InExport: "aborted_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Bytes_",
|
||
|
InExport: "bytes_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Com_",
|
||
|
InExport: "commands_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Created_",
|
||
|
InExport: "created_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Handler_",
|
||
|
InExport: "handler_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Innodb_",
|
||
|
InExport: "innodb_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Key_",
|
||
|
InExport: "key_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Open_",
|
||
|
InExport: "open_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Opened_",
|
||
|
InExport: "opened_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Qcache_",
|
||
|
InExport: "qcache_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Table_",
|
||
|
InExport: "table_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Tokudb_",
|
||
|
InExport: "tokudb_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Threads_",
|
||
|
InExport: "threads_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Access_",
|
||
|
InExport: "access_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Aria__",
|
||
|
InExport: "aria_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Binlog__",
|
||
|
InExport: "binlog_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Busy_",
|
||
|
InExport: "busy_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Connection_",
|
||
|
InExport: "connection_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Delayed_",
|
||
|
InExport: "delayed_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Empty_",
|
||
|
InExport: "empty_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Executed_",
|
||
|
InExport: "executed_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Executed_",
|
||
|
InExport: "executed_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Feature_",
|
||
|
InExport: "feature_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Flush_",
|
||
|
InExport: "flush_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Last_",
|
||
|
InExport: "last_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Master_",
|
||
|
InExport: "master_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Max_",
|
||
|
InExport: "max_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Memory_",
|
||
|
InExport: "memory_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Not_",
|
||
|
InExport: "not_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Performance_",
|
||
|
InExport: "performance_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Prepared_",
|
||
|
InExport: "prepared_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Rows_",
|
||
|
InExport: "rows_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Rpl_",
|
||
|
InExport: "rpl_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Select_",
|
||
|
InExport: "select_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Slave_",
|
||
|
InExport: "slave_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Slow_",
|
||
|
InExport: "slow_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Sort_",
|
||
|
InExport: "sort_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Subquery_",
|
||
|
InExport: "subquery_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Tc_",
|
||
|
InExport: "tc_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Threadpool_",
|
||
|
InExport: "threadpool_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "wsrep_",
|
||
|
InExport: "wsrep_",
|
||
|
},
|
||
|
{
|
||
|
OnServer: "Uptime_",
|
||
|
InExport: "uptime_",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
func ParseValue(value sql.RawBytes) (float64, bool) {
|
||
|
if bytes.Compare(value, []byte("Yes")) == 0 || bytes.Compare(value, []byte("ON")) == 0 {
|
||
|
return 1, true
|
||
|
}
|
||
|
|
||
|
if bytes.Compare(value, []byte("No")) == 0 || bytes.Compare(value, []byte("OFF")) == 0 {
|
||
|
return 0, true
|
||
|
}
|
||
|
n, err := strconv.ParseFloat(string(value), 64)
|
||
|
return n, err == nil
|
||
|
}
|