Skip to content

Instantly share code, notes, and snippets.

View zhouqiang-cl's full-sized avatar
💧
It is time

zhouqiang zhouqiang-cl

💧
It is time
  • None
  • air
View GitHub Profile
@zhouqiang-cl
zhouqiang-cl / failure-gen.service
Created December 25, 2019 08:07
failure-gen.service
[Unit]
Description=failure gen service
After=syslog.target network.target
[Service]
SyslogIdentifier=failure-gen
ExecStart=/opt/onfailure-test/failure-gen /opt/onfailure-test/aaa
ExecStopPost=/bin/bash -c '/bin/systemctl status failure-gen | /usr/bin/mailx -Ssendwait -s "[failure-gen] failure notification" [email protected]'
Restart=always
RestartSec=15s
@zhouqiang-cl
zhouqiang-cl / capture
Created April 11, 2019 02:40 — forked from siddontang/capture
A tool to capture TiKV gRPC message
go run tikv-assembly.go -f "port 20160" -i lo0
2018/12/29 20:17:17 Starting capture on interface "lo0"
2018/12/29 20:17:17 reading in packets
2018/12/29 20:17:26 127.0.0.1:64989 -> 127.0.0.1:20160 /tikvpb.Tikv/KvPrewrite context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > mutations:<key:"usertable:a" value:"\010\000\002\0020" > primary_lock:"usertable:a" start_version:405297128206237697 lock_ttl:3000
2018/12/29 20:17:26 127.0.0.1:20160 -> 127.0.0.1:64989 /tikvpb.Tikv/KvPrewrite
2018/12/29 20:17:26 127.0.0.1:64995 -> 127.0.0.1:20160 /tikvpb.Tikv/KvCommit context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > start_version:405297128206237697 keys:"usertable:a" commit_version:405297128206237698
2018/12/29 20:17:26 127.0.0.1:20160 -> 127.0.0.1:64995 /tikvpb.Tikv/KvCommit
2018/12/29 20:17:29 127.0.0.1:64999 -> 127.0.0.1:20160 /tikvpb.Tikv/KvGet context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > key:"usertable:a" version:4
// manager hold status
// groovy hold stage
def cfg = [:]
cfg["type"] = "dm-cluster"
cfg["size"] = {"tikv":{"size":3,"version":"111"},
"tidb":{"size":1,"version":"x"},
"pd":{"size":1,"version":"x"},
"mysql":{"size":2,"version":"y"},
"dm":{"version":"z"}}
// manager hold status
// groovy hold stage
def cfg = [:]
cfg["type"] = "tidb-cluster"
cfg["size"] = {"tikv":{"size":3,"version":"111"},"tidb":{"size":1,"version":"x"},"pd":{"size":1,"version":"x"}}
def cat = new Cat(cfg) // Cat is an function, type specify what kind of cat should be start
def monitor = new Monitor() // when script is quit, monitor will quit
def reportor = new Reportor("oncall-sre") // if it create repotor, then default reportor will not report
@zhouqiang-cl
zhouqiang-cl / Jenkinsfile
Created December 26, 2018 17:22 — forked from oifland/Jenkinsfile
Loops in Jenkinsfiles
// Related to https://issues.jenkins-ci.org/browse/JENKINS-26481
abcs = ['a', 'b', 'c']
node('master') {
stage('Test 1: loop of echo statements') {
echo_all(abcs)
}
stage('Test 2: loop of sh commands') {
#!/bin/bash
interface=em1
ip=172.16.10.52
ip2=172.16.10.53
ip3=172.16.10.54
delay1=1ms
delay2=2ms
delay3=3ms
@zhouqiang-cl
zhouqiang-cl / delay.sh
Created January 30, 2018 09:49 — forked from digilist/delay.sh
Delaying network traffic to a specific IP
#!/bin/bash
interface=lo
ip=10.0.0.1
delay=100ms
tc qdisc add dev $interface root handle 1: prio
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip flowid 2:1
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay
@zhouqiang-cl
zhouqiang-cl / run_in_thread
Last active April 27, 2017 16:20
run_in_thread
import threading
from functools import wraps
threads = []
def run_in_thread(join=False):
def decorator(f):
@wraps(f)
def wrapper(*args, **kwds):
t = threading.Thread(target=f,args=args,kwargs=kwds)
threads.append(t)
@zhouqiang-cl
zhouqiang-cl / loop-hashtable-keys
Created January 1, 2017 14:18
遍历hash-table中的key
语法
(loop for key being the hash-keys of hash-table collect key)
@zhouqiang-cl
zhouqiang-cl / mapcar.txt
Created December 28, 2016 12:17
common lisp 的mapcar
语法
mapcar function &rest lists+ => result-list
参数和值
function --- 一个 function 指示符
list --- 一个 list
描述
mapcar 使用 function 对 lists 的 元素进行一个个求值