feat(measurexlite): add T0 and TransactionID (#879)
The T0 field is the moment when we started collecting data, while T is the moment when we finished collecting data. The TransactionID field will be repurposed for step-by-step measurements to indicate related observations collected as part of the same flow (e.g., TCP+TLS+HTTP). Note that, for now, this change will only affect measurexlite and we're not planning on changing other libraries for measuring. Part of https://github.com/ooni/probe/issues/2137
This commit is contained in:
+24
-15
@@ -125,6 +125,7 @@ type ArchivalDNSLookupResult struct {
|
||||
ResolverAddress string `json:"resolver_address"`
|
||||
T0 float64 `json:"t0"`
|
||||
T float64 `json:"t"`
|
||||
TransactionID int64 `json:"transaction_id"`
|
||||
}
|
||||
|
||||
// ArchivalDNSAnswer is a DNS answer.
|
||||
@@ -146,10 +147,12 @@ type ArchivalDNSAnswer struct {
|
||||
//
|
||||
// See https://github.com/ooni/spec/blob/master/data-formats/df-005-tcpconnect.md.
|
||||
type ArchivalTCPConnectResult struct {
|
||||
IP string `json:"ip"`
|
||||
Port int `json:"port"`
|
||||
Status ArchivalTCPConnectStatus `json:"status"`
|
||||
T float64 `json:"t"`
|
||||
IP string `json:"ip"`
|
||||
Port int `json:"port"`
|
||||
Status ArchivalTCPConnectStatus `json:"status"`
|
||||
T0 float64 `json:"t0"`
|
||||
T float64 `json:"t"`
|
||||
TransactionID int64 `json:"transaction_id"`
|
||||
}
|
||||
|
||||
// ArchivalTCPConnectStatus is the status of ArchivalTCPConnectResult.
|
||||
@@ -175,9 +178,11 @@ type ArchivalTLSOrQUICHandshakeResult struct {
|
||||
NoTLSVerify bool `json:"no_tls_verify"`
|
||||
PeerCertificates []ArchivalMaybeBinaryData `json:"peer_certificates"`
|
||||
ServerName string `json:"server_name"`
|
||||
T0 float64 `json:"t0"`
|
||||
T float64 `json:"t"`
|
||||
Tags []string `json:"tags"`
|
||||
TLSVersion string `json:"tls_version"`
|
||||
TransactionID int64 `json:"transaction_id"`
|
||||
}
|
||||
|
||||
//
|
||||
@@ -188,10 +193,12 @@ type ArchivalTLSOrQUICHandshakeResult struct {
|
||||
//
|
||||
// See https://github.com/ooni/spec/blob/master/data-formats/df-001-httpt.md.
|
||||
type ArchivalHTTPRequestResult struct {
|
||||
Failure *string `json:"failure"`
|
||||
Request ArchivalHTTPRequest `json:"request"`
|
||||
Response ArchivalHTTPResponse `json:"response"`
|
||||
T float64 `json:"t"`
|
||||
Failure *string `json:"failure"`
|
||||
Request ArchivalHTTPRequest `json:"request"`
|
||||
Response ArchivalHTTPResponse `json:"response"`
|
||||
T0 float64 `json:"t0"`
|
||||
T float64 `json:"t"`
|
||||
TransactionID int64 `json:"transaction_id"`
|
||||
}
|
||||
|
||||
// ArchivalHTTPRequest contains an HTTP request.
|
||||
@@ -307,11 +314,13 @@ type ArchivalHTTPTor struct {
|
||||
//
|
||||
// See https://github.com/ooni/spec/blob/master/data-formats/df-008-netevents.md.
|
||||
type ArchivalNetworkEvent struct {
|
||||
Address string `json:"address,omitempty"`
|
||||
Failure *string `json:"failure"`
|
||||
NumBytes int64 `json:"num_bytes,omitempty"`
|
||||
Operation string `json:"operation"`
|
||||
Proto string `json:"proto,omitempty"`
|
||||
T float64 `json:"t"`
|
||||
Tags []string `json:"tags,omitempty"`
|
||||
Address string `json:"address,omitempty"`
|
||||
Failure *string `json:"failure"`
|
||||
NumBytes int64 `json:"num_bytes,omitempty"`
|
||||
Operation string `json:"operation"`
|
||||
Proto string `json:"proto,omitempty"`
|
||||
T0 float64 `json:"t0"`
|
||||
T float64 `json:"t"`
|
||||
TransactionID int64 `json:"transaction_id"`
|
||||
Tags []string `json:"tags,omitempty"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user