mirror of https://github.com/bitcoin/bitcoin
tracing: log_p2p_connections.bt example
A bpftrace (v0.14.1) script that logs information from the net:*_connection tracepoints.
This commit is contained in:
parent
490b80c07c
commit
996029b1fd
|
@ -335,4 +335,25 @@ $ python3 contrib/tracing/mempool_monitor.py ./src/bitcoind
|
|||
│ 13:10:32Z added c78e87be86c828137a6e7e00a177c03b52202ce4c39029b99904c2a094b9da87 with feerate 11.00 sat/vB (1562 sat, 142 vbytes) │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
### log_p2p_connections.bt
|
||||
|
||||
A `bpftrace` script to log information about opened, closed, misbehaving, and
|
||||
evicted P2P connections. Uses the `net:*_connection` tracepoints.
|
||||
|
||||
```bash
|
||||
$ bpftrace contrib/tracing/log_p2p_connections.bt
|
||||
```
|
||||
|
||||
This should produce an output similar to the following.
|
||||
|
||||
```bash
|
||||
Attaching 6 probes...
|
||||
Logging opened, closed, misbehaving, and evicted P2P connections
|
||||
OUTBOUND conn to 127.0.0.1:15287: id=0, type=block-relay-only, network=0, net_group=245974404224840066, total_out=1
|
||||
INBOUND conn from 127.0.0.1:45324: id=1, type=inbound, network=0, net_group=90061749176390714, total_in=1
|
||||
MISBEHAVING conn id=1, score_before=0, score_increase=20, message='getdata message size = 50001', threshold_exceeded=false
|
||||
CLOSED conn to 127.0.0.1:15287: id=0, type=block-relay-only, network=0, net_group=245974404224840066, established=1231006505
|
||||
EVICTED conn to 127.0.0.1:45324: id=1, type=inbound, network=0, net_group=90061749176390714, established=1612312312
|
||||
...
|
||||
```
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env bpftrace
|
||||
|
||||
BEGIN
|
||||
{
|
||||
printf("Logging opened, closed, misbehaving, and evicted P2P connections\n")
|
||||
}
|
||||
|
||||
usdt:./src/bitcoind:net:inbound_connection
|
||||
{
|
||||
$id = (int64) arg0;
|
||||
$addr = str(arg1);
|
||||
$conn_type = str(arg2);
|
||||
$network = (int32) arg3;
|
||||
$existing = (uint64) arg4;
|
||||
printf("INBOUND conn from %s: id=%ld, type=%s, network=%d, total=%d\n", $addr, $id, $conn_type, $network, $existing + 1);
|
||||
}
|
||||
|
||||
usdt:./src/bitcoind:net:outbound_connection
|
||||
{
|
||||
$id = (int64) arg0;
|
||||
$addr = str(arg1);
|
||||
$conn_type = str(arg2);
|
||||
$network = (int32) arg3;
|
||||
$existing = (uint64) arg4;
|
||||
printf("OUTBOUND conn to %s: id=%ld, type=%s, network=%d, total=%d\n", $addr, $id, $conn_type, $network, $existing + 1);
|
||||
}
|
||||
|
||||
usdt:./src/bitcoind:net:closed_connection
|
||||
{
|
||||
$id = (int64) arg0;
|
||||
$addr = str(arg1);
|
||||
$conn_type = str(arg2);
|
||||
$network = (int32) arg3;
|
||||
printf("CLOSED conn to %s: id=%ld, type=%s, network=%d, established=%ld\n", $addr, $id, $conn_type, $network, arg4);
|
||||
}
|
||||
|
||||
usdt:./src/bitcoind:net:evicted_inbound_connection
|
||||
{
|
||||
$id = (int64) arg0;
|
||||
$addr = str(arg1);
|
||||
$conn_type = str(arg2);
|
||||
$network = (int32) arg3;
|
||||
printf("EVICTED conn to %s: id=%ld, type=%s, network=%d, established=%ld\n", $addr, $id, $conn_type, $network, arg4);
|
||||
}
|
||||
|
||||
usdt:./src/bitcoind:net:misbehaving_connection
|
||||
{
|
||||
$id = (int64) arg0;
|
||||
$message = str(arg3);
|
||||
$threshold = arg4;
|
||||
printf("MISBEHAVING conn id=%ld, score_before=%d, score_increase=%d, message='%s', threshold_exceeded=%s\n", $id, arg1, arg2, $message, ($threshold ? "true" : "false"));
|
||||
}
|
Loading…
Reference in New Issue