|
Ripples 1.0
High Performant Software Architecture For Transaction Processing
|
#include <metrics.h>
Data Fields | ||
| struct { | ||
| atomic_ullong connections | ||
| atomic_ullong queries | ||
| atomic_ullong unknown_client_ip_soc_family | ||
| atomic_ullong getsockname_err | ||
| atomic_ullong unknown_local_ip_soc_family | ||
| atomic_ullong conn_id_unavailable | ||
| atomic_ullong query_len_toolarge | ||
| atomic_ullong query_recv_timeout | ||
| atomic_ullong keepalive_timeout | ||
| atomic_ullong closed_no_query | ||
| atomic_ullong closed_partial_query | ||
| atomic_ullong sock_read_err | ||
| atomic_ullong sock_write_err | ||
| atomic_ullong sock_write_timeout | ||
| atomic_ullong sock_closed_for_write | ||
| } | tcp | |
| struct { | ||
| atomic_ullong queries | ||
| } | udp | |
| struct { | ||
| atomic_ullong queries | ||
| atomic_ullong queries_rcode_noerror | ||
| atomic_ullong queries_rcode_formerr | ||
| atomic_ullong queries_rcode_servfail | ||
| atomic_ullong queries_rcode_nxdomain | ||
| atomic_ullong queries_rcode_notimpl | ||
| atomic_ullong queries_rcode_refused | ||
| atomic_ullong queries_rcode_shortheader | ||
| atomic_ullong queries_rcode_toolarge | ||
| atomic_ullong queries_rcode_badversion | ||
| atomic_ullong queries_type_invalid | ||
| atomic_ullong queries_type_A | ||
| atomic_ullong queries_type_AAAA | ||
| atomic_ullong queries_type_CNAME | ||
| atomic_ullong queries_type_MX | ||
| atomic_ullong queries_type_NS | ||
| atomic_ullong queries_type_PTR | ||
| atomic_ullong queries_type_SRV | ||
| atomic_ullong queries_type_SOA | ||
| atomic_ullong queries_type_TXT | ||
| atomic_ullong queries_type_unsupported | ||
| atomic_ullong queries_edns_present | ||
| atomic_ullong queries_edns_valid | ||
| atomic_ullong queries_edns_dobit | ||
| atomic_ullong queries_clientsubnet | ||
| } | dns | |
| struct { | ||
| atomic_ullong app_log_open_error | ||
| atomic_ullong app_log_write_error | ||
| atomic_ullong query_log_buf_no_space | ||
| atomic_ullong resource_reload_error | ||
| atomic_ullong query_log_open_error | ||
| } | app | |
Structure holds global metrics application collects. Metrics are atomic variables treated as counters.
| struct { ... } metrics_s::app |
Structure holds application related metrics.
| atomic_ullong metrics_s::app_log_open_error |
Number of times opening application lgo file resulted in error.
| atomic_ullong metrics_s::app_log_write_error |
Number of times writing to application lgo file resulted in error.
| atomic_ullong metrics_s::closed_no_query |
Number of connections that were closed because not query was ever received on them. I.e. TCP connection was accepted then no data followed, then conenction was closed by far end. Any deviation from steady state could be an indication of DOS.
| atomic_ullong metrics_s::closed_partial_query |
Number of connections that were closed because full query was ever received on them. I.e. TCP connection was accepted then partial query data followed, then TCP conenction was closed by far end. Any deviation from steady state could be an indication of DOS.
| atomic_ullong metrics_s::conn_id_unavailable |
Number of times we could not assign a connection ID
| atomic_ullong metrics_s::connections |
Number of new connections accepted
| struct { ... } metrics_s::dns |
Structure holds DNS related metrics.
| atomic_ullong metrics_s::getsockname_err |
Number of times call to getsockname() for TCP connection failed.
| atomic_ullong metrics_s::keepalive_timeout |
Number of connections that were closed due to idle (keepalive) timeout.
| atomic_ullong metrics_s::queries |
Number of queries received
Number of queries received.
| atomic_ullong metrics_s::queries_rcode_badversion |
Number of queries responded to with rcode bad version. This happens when EDNS version in request is not supported.
| atomic_ullong metrics_s::queries_rcode_formerr |
Number of queries responded to with rcode FORMERR
| atomic_ullong metrics_s::queries_rcode_noerror |
Number of queries responded to with rcode NOERROR
| atomic_ullong metrics_s::queries_rcode_notimpl |
Number of queries responded to with rcode NOTIMPL
| atomic_ullong metrics_s::queries_rcode_nxdomain |
Number of queries responded to with rcode NXDOMAIN
| atomic_ullong metrics_s::queries_rcode_refused |
Number of queries responded to with rcode REFUSED
| atomic_ullong metrics_s::queries_rcode_servfail |
Number of queries responded to with rcode SERVFAIL
| atomic_ullong metrics_s::queries_rcode_shortheader |
Number of queries with rcode shortheader
| atomic_ullong metrics_s::queries_rcode_toolarge |
Number of queries with rcode too large
| atomic_ullong metrics_s::queries_type_A |
Number of query request received with question of type A.
| atomic_ullong metrics_s::queries_type_AAAA |
Number of query request received with question of type AAAA.
| atomic_ullong metrics_s::queries_type_CNAME |
Number of query request received with question of type CNAME.
| atomic_ullong metrics_s::queries_type_invalid |
Number of query request received with question type being invalid.
| atomic_ullong metrics_s::queries_type_MX |
Number of query request received with question of type MX.
| atomic_ullong metrics_s::queries_type_NS |
Number of query request received with question of type NS.
| atomic_ullong metrics_s::queries_type_PTR |
Number of query request received with question of type PTR.
| atomic_ullong metrics_s::queries_type_SOA |
Number of query request received with question of type SOA.
| atomic_ullong metrics_s::queries_type_SRV |
Number of query request received with question of type SRV.
| atomic_ullong metrics_s::queries_type_TXT |
Number of query request received with question of type TXT.
| atomic_ullong metrics_s::queries_type_unsupported |
Number of query request received with question of unsupported type.
| atomic_ullong metrics_s::query_len_toolarge |
Number of times we received a query with datagram size larger than 512.
| atomic_ullong metrics_s::query_log_buf_no_space |
Number of times writing to query log buffer resulted in not having enough space to log the query. It is OK to have this happen under extrem load such as an intense DOS attack. If this happens under temporary traffic spikes it might be necessary to increase the query log buffer size.
| atomic_ullong metrics_s::query_recv_timeout |
Number of queries that were partially received and then timed out receiving the full query. Any deviation from steady state could be an indication of DOS.
| atomic_ullong metrics_s::resource_reload_error |
Number of times checking (and if changed reloading) a resource failed. Increase in this counter indicate that something happened to the resource and we might be serving stale responses.
| atomic_ullong metrics_s::sock_closed_for_write |
Number of connections that were closed because a socket was closed for write.
| atomic_ullong metrics_s::sock_read_err |
Number of connections that were closed because a socket read error occurred.
| atomic_ullong metrics_s::sock_write_err |
Number of connections that were closed because a socket write error occurred.
| atomic_ullong metrics_s::sock_write_timeout |
Number of connections that were closed because a socket write timeout occurred.
| struct { ... } metrics_s::tcp |
Structure holds TCP related metrics.
| struct { ... } metrics_s::udp |
Structure holds UDP IPv4 related metrics.
| atomic_ullong metrics_s::unknown_client_ip_soc_family |
Number of times TCP connection was accepted for unsupported Client IP family. Supported families are IPv4 and IPv6. This condition should never happen as application only binds to IPv4 and IPv6.
| atomic_ullong metrics_s::unknown_local_ip_soc_family |
Number of times TCP connection was accepted for unsupported local IP family. Supported families are IPv4 and IPv6. This condition should never happen as application only binds to IPv4 and IPv6.