appsignal / probes-rs

Rust library to read out system stats from a machine running Unix
MIT License
15 stars 2 forks source link

Support for IO stats on Alpine Linux #47

Closed jvanbaarsen closed 4 years ago

jvanbaarsen commented 4 years ago

A customer reported that they had issues with running the agent on Alpine Linux. They get the error: [2020-05-01T10:17:00 (agent) #18][Error] Error getting disk IO stats: Incorrect number of segments.

The error is thrown by this code: https://github.com/appsignal/probes-rs/blob/5ddbd5eeb88f0daa72a5d7f08e39f0953a0dae3d/src/disk_stats.rs#L110.

Intercom conversation is here: https://app.intercom.com/a/apps/yzor8gyw/inbox/inbox/2788926/conversations/21831342893

kjeldahl commented 4 years ago

Any updates on this?

jeffkreeftmeijer commented 4 years ago

https://app.intercom.com/a/apps/yzor8gyw/inbox/inbox/540654/conversations/27430589395

thijsc commented 4 years ago

@kjeldahl could you paste the contents of /proc/diskstats here? Feel free to anonimize if needed, but an example of what it looks like on your system would be very useful.

thijsc commented 4 years ago

Nevermind, just received this example from a colleague:

 202       0 xvda 11514 271 1204763 14486 130975 18219 2798097 178789 0 42381 112571 0 0 0 0 0 0
 202       1 xvda1 169 34 8894 115 10 6 44 7 0 99 51 0 0 0 0 0 0
 202       2 xvda2 258 216 11969 238 1 0 1 0 0 98 135 0 0 0 0 0 0
 202       3 xvda3 26 0 208 13 0 0 0 0 0 13 5 0 0 0 0 0 0
 202       4 xvda4 11004 21 1181180 14094 130964 18213 2798052 178781 0 42317 112377 0 0 0 0 0 0
 202      80 xvdf 25663 55 810823 29159 33077 21044 1430229 37739 0 42594 33450 0 0 0 0 0 0
 202      81 xvdf1 25621 55 808479 29142 33077 21044 1430229 37739 0 42583 33447 0 0 0 0 0 0
adamyeats commented 4 years ago

I investigated this a bit last night, and it would seem that kernel 5.5+ returns 20 segments (we look for 14 or 18 currently). I'm working on a fix for this.

cc/ @thijsc

kjeldahl commented 3 years ago

@thijsc Any news on when this is updated in appsignal-ruby?

tombruijn commented 3 years ago

@kjeldahl it should be included in the Ruby gem since the 2.11.1 release.