package main import ( "context" "fmt" influxdb2 "github.com/influxdata/influxdb-client-go" "github.com/influxdata/influxdb-client-go/api/write" "math/rand" "sync" "time" ) var DateFmtYYYYMMDDHHmmss = "2006-01-02 15:04:05" func main() { // Create a new client using an InfluxDB server base URL and an authentication token //client := influxdb2.NewClient("http://192.168.0.153:8086", "QxT7XE12IscrYeso-SePaPQduNcM0e8ELPIq9s-JGbaue4u8ejLuLHaqC2dpQv-1tg254GtqbfPZXdgdZ2mDQA==") client := influxdb2.NewClient("http://127.0.0.1:8086", "2vPvsEyJTQIS0SHF0M3Ni8-pMNRgwE9Aqnc-HvGiT4nvrY4Y6zAaFakomGMG0b4fo5q4vfnSGq2FKw-gMNddNw==") writeAPI := client.WriteAPIBlocking("bianjie", "test") now := time.Now().Add(-12 * time.Hour) fmt.Println("开始 ", time.Now().Format(DateFmtYYYYMMDDHHmmss)) list := getObject() //filenum := 1 wg := sync.WaitGroup{} for p := 0; p < len(list); p++ { //for p := 0; p < 3; p++ { wg.Add(1) go func(p int) { defer wg.Done() for i := 40; i > 1; i-- { //for i := 4; i > 1; i-- { day := now.AddDate(0, 0, -i) //str := "" //tdstr := "" var points []*write.Point for j := 1; j < 20001; j++ { //for j := 1; j < 4; j++ { num := 1 addMill := rand.Intn(3000) + 1 operation := rand.Intn(19) + 1 t := rand.Intn(1) + 1 gas := 0 if operation == 1 { // 创建链账户授权 if t != 1 { gas = rand.Intn(20000) + 50000 } } else if operation == 8 || operation == 9 || operation == 10 || operation == 11 || operation == 17 || operation == 18 || operation == 19 || operation == 20 { gas = rand.Intn(20000) + 50000 num = rand.Intn(9) + 1 gas = gas * num } else { gas = rand.Intn(20000) + 50000 } point := influxdb2.NewPointWithMeasurement("tx_metrics1"). AddTag("chain_id", fmt.Sprintf("%d", list[p].Chain)). AddTag("user_id", fmt.Sprintf("%d", list[p].Uid)). AddTag("project_id", fmt.Sprintf("%d", list[p].Pid)). AddTag("account", list[p].Account). AddTag("operation", fmt.Sprintf("%d", operation)). AddTag("type", fmt.Sprintf("%d", t)). AddField("num", num). AddField("gas", gas). SetTime(day.Add(time.Duration(j*addMill) * time.Millisecond)) points = append(points, point) if j%1000 == 0 { err := writeAPI.WritePoint(context.Background(), points...) if err != nil { panic(err) } } // Create point using fluent style //point := influxdb2.NewPointWithMeasurement("tx_metrics1"). // AddTag("chain_id", fmt.Sprintf("%d", list[p].Chain)). // AddTag("user_id", fmt.Sprintf("%d", list[p].Uid)). // AddTag("project_id", fmt.Sprintf("%d", list[p].Pid)). // AddTag("account", list[p].Account). // AddTag("operation", fmt.Sprintf("%d", operation)). // AddTag("type", fmt.Sprintf("%d", t)). // AddField("num", num). // AddField("gas", gas). // SetTime(day.Add(time.Duration(j*addMill) * time.Millisecond)) //s := fmt.Sprintf("tx_metrics,chain_id=%d,user_id=%d,project_id=%d,account=%s,operation=%d,type=%d num=%d,gas=%d %d\n", list[p].Chain, list[p].Uid, list[p].Pid, list[p].Account, operation, t, num, gas, day.Add(time.Duration(j*addMill)*time.Millisecond).UnixNano()) //str = fmt.Sprintf("%s%s", str, s) //tds := fmt.Sprintf("chain_id=%d,user_id=%d,project_id=%d,account=%s,operation=%d,type=%d,num=%d,gas=%d,timestamp=%d\n", list[p].Chain, list[p].Uid, list[p].Pid, list[p].Account, operation, t, num, gas, day.Add(time.Duration(j*addMill)*time.Millisecond).UnixNano()) //tdstr = fmt.Sprintf("%s%s", tdstr, tds) } //err := ioutil.WriteFile(fmt.Sprintf("./data_%d.txt", filenum), []byte(str), 0666) //写入文件(字节数组) //if err != nil { // log.Fatal(err.Error()) //} //err = ioutil.WriteFile(fmt.Sprintf("./td%d.txt", filenum), []byte(tdstr), 0666) //写入文件(字节数组) //if err != nil { // log.Fatal(err.Error()) //} //str = "" //filenum++ } }(p) fmt.Println("完成 ", time.Now().Format(DateFmtYYYYMMDDHHmmss), " 当前cup: ", list[p]) } wg.Wait() fmt.Println("结束 ", time.Now().Format(DateFmtYYYYMMDDHHmmss)) //client.Close() } type TxObject struct { Chain int Uid int Pid int Account string } func getObject() []TxObject { return []TxObject{ // native 2个用户 4个项目 10个链账户 {Chain: 1, Uid: 1, Pid: 1, Account: "iaa13yp202vmr3qa3wwlw70trwtrng3rtla9m2gwnc"}, {Chain: 1, Uid: 1, Pid: 1, Account: "iaa1v8xgh04q7axgn9kstudkeg7rj08ccg4eks8c8r"}, {Chain: 1, Uid: 1, Pid: 1, Account: "iaa156hdfjxefyjsw200n48yv58yunjmuk2a07tl7k"}, {Chain: 1, Uid: 1, Pid: 2, Account: "iaa1khsewr70zqxpc6jt6qj5tny3c5p63l885kwygl"}, {Chain: 1, Uid: 1, Pid: 2, Account: "iaa1peqhdfutf5xfhs42ngu650wcdd672t276tdxpa"}, {Chain: 1, Uid: 1, Pid: 2, Account: "iaa1kddq7jpvxgse7j4z9qypm2lns5x49ppn5ynsx5"}, {Chain: 1, Uid: 2, Pid: 3, Account: "iaa15pc3nqaytzsf8996gz4gupl887cmqp2ajl44v6"}, {Chain: 1, Uid: 2, Pid: 3, Account: "iaa15hgev86698u49jkka68q0994fxav4e246sufqd"}, {Chain: 1, Uid: 2, Pid: 4, Account: "iaa1w2kazmtmvdw90e06tyr62d780n39xuszjl67hr"}, {Chain: 1, Uid: 2, Pid: 4, Account: "iaa1vtdj7dh0m64vs9pvj3qkdfqwcrjwg3g9dlp2zy"}, // opb 4个用户 9个项目 22个链账户 {Chain: 3, Uid: 3, Pid: 5, Account: "iaa1a0mwcc0fnh8sv98ps0x20c3hu7utde63g0qj3r"}, {Chain: 3, Uid: 3, Pid: 6, Account: "iaa155n05u6608m9lfsrr3cddutgegfxrvwp6v5glq"}, {Chain: 3, Uid: 3, Pid: 6, Account: "iaa1t4xe0z63qkaa9ynf27znryx99w7k3gdtvk908z"}, {Chain: 3, Uid: 4, Pid: 7, Account: "iaa1t2pa9ftwyyk0srlkcucwpwmykxqypmh5pxz39r"}, {Chain: 3, Uid: 4, Pid: 8, Account: "iaa1gvlt2p2xs03wv32463h7pfxuckvfst8hmktadm"}, {Chain: 3, Uid: 4, Pid: 9, Account: "iaa1n52y7yxr6mjhcrzlf8zlx4h4z462lf2mpaxyrv"}, {Chain: 3, Uid: 4, Pid: 10, Account: "iaa1g4f0dylx5vke4h9l9x045276kyur62lpstsw8p"}, {Chain: 3, Uid: 5, Pid: 11, Account: "iaa1dj49ktzk4nsgyycfcg4vf2lrpte0wtt44lqnhu"}, {Chain: 3, Uid: 5, Pid: 11, Account: "iaa1s6jpmcl86u2m462scl6ms499nd9a2q2fnj8x0n"}, {Chain: 3, Uid: 5, Pid: 12, Account: "iaa1n4tennwauky8su287gu8z4es40rgxfx8hq5999"}, {Chain: 3, Uid: 5, Pid: 13, Account: "iaa1kc09p2ajq0ryd66k8e092q7dyjds4c2p02qlmm"}, {Chain: 3, Uid: 5, Pid: 13, Account: "iaa1cj7d3xd9c5ltj5uqjrsy5vny0r5v9hz8w57lkp"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1xfyvpw6awqzuh52nuxcwzwttr53et3nphpywxr"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1a5uzzf6stag88c2pvnhuh800l472h2a4hszee7"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1zpv4qjnavruzjly47x4xz0ytmma0xzpum7spzw"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa12dxemefktm2tdrru95gnfplkvc59d36yt80mc0"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1q8ypmtffvm0jafqs6sry97xynzjely8lksfw4f"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1c964axusxkaj4wxewsztpfffvt8wxajj2hdhlr"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1lkzvl0vp0rj50cun7h6d8qdj5rdcmytf5r5d70"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1nvanxp7tsp2k440d04250ca4jzecxfts7pj0z0"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1ckxprtaq6ncj3gdlw4zypm7gc596247ka63u44"}, {Chain: 3, Uid: 6, Pid: 14, Account: "iaa1kq2ygd4wrm4p0yzx26dr79fgznqv8mek2u6dfa"}, // ddc 2个用户 3个项目 8个链账户 {Chain: 2, Uid: 7, Pid: 15, Account: "iaa1ku7xzxgua34u5lhzcug3hjuuhq2wppjcm9h8vu"}, {Chain: 2, Uid: 7, Pid: 16, Account: "iaa1zl2yfh6y9n3nt7yhkkzu9je2rjyhpfgsf3yg7r"}, {Chain: 2, Uid: 7, Pid: 16, Account: "iaa123mkjcq7f0v5v3wtdcpc4tyr644us25vwsyfd3"}, {Chain: 2, Uid: 8, Pid: 17, Account: "iaa18fpxzl7v422gxhhnw7g09yu448xk3tanp6gsgr"}, {Chain: 2, Uid: 8, Pid: 17, Account: "iaa1f7yxlyxjvntmhda3jjdntsea7k9fems0khgsuq"}, {Chain: 2, Uid: 8, Pid: 18, Account: "iaa1vmyw5q00z3dpvl2da3huvafd54gr4fh3ueneap"}, {Chain: 2, Uid: 8, Pid: 19, Account: "iaa1g4u4evaggmu7guxdvdrcdnkvcgtyxupedncryk"}, {Chain: 2, Uid: 8, Pid: 19, Account: "iaa1wpjetpz0rnnrw53zxy0acsleddwtrj2vvcpt84"}, } }