Loading cmds/statsd/src/atoms.proto +27 −40 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import "frameworks/base/core/proto/android/server/location/enums.proto"; import "frameworks/base/core/proto/android/service/procstats_enum.proto"; import "frameworks/base/core/proto/android/service/usb.proto"; import "frameworks/base/core/proto/android/stats/connectivity/network_stack.proto"; import "frameworks/base/core/proto/android/stats/connectivity/resolv_stats.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto"; Loading Loading @@ -4996,53 +4997,39 @@ message AppCompacted { } /** * Logs the latency period(in microseconds) and the return code of * the DNS(Domain Name System) lookups. * These 4 methods(GETADDRINFO,GETHOSTBYNAME,GETHOSTBYADDR,RES_NSEND) * to get info(address or hostname) from DNS server(or DNS cache). * Logged from: * /system/netd/server/DnsProxyListener.cpp * Logs a DNS lookup operation initiated by the system resolver on behalf of an application * invoking native APIs such as getaddrinfo() or Java APIs such as Network#getAllByName(). * * The top-level message represents the entire lookup operation, which may result one or more * queries to the recursive DNS resolvers. Those are individually logged in DnsQueryEvent to * enable computing error rates and network latency and timeouts broken up by query type, * transport, network interface, etc. */ message NetworkDnsEventReported { // The types of the DNS lookups, as defined in //system/netd/server/binder/android/net/metrics/INetdEventListener.aidl enum EventType { EVENT_UNKNOWN = 0; EVENT_GETADDRINFO = 1; EVENT_GETHOSTBYNAME = 2; EVENT_GETHOSTBYADDR = 3; EVENT_RES_NSEND = 4; } optional EventType event_type = 1; // The return value of the DNS resolver for each DNS lookups. //bionic/libc/include/netdb.h //system/netd/resolv/include/netd_resolv/resolv.h enum ReturnCode { EAI_NO_ERROR = 0; EAI_ADDRFAMILY = 1; EAI_AGAIN = 2; EAI_BADFLAGS = 3; EAI_FAIL = 4; EAI_FAMILY = 5; EAI_MEMORY = 6; EAI_NODATA = 7; EAI_NONAME = 8; EAI_SERVICE = 9; EAI_SOCKTYPE = 10; EAI_SYSTEM = 11; EAI_BADHINTS = 12; EAI_PROTOCOL = 13; EAI_OVERFLOW = 14; RESOLV_TIMEOUT = 255; EAI_MAX = 256; } optional ReturnCode return_code = 2; // The latency period(in microseconds) it took for this DNS lookup to complete. optional android.stats.connectivity.EventType event_type = 1; optional android.stats.connectivity.ReturnCode return_code = 2; // The latency in microseconds of the entire DNS lookup operation. optional int32 latency_micros = 3; optional android.stats.connectivity.DnsQueryEventRe dns_query_event_re = 4 [(log_mode) = MODE_BYTES]; // ResNSend flags defined in android/multinetwork.h optional int32 flags = 5; optional android.net.NetworkCapabilitiesProto.Transport network_type = 6; // The DNS over TLS mode on a specific netId. optional android.stats.connectivity.PrivateDnsModes private_dns_modes = 7; // Additional pass-through fields opaque to statsd. // The DNS resolver Mainline module can add new fields here without requiring an OS update. optional android.stats.connectivity.DnsCallEvent dns_call_event = 8 [(log_mode) = MODE_BYTES]; } /** * Logs when a data stall event occurs. * Loading core/proto/android/stats/connectivity/resolv_stats.proto 0 → 100644 +182 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package android.stats.connectivity; import "frameworks/base/core/proto/android/net/networkcapabilities.proto"; enum EventType { EVENT_UNKNOWN = 0; EVENT_GETADDRINFO = 1; EVENT_GETHOSTBYNAME = 2; EVENT_GETHOSTBYADDR = 3; EVENT_RES_NSEND = 4; } enum PrivateDnsModes { OFF = 0; OPPORTUNISTIC = 1; STRICT = 2; } // The return value of the DNS resolver for each DNS lookups. // bionic/libc/include/netdb.h // system/netd/resolv/include/netd_resolv/resolv.h enum ReturnCode { RC_EAI_NO_ERROR = 0; RC_EAI_ADDRFAMILY = 1; RC_EAI_AGAIN = 2; RC_EAI_BADFLAGS = 3; RC_EAI_FAIL = 4; RC_EAI_FAMILY = 5; RC_EAI_MEMORY = 6; RC_EAI_NODATA = 7; RC_EAI_NONAME = 8; RC_EAI_SERVICE = 9; RC_EAI_SOCKTYPE = 10; RC_EAI_SYSTEM = 11; RC_EAI_BADHINTS = 12; RC_EAI_PROTOCOL = 13; RC_EAI_OVERFLOW = 14; RC_RESOLV_TIMEOUT = 255; RC_EAI_MAX = 256; } enum NsRcode { ns_r_noerror = 0; // No error occurred. ns_r_formerr = 1; // Format error. ns_r_servfail = 2; // Server failure. ns_r_nxdomain = 3; // Name error. ns_r_notimpl = 4; // Unimplemented. ns_r_refused = 5; // Operation refused. // these are for BIND_UPDATE ns_r_yxdomain = 6; // Name exists ns_r_yxrrset = 7; // RRset exists ns_r_nxrrset = 8; // RRset does not exist ns_r_notauth = 9; // Not authoritative for zone ns_r_notzone = 10; // Zone of record different from zone section ns_r_max = 11; // The following are EDNS extended rcodes ns_r_badvers = 16; // The following are TSIG errors //ns_r_badsig = 16, ns_r_badkey = 17; ns_r_badtime = 18; } // Currently defined type values for resources and queries. enum NsType { ns_t_invalid = 0; // Cookie. ns_t_a = 1; // Host address. ns_t_ns = 2; // Authoritative server. ns_t_md = 3; // Mail destination. ns_t_mf = 4; // Mail forwarder. ns_t_cname = 5; // Canonical name. ns_t_soa = 6; // Start of authority zone. ns_t_mb = 7; // Mailbox domain name. ns_t_mg = 8; // Mail group member. ns_t_mr = 9; // Mail rename name. ns_t_null = 10; // Null resource record. ns_t_wks = 11; // Well known service. ns_t_ptr = 12; // Domain name pointer. ns_t_hinfo = 13; // Host information. ns_t_minfo = 14; // Mailbox information. ns_t_mx = 15; // Mail routing information. ns_t_txt = 16; // Text strings. ns_t_rp = 17; // Responsible person. ns_t_afsdb = 18; // AFS cell database. ns_t_x25 = 19; // X_25 calling address. ns_t_isdn = 20; // ISDN calling address. ns_t_rt = 21; // Router. ns_t_nsap = 22; // NSAP address. ns_t_nsap_ptr = 23; // Reverse NSAP lookup (deprecated). ns_t_sig = 24; // Security signature. ns_t_key = 25; // Security key. ns_t_px = 26; // X.400 mail mapping. ns_t_gpos = 27; // Geographical position (withdrawn). ns_t_aaaa = 28; // IPv6 Address. ns_t_loc = 29; // Location Information. ns_t_nxt = 30; // Next domain (security). ns_t_eid = 31; // Endpoint identifier. ns_t_nimloc = 32; // Nimrod Locator. ns_t_srv = 33; // Server Selection. ns_t_atma = 34; // ATM Address ns_t_naptr = 35; // Naming Authority PoinTeR ns_t_kx = 36; // Key Exchange ns_t_cert = 37; // Certification record ns_t_a6 = 38; // IPv6 address (experimental) ns_t_dname = 39; // Non-terminal DNAME ns_t_sink = 40; // Kitchen sink (experimentatl) ns_t_opt = 41; // EDNS0 option (meta-RR) ns_t_apl = 42; // Address prefix list (RFC 3123) ns_t_ds = 43; // Delegation Signer ns_t_sshfp = 44; // SSH Fingerprint ns_t_ipseckey = 45; // IPSEC Key ns_t_rrsig = 46; // RRset Signature ns_t_nsec = 47; // Negative security ns_t_dnskey = 48; // DNS Key ns_t_dhcid = 49; // Dynamic host configuratin identifier ns_t_nsec3 = 50; // Negative security type 3 ns_t_nsec3param = 51;// Negative security type 3 parameters ns_t_hip = 55; // Host Identity Protocol ns_t_spf = 99; // Sender Policy Framework ns_t_tkey = 249; // Transaction key ns_t_tsig = 250; // Transaction signature. ns_t_ixfr = 251; // Incremental zone transfer. ns_t_axfr = 252; // Transfer zone of authority. ns_t_mailb = 253; // Transfer mailbox records. ns_t_maila = 254; // Transfer mail agent records. ns_t_any = 255; // Wildcard match. ns_t_zxfr = 256; // BIND-specific, nonstandard. ns_t_dlv = 32769; // DNSSEC look-aside validatation. ns_t_max = 65536; } enum IpVersion { IPV4 = 0; IPV6 = 1; MIXED = 2; } enum TransportType { UDP = 0; TCP = 1; DOT = 2; DOT_UDP = 3; DOT_TCP = 4; } message DnsQueryEvent { optional NsRcode rrcode = 1; optional NsType rrtype = 2; optional bool cache_hit = 3; optional IpVersion ipversion = 4; optional TransportType transport = 5; optional int32 packet_retransmits = 6; // Used only by the UDP transport optional int32 reconnects = 7; // Used only by TCP and DOT optional int32 latency_micros = 8; optional int32 active_experiments = 9; optional android.net.NetworkCapabilitiesProto.Transport network_type = 10; } message DnsQueryEventRe { repeated DnsQueryEvent dns_query_event = 1; } message DnsCallEvent { } Loading
cmds/statsd/src/atoms.proto +27 −40 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import "frameworks/base/core/proto/android/server/location/enums.proto"; import "frameworks/base/core/proto/android/service/procstats_enum.proto"; import "frameworks/base/core/proto/android/service/usb.proto"; import "frameworks/base/core/proto/android/stats/connectivity/network_stack.proto"; import "frameworks/base/core/proto/android/stats/connectivity/resolv_stats.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto"; Loading Loading @@ -4996,53 +4997,39 @@ message AppCompacted { } /** * Logs the latency period(in microseconds) and the return code of * the DNS(Domain Name System) lookups. * These 4 methods(GETADDRINFO,GETHOSTBYNAME,GETHOSTBYADDR,RES_NSEND) * to get info(address or hostname) from DNS server(or DNS cache). * Logged from: * /system/netd/server/DnsProxyListener.cpp * Logs a DNS lookup operation initiated by the system resolver on behalf of an application * invoking native APIs such as getaddrinfo() or Java APIs such as Network#getAllByName(). * * The top-level message represents the entire lookup operation, which may result one or more * queries to the recursive DNS resolvers. Those are individually logged in DnsQueryEvent to * enable computing error rates and network latency and timeouts broken up by query type, * transport, network interface, etc. */ message NetworkDnsEventReported { // The types of the DNS lookups, as defined in //system/netd/server/binder/android/net/metrics/INetdEventListener.aidl enum EventType { EVENT_UNKNOWN = 0; EVENT_GETADDRINFO = 1; EVENT_GETHOSTBYNAME = 2; EVENT_GETHOSTBYADDR = 3; EVENT_RES_NSEND = 4; } optional EventType event_type = 1; // The return value of the DNS resolver for each DNS lookups. //bionic/libc/include/netdb.h //system/netd/resolv/include/netd_resolv/resolv.h enum ReturnCode { EAI_NO_ERROR = 0; EAI_ADDRFAMILY = 1; EAI_AGAIN = 2; EAI_BADFLAGS = 3; EAI_FAIL = 4; EAI_FAMILY = 5; EAI_MEMORY = 6; EAI_NODATA = 7; EAI_NONAME = 8; EAI_SERVICE = 9; EAI_SOCKTYPE = 10; EAI_SYSTEM = 11; EAI_BADHINTS = 12; EAI_PROTOCOL = 13; EAI_OVERFLOW = 14; RESOLV_TIMEOUT = 255; EAI_MAX = 256; } optional ReturnCode return_code = 2; // The latency period(in microseconds) it took for this DNS lookup to complete. optional android.stats.connectivity.EventType event_type = 1; optional android.stats.connectivity.ReturnCode return_code = 2; // The latency in microseconds of the entire DNS lookup operation. optional int32 latency_micros = 3; optional android.stats.connectivity.DnsQueryEventRe dns_query_event_re = 4 [(log_mode) = MODE_BYTES]; // ResNSend flags defined in android/multinetwork.h optional int32 flags = 5; optional android.net.NetworkCapabilitiesProto.Transport network_type = 6; // The DNS over TLS mode on a specific netId. optional android.stats.connectivity.PrivateDnsModes private_dns_modes = 7; // Additional pass-through fields opaque to statsd. // The DNS resolver Mainline module can add new fields here without requiring an OS update. optional android.stats.connectivity.DnsCallEvent dns_call_event = 8 [(log_mode) = MODE_BYTES]; } /** * Logs when a data stall event occurs. * Loading
core/proto/android/stats/connectivity/resolv_stats.proto 0 → 100644 +182 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; package android.stats.connectivity; import "frameworks/base/core/proto/android/net/networkcapabilities.proto"; enum EventType { EVENT_UNKNOWN = 0; EVENT_GETADDRINFO = 1; EVENT_GETHOSTBYNAME = 2; EVENT_GETHOSTBYADDR = 3; EVENT_RES_NSEND = 4; } enum PrivateDnsModes { OFF = 0; OPPORTUNISTIC = 1; STRICT = 2; } // The return value of the DNS resolver for each DNS lookups. // bionic/libc/include/netdb.h // system/netd/resolv/include/netd_resolv/resolv.h enum ReturnCode { RC_EAI_NO_ERROR = 0; RC_EAI_ADDRFAMILY = 1; RC_EAI_AGAIN = 2; RC_EAI_BADFLAGS = 3; RC_EAI_FAIL = 4; RC_EAI_FAMILY = 5; RC_EAI_MEMORY = 6; RC_EAI_NODATA = 7; RC_EAI_NONAME = 8; RC_EAI_SERVICE = 9; RC_EAI_SOCKTYPE = 10; RC_EAI_SYSTEM = 11; RC_EAI_BADHINTS = 12; RC_EAI_PROTOCOL = 13; RC_EAI_OVERFLOW = 14; RC_RESOLV_TIMEOUT = 255; RC_EAI_MAX = 256; } enum NsRcode { ns_r_noerror = 0; // No error occurred. ns_r_formerr = 1; // Format error. ns_r_servfail = 2; // Server failure. ns_r_nxdomain = 3; // Name error. ns_r_notimpl = 4; // Unimplemented. ns_r_refused = 5; // Operation refused. // these are for BIND_UPDATE ns_r_yxdomain = 6; // Name exists ns_r_yxrrset = 7; // RRset exists ns_r_nxrrset = 8; // RRset does not exist ns_r_notauth = 9; // Not authoritative for zone ns_r_notzone = 10; // Zone of record different from zone section ns_r_max = 11; // The following are EDNS extended rcodes ns_r_badvers = 16; // The following are TSIG errors //ns_r_badsig = 16, ns_r_badkey = 17; ns_r_badtime = 18; } // Currently defined type values for resources and queries. enum NsType { ns_t_invalid = 0; // Cookie. ns_t_a = 1; // Host address. ns_t_ns = 2; // Authoritative server. ns_t_md = 3; // Mail destination. ns_t_mf = 4; // Mail forwarder. ns_t_cname = 5; // Canonical name. ns_t_soa = 6; // Start of authority zone. ns_t_mb = 7; // Mailbox domain name. ns_t_mg = 8; // Mail group member. ns_t_mr = 9; // Mail rename name. ns_t_null = 10; // Null resource record. ns_t_wks = 11; // Well known service. ns_t_ptr = 12; // Domain name pointer. ns_t_hinfo = 13; // Host information. ns_t_minfo = 14; // Mailbox information. ns_t_mx = 15; // Mail routing information. ns_t_txt = 16; // Text strings. ns_t_rp = 17; // Responsible person. ns_t_afsdb = 18; // AFS cell database. ns_t_x25 = 19; // X_25 calling address. ns_t_isdn = 20; // ISDN calling address. ns_t_rt = 21; // Router. ns_t_nsap = 22; // NSAP address. ns_t_nsap_ptr = 23; // Reverse NSAP lookup (deprecated). ns_t_sig = 24; // Security signature. ns_t_key = 25; // Security key. ns_t_px = 26; // X.400 mail mapping. ns_t_gpos = 27; // Geographical position (withdrawn). ns_t_aaaa = 28; // IPv6 Address. ns_t_loc = 29; // Location Information. ns_t_nxt = 30; // Next domain (security). ns_t_eid = 31; // Endpoint identifier. ns_t_nimloc = 32; // Nimrod Locator. ns_t_srv = 33; // Server Selection. ns_t_atma = 34; // ATM Address ns_t_naptr = 35; // Naming Authority PoinTeR ns_t_kx = 36; // Key Exchange ns_t_cert = 37; // Certification record ns_t_a6 = 38; // IPv6 address (experimental) ns_t_dname = 39; // Non-terminal DNAME ns_t_sink = 40; // Kitchen sink (experimentatl) ns_t_opt = 41; // EDNS0 option (meta-RR) ns_t_apl = 42; // Address prefix list (RFC 3123) ns_t_ds = 43; // Delegation Signer ns_t_sshfp = 44; // SSH Fingerprint ns_t_ipseckey = 45; // IPSEC Key ns_t_rrsig = 46; // RRset Signature ns_t_nsec = 47; // Negative security ns_t_dnskey = 48; // DNS Key ns_t_dhcid = 49; // Dynamic host configuratin identifier ns_t_nsec3 = 50; // Negative security type 3 ns_t_nsec3param = 51;// Negative security type 3 parameters ns_t_hip = 55; // Host Identity Protocol ns_t_spf = 99; // Sender Policy Framework ns_t_tkey = 249; // Transaction key ns_t_tsig = 250; // Transaction signature. ns_t_ixfr = 251; // Incremental zone transfer. ns_t_axfr = 252; // Transfer zone of authority. ns_t_mailb = 253; // Transfer mailbox records. ns_t_maila = 254; // Transfer mail agent records. ns_t_any = 255; // Wildcard match. ns_t_zxfr = 256; // BIND-specific, nonstandard. ns_t_dlv = 32769; // DNSSEC look-aside validatation. ns_t_max = 65536; } enum IpVersion { IPV4 = 0; IPV6 = 1; MIXED = 2; } enum TransportType { UDP = 0; TCP = 1; DOT = 2; DOT_UDP = 3; DOT_TCP = 4; } message DnsQueryEvent { optional NsRcode rrcode = 1; optional NsType rrtype = 2; optional bool cache_hit = 3; optional IpVersion ipversion = 4; optional TransportType transport = 5; optional int32 packet_retransmits = 6; // Used only by the UDP transport optional int32 reconnects = 7; // Used only by TCP and DOT optional int32 latency_micros = 8; optional int32 active_experiments = 9; optional android.net.NetworkCapabilitiesProto.Transport network_type = 10; } message DnsQueryEventRe { repeated DnsQueryEvent dns_query_event = 1; } message DnsCallEvent { }