Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse traffic request / response size histograms #203

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

dswarbrick
Copy link
Member

@dswarbrick dswarbrick commented Feb 16, 2024

This implements parsing of the DNS request / response traffic size histograms.

Refs: #64

@dswarbrick
Copy link
Member Author

@SuperQ PTAL - if this looks interesting to you, I'll implement support for the XMLv3 stats channel also (even though I wish we would move forward and drop it completely), and write tests.

@dswarbrick
Copy link
Member Author

dswarbrick commented Feb 16, 2024

Some sample metrics from a home server BIND instance which has been running for about 11 days:

# HELP bind_traffic_received_size Received traffic packet sizes.
# TYPE bind_traffic_received_size histogram
bind_traffic_received_size_bucket{transport="tcpv4",le="31"} 18606
bind_traffic_received_size_bucket{transport="tcpv4",le="47"} 111916
bind_traffic_received_size_bucket{transport="tcpv4",le="63"} 134363
bind_traffic_received_size_bucket{transport="tcpv4",le="79"} 135070
bind_traffic_received_size_bucket{transport="tcpv4",le="95"} 135073
bind_traffic_received_size_bucket{transport="tcpv4",le="+Inf"} 135073
bind_traffic_received_size_sum{transport="tcpv4"} NaN
bind_traffic_received_size_count{transport="tcpv4"} 135073
bind_traffic_received_size_bucket{transport="tcpv6",le="+Inf"} 0
bind_traffic_received_size_sum{transport="tcpv6"} NaN
bind_traffic_received_size_count{transport="tcpv6"} 0
bind_traffic_received_size_bucket{transport="udpv4",le="31"} 10060
bind_traffic_received_size_bucket{transport="udpv4",le="47"} 82674
bind_traffic_received_size_bucket{transport="udpv4",le="63"} 109203
bind_traffic_received_size_bucket{transport="udpv4",le="79"} 110236
bind_traffic_received_size_bucket{transport="udpv4",le="95"} 110293
bind_traffic_received_size_bucket{transport="udpv4",le="111"} 110298
bind_traffic_received_size_bucket{transport="udpv4",le="127"} 110301
bind_traffic_received_size_bucket{transport="udpv4",le="+Inf"} 110301
bind_traffic_received_size_sum{transport="udpv4"} NaN
bind_traffic_received_size_count{transport="udpv4"} 110301
bind_traffic_received_size_bucket{transport="udpv6",le="+Inf"} 0
bind_traffic_received_size_sum{transport="udpv6"} NaN
bind_traffic_received_size_count{transport="udpv6"} 0
# HELP bind_traffic_sent_size Sent traffic packet sizes.
# TYPE bind_traffic_sent_size histogram
bind_traffic_sent_size_bucket{transport="tcpv4",le="31"} 28
bind_traffic_sent_size_bucket{transport="tcpv4",le="47"} 231
bind_traffic_sent_size_bucket{transport="tcpv4",le="63"} 16783
bind_traffic_sent_size_bucket{transport="tcpv4",le="79"} 30574
bind_traffic_sent_size_bucket{transport="tcpv4",le="95"} 49876
bind_traffic_sent_size_bucket{transport="tcpv4",le="111"} 63451
bind_traffic_sent_size_bucket{transport="tcpv4",le="127"} 72443
bind_traffic_sent_size_bucket{transport="tcpv4",le="143"} 87451
bind_traffic_sent_size_bucket{transport="tcpv4",le="159"} 95221
bind_traffic_sent_size_bucket{transport="tcpv4",le="175"} 104412
bind_traffic_sent_size_bucket{transport="tcpv4",le="191"} 112064
bind_traffic_sent_size_bucket{transport="tcpv4",le="207"} 119039
bind_traffic_sent_size_bucket{transport="tcpv4",le="223"} 121824
bind_traffic_sent_size_bucket{transport="tcpv4",le="239"} 127206
bind_traffic_sent_size_bucket{transport="tcpv4",le="255"} 129702
bind_traffic_sent_size_bucket{transport="tcpv4",le="271"} 131433
bind_traffic_sent_size_bucket{transport="tcpv4",le="287"} 131895
bind_traffic_sent_size_bucket{transport="tcpv4",le="303"} 132407
bind_traffic_sent_size_bucket{transport="tcpv4",le="319"} 133484
bind_traffic_sent_size_bucket{transport="tcpv4",le="335"} 134437
bind_traffic_sent_size_bucket{transport="tcpv4",le="351"} 134448
bind_traffic_sent_size_bucket{transport="tcpv4",le="367"} 134757
bind_traffic_sent_size_bucket{transport="tcpv4",le="383"} 134863
bind_traffic_sent_size_bucket{transport="tcpv4",le="399"} 134943
bind_traffic_sent_size_bucket{transport="tcpv4",le="415"} 134952
bind_traffic_sent_size_bucket{transport="tcpv4",le="447"} 135073
bind_traffic_sent_size_bucket{transport="tcpv4",le="+Inf"} 135073
bind_traffic_sent_size_sum{transport="tcpv4"} NaN
bind_traffic_sent_size_count{transport="tcpv4"} 135073
bind_traffic_sent_size_bucket{transport="tcpv6",le="+Inf"} 0
bind_traffic_sent_size_sum{transport="tcpv6"} NaN
bind_traffic_sent_size_count{transport="tcpv6"} 0
bind_traffic_sent_size_bucket{transport="udpv4",le="31"} 11
bind_traffic_sent_size_bucket{transport="udpv4",le="47"} 666
bind_traffic_sent_size_bucket{transport="udpv4",le="63"} 10092
bind_traffic_sent_size_bucket{transport="udpv4",le="79"} 18658
bind_traffic_sent_size_bucket{transport="udpv4",le="95"} 34645
bind_traffic_sent_size_bucket{transport="udpv4",le="111"} 53500
bind_traffic_sent_size_bucket{transport="udpv4",le="127"} 59898
bind_traffic_sent_size_bucket{transport="udpv4",le="143"} 67384
bind_traffic_sent_size_bucket{transport="udpv4",le="159"} 72516
bind_traffic_sent_size_bucket{transport="udpv4",le="175"} 78586
bind_traffic_sent_size_bucket{transport="udpv4",le="191"} 83397
bind_traffic_sent_size_bucket{transport="udpv4",le="207"} 86495
bind_traffic_sent_size_bucket{transport="udpv4",le="223"} 89788
bind_traffic_sent_size_bucket{transport="udpv4",le="239"} 94034
bind_traffic_sent_size_bucket{transport="udpv4",le="255"} 95364
bind_traffic_sent_size_bucket{transport="udpv4",le="271"} 96804
bind_traffic_sent_size_bucket{transport="udpv4",le="287"} 97160
bind_traffic_sent_size_bucket{transport="udpv4",le="303"} 97601
bind_traffic_sent_size_bucket{transport="udpv4",le="319"} 98236
bind_traffic_sent_size_bucket{transport="udpv4",le="335"} 98268
bind_traffic_sent_size_bucket{transport="udpv4",le="351"} 98284
bind_traffic_sent_size_bucket{transport="udpv4",le="367"} 98300
bind_traffic_sent_size_bucket{transport="udpv4",le="383"} 98376
bind_traffic_sent_size_bucket{transport="udpv4",le="399"} 98403
bind_traffic_sent_size_bucket{transport="udpv4",le="415"} 98443
bind_traffic_sent_size_bucket{transport="udpv4",le="431"} 98482
bind_traffic_sent_size_bucket{transport="udpv4",le="447"} 98501
bind_traffic_sent_size_bucket{transport="udpv4",le="479"} 98534
bind_traffic_sent_size_bucket{transport="udpv4",le="+Inf"} 98534
bind_traffic_sent_size_sum{transport="udpv4"} NaN
bind_traffic_sent_size_count{transport="udpv4"} 98534
bind_traffic_sent_size_bucket{transport="udpv6",le="+Inf"} 0
bind_traffic_sent_size_sum{transport="udpv6"} NaN
bind_traffic_sent_size_count{transport="udpv6"} 0

This implements parsing of the DNS request / response traffic size
histograms, for the JSON statistics channel.

Refs: prometheus-community#64

Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
This implements parsing of the DNS request / response traffic size
histograms, for the JSON statistics channel.

Refs: prometheus-community#64

Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com>
@dswarbrick dswarbrick changed the title Parse request / response size histograms (via JSON stats) Parse traffic request / response size histograms Feb 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant